From 7162edd3e19ab87ec5db6b856b30941c753aff18 Mon Sep 17 00:00:00 2001 From: Esteve Fernandez Date: Tue, 15 Jan 2019 11:45:21 +0000 Subject: [PATCH] Added grid_map_core from grid_map@1.6.0 --- .../grid_map/grid_map_core/CHANGELOG.rst | 105 ++ .../grid_map/grid_map_core/CMakeLists.txt | 126 +++ .../cmake/grid_map_core-extras.cmake | 17 + .../doc/grid_map_conventions.pdf | Bin 0 -> 39725 bytes .../doc/grid_map_conventions.png | Bin 0 -> 71905 bytes .../grid_map_core/doc/grid_map_layers.pdf | Bin 0 -> 64245 bytes .../grid_map_core/doc/grid_map_layers.png | Bin 0 -> 69502 bytes .../doc/iterators/circle_iterator.gif | Bin 0 -> 38534 bytes .../doc/iterators/circle_iterator_preview.gif | Bin 0 -> 20228 bytes .../doc/iterators/ellipse_iterator.gif | Bin 0 -> 30436 bytes .../iterators/ellipse_iterator_preview.gif | Bin 0 -> 12485 bytes .../doc/iterators/grid_map_iterator.gif | Bin 0 -> 77741 bytes .../iterators/grid_map_iterator_preview.gif | Bin 0 -> 20068 bytes .../doc/iterators/line_iterator.gif | Bin 0 -> 38873 bytes .../doc/iterators/line_iterator_preview.gif | Bin 0 -> 10436 bytes .../doc/iterators/polygon_iterator.gif | Bin 0 -> 88369 bytes .../iterators/polygon_iterator_preview.gif | Bin 0 -> 20229 bytes .../doc/iterators/spiral_iterator.gif | Bin 0 -> 44166 bytes .../doc/iterators/spiral_iterator_preview.gif | Bin 0 -> 15920 bytes .../doc/iterators/submap_iterator.gif | Bin 0 -> 27314 bytes .../doc/iterators/submap_iterator_preview.gif | Bin 0 -> 10235 bytes .../grid_map_core/doc/move_method.gif | Bin 0 -> 57693 bytes .../grid_map_core/doc/setposition_method.gif | Bin 0 -> 256424 bytes .../include/grid_map_core/BufferRegion.hpp | 63 ++ .../include/grid_map_core/GridMap.hpp | 528 ++++++++++ .../include/grid_map_core/GridMapMath.hpp | 357 +++++++ .../include/grid_map_core/Polygon.hpp | 237 +++++ .../include/grid_map_core/SubmapGeometry.hpp | 73 ++ .../include/grid_map_core/TypeDefs.hpp | 33 + .../eigen_plugins/DenseBasePlugin.hpp | 26 + .../grid_map_core/eigen_plugins/Functors.hpp | 28 + .../eigen_plugins/FunctorsPlugin.hpp | 59 ++ .../include/grid_map_core/grid_map_core.hpp | 18 + .../include/grid_map_core/gtest_eigen.hpp | 161 +++ .../iterators/CircleIterator.hpp | 107 ++ .../iterators/EllipseIterator.hpp | 116 ++ .../iterators/GridMapIterator.hpp | 110 ++ .../grid_map_core/iterators/LineIterator.hpp | 131 +++ .../iterators/PolygonIterator.hpp | 97 ++ .../iterators/SlidingWindowIterator.hpp | 94 ++ .../iterators/SpiralIterator.hpp | 115 ++ .../iterators/SubmapIterator.hpp | 125 +++ .../grid_map_core/iterators/iterators.hpp | 18 + .../vendor/grid_map/grid_map_core/package.xml | 13 + .../grid_map_core/src/BufferRegion.cpp | 62 ++ .../grid_map/grid_map_core/src/GridMap.cpp | 721 +++++++++++++ .../grid_map_core/src/GridMapMath.cpp | 555 ++++++++++ .../grid_map/grid_map_core/src/Polygon.cpp | 338 ++++++ .../grid_map_core/src/SubmapGeometry.cpp | 63 ++ .../src/iterators/CircleIterator.cpp | 96 ++ .../src/iterators/EllipseIterator.cpp | 110 ++ .../src/iterators/GridMapIterator.cpp | 85 ++ .../src/iterators/LineIterator.cpp | 154 +++ .../src/iterators/PolygonIterator.cpp | 94 ++ .../src/iterators/SlidingWindowIterator.cpp | 108 ++ .../src/iterators/SpiralIterator.cpp | 123 +++ .../src/iterators/SubmapIterator.cpp | 96 ++ .../grid_map_core/test/EigenPluginsTest.cpp | 114 ++ .../test/EllipseIteratorTest.cpp | 60 ++ .../test/GridMapIteratorTest.cpp | 63 ++ .../grid_map_core/test/GridMapMathTest.cpp | 987 ++++++++++++++++++ .../grid_map_core/test/GridMapTest.cpp | 223 ++++ .../grid_map_core/test/LineIteratorTest.cpp | 177 ++++ .../test/PolygonIteratorTest.cpp | 195 ++++ .../grid_map_core/test/PolygonTest.cpp | 232 ++++ .../test/SlidingWindowIteratorTest.cpp | 140 +++ .../grid_map_core/test/SpiralIteratorTest.cpp | 41 + .../grid_map_core/test/SubmapIteratorTest.cpp | 167 +++ .../grid_map_core/test/test_grid_map_core.cpp | 18 + 69 files changed, 7779 insertions(+) create mode 100644 ros/src/vendor/grid_map/grid_map_core/CHANGELOG.rst create mode 100644 ros/src/vendor/grid_map/grid_map_core/CMakeLists.txt create mode 100644 ros/src/vendor/grid_map/grid_map_core/cmake/grid_map_core-extras.cmake create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/grid_map_conventions.pdf create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/grid_map_conventions.png create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/grid_map_layers.pdf create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/grid_map_layers.png create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/iterators/circle_iterator.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/iterators/circle_iterator_preview.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/iterators/ellipse_iterator.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/iterators/ellipse_iterator_preview.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/iterators/grid_map_iterator.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/iterators/grid_map_iterator_preview.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/iterators/line_iterator.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/iterators/line_iterator_preview.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/iterators/polygon_iterator.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/iterators/polygon_iterator_preview.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/iterators/spiral_iterator.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/iterators/spiral_iterator_preview.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/iterators/submap_iterator.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/iterators/submap_iterator_preview.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/move_method.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/doc/setposition_method.gif create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/BufferRegion.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/GridMap.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/GridMapMath.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/Polygon.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/SubmapGeometry.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/TypeDefs.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/eigen_plugins/DenseBasePlugin.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/eigen_plugins/Functors.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/eigen_plugins/FunctorsPlugin.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/grid_map_core.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/gtest_eigen.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/CircleIterator.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/EllipseIterator.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/GridMapIterator.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/LineIterator.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/PolygonIterator.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/SlidingWindowIterator.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/SpiralIterator.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/SubmapIterator.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/iterators.hpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/package.xml create mode 100644 ros/src/vendor/grid_map/grid_map_core/src/BufferRegion.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/src/GridMap.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/src/GridMapMath.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/src/Polygon.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/src/SubmapGeometry.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/src/iterators/CircleIterator.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/src/iterators/EllipseIterator.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/src/iterators/GridMapIterator.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/src/iterators/LineIterator.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/src/iterators/PolygonIterator.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/src/iterators/SlidingWindowIterator.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/src/iterators/SpiralIterator.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/src/iterators/SubmapIterator.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/test/EigenPluginsTest.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/test/EllipseIteratorTest.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/test/GridMapIteratorTest.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/test/GridMapMathTest.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/test/GridMapTest.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/test/LineIteratorTest.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/test/PolygonIteratorTest.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/test/PolygonTest.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/test/SlidingWindowIteratorTest.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/test/SpiralIteratorTest.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/test/SubmapIteratorTest.cpp create mode 100644 ros/src/vendor/grid_map/grid_map_core/test/test_grid_map_core.cpp diff --git a/ros/src/vendor/grid_map/grid_map_core/CHANGELOG.rst b/ros/src/vendor/grid_map/grid_map_core/CHANGELOG.rst new file mode 100644 index 00000000000..ee7000212e6 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/CHANGELOG.rst @@ -0,0 +1,105 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package grid_map_core +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1.6.0 (2017-11-24) +------------------ +* Added new sliding window iterator. +* Added new `thickenLine()`, triangulation, and bounding box method to polygon. +* Added unit tests for LineIterator with using move function. +* Fixed cpp-check warnings and errors. +* Fixed line iterator for moved maps (`#119 `_). +* Fixed error in SpiralIterator when center is outside the map (`#114 `_). +* Contributors: Péter Fankhauser, 2scholz, Remo Diethelm, Takahiro Miki, Tanja Baumann + +1.5.2 (2017-07-25) +------------------ + +1.5.1 (2017-07-25) +------------------ + +1.5.0 (2017-07-18) +------------------ +* Added new function for polygon triangulation. +* Added Eigen macro for bit-alignment (`#88 `_). +* Added default copy constructor and assign operator methods after the rule of five. +* Fixing return value in `getQuadrant` member function. +* Fixing buffer handling bug for circular and ellipse iterators. +* Capture case when both circles are the same in `convexHullOfTwoCircles`. +* Fixing build error on ROS Kinetic. +* Contributors: Peter Fankhauser, Sascha, Thomas Emter, Martin Wermelinger + +1.4.2 (2017-01-24) +------------------ +* Added linear interpolation method for data access. +* Increased efficiency for linear interpolation method. +* Addressing C++ compiler warnings. +* Contributors: Dominic Jud, Peter Fankhauser, Horatiu George Todoran + +1.4.1 (2016-10-23) +------------------ +* Improved line iterator with start and end positions. +* Added method to retrieve submap size for iterators. +* Improved transformation of images to color grid map layers. +* Fixing issues with order of include with Eigen (`#67 `_). +* Contributors: Peter Fankhauser, Dominic Jud + +1.4.0 (2016-08-22) +------------------ +* Added convenience function to convert a grid map to form with circular buffer at (0,0). +* Contributors: Peter Fankhauser + +1.3.3 (2016-05-10) +------------------ +* Release for ROS Kinetic. +* Contributors: Peter Fankhauser + +1.3.2 (2016-05-10) +------------------ + +1.3.1 (2016-05-10) +------------------ +* Cleanup up Eigen types as preparation for ROS Kinetic release. +* Contributors: Peter Fankhauser + +1.3.0 (2016-04-26) +------------------ +* Made the `isInside` checks `const`. +* Fixes polygon iterator bug when using moved maps. +* Added unit test for polygon iterator on a moved map. +* Added comment about size of the returning submap. +* Reduced test build warning. +* Contributors: Peter Fankhauser, Martin Wermelinger, Marcus Liebhardt + +1.2.0 (2016-03-03) +------------------ +* Improved efficiency for the Grid Map iterator (speed increase of 10x for large maps) (`#45 `_). +* New iterator_benchmark demo to exemplify the usage of the iterators and their computational performance (`#45 `_). +* Added new method to set the position of a grid map (`#42 `_). +* Added new move_demo to illustrate the difference between the `move` and `setPosition` method. +* Fixed behavior of checkIfPositionWithinMap() in edge cases (`#41 `_). +* Updated documentation for spiral and ellipse iterator, and iterator performance. +* const correctness for grid's getSubmap. +* Cleanup of arguments and return types. +* Contributors: Péter Fankhauser, Christos Zalidis, Daniel Stonier + +1.1.3 (2016-01-11) +------------------ + +1.1.2 (2016-01-11) +------------------ +* Should fix errors on build server regarding Eigen3 and visualization_msgs dependencies. + +1.1.1 (2016-01-11) +------------------ +* Changes to CMakeLists.txt to enable compatibility with Ubuntu Saucy. + +1.1.0 (2016-01-08) +------------------- +* added installation instructions in CMakeLists +* new ellipse iterator tool +* general improvements and bugfixes + +1.0.0 (2015-11-20) +------------------- +* release for Springer ROS Book Chapter diff --git a/ros/src/vendor/grid_map/grid_map_core/CMakeLists.txt b/ros/src/vendor/grid_map/grid_map_core/CMakeLists.txt new file mode 100644 index 00000000000..265d16deb60 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/CMakeLists.txt @@ -0,0 +1,126 @@ +cmake_minimum_required(VERSION 2.8.3) +project(grid_map_core) + +set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") + +## Find catkin macros and libraries +find_package(catkin REQUIRED COMPONENTS) + +## Define Eigen addons. +include(cmake/${PROJECT_NAME}-extras.cmake) + +## System dependencies are found with CMake's conventions +#find_package(Eigen3 REQUIRED) +# Solution to find Eigen3 with Saucy. +find_package(Eigen3 QUIET) +if(NOT EIGEN3_FOUND) + find_package(PkgConfig REQUIRED) + pkg_check_modules(EIGEN3 REQUIRED eigen3) + set(EIGEN3_INCLUDE_DIR ${EIGEN3_INCLUDE_DIRS}) +endif() + +################################### +## catkin specific configuration ## +################################### +## The catkin_package macro generates cmake config files for your package +## Declare things to be passed to dependent projects +## INCLUDE_DIRS: uncomment this if you package contains header files +## LIBRARIES: libraries you create in this project that dependent projects also need +## CATKIN_DEPENDS: catkin_packages dependent projects also need +## DEPENDS: system dependencies of this project that dependent projects also need +catkin_package( + INCLUDE_DIRS + include + ${EIGEN3_INCLUDE_DIR} + LIBRARIES + ${PROJECT_NAME} + CATKIN_DEPENDS + DEPENDS + #Eigen3 + CFG_EXTRAS + ${PROJECT_NAME}-extras.cmake +) + +########### +## Build ## +########### + +## Specify additional locations of header files +include_directories( + include + ${catkin_INCLUDE_DIRS} + ${EIGEN3_INCLUDE_DIR} +) + +## Declare a cpp library +add_library(${PROJECT_NAME} + src/GridMap.cpp + src/GridMapMath.cpp + src/SubmapGeometry.cpp + src/BufferRegion.cpp + src/Polygon.cpp + src/iterators/GridMapIterator.cpp + src/iterators/SubmapIterator.cpp + src/iterators/CircleIterator.cpp + src/iterators/EllipseIterator.cpp + src/iterators/SpiralIterator.cpp + src/iterators/PolygonIterator.cpp + src/iterators/LineIterator.cpp + src/iterators/SlidingWindowIterator.cpp +) + +target_link_libraries(${PROJECT_NAME} + ${catkin_LIBRARIES} +) + +############# +## Install ## +############# + +# Mark executables and/or libraries for installation +install( + TARGETS ${PROJECT_NAME} + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +) + +# Mark cpp header files for installation +install( + DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} + FILES_MATCHING PATTERN "*.hpp" +) + +# Mark other files for installation +install( + DIRECTORY doc + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} +) + +############# +## Testing ## +############# + +if(CATKIN_ENABLE_TESTING) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread") +## Add gtest based cpp test target and link libraries +catkin_add_gtest(${PROJECT_NAME}-test + test/test_grid_map_core.cpp + test/GridMapMathTest.cpp + test/GridMapTest.cpp + test/GridMapIteratorTest.cpp + test/LineIteratorTest.cpp + test/EllipseIteratorTest.cpp + test/SubmapIteratorTest.cpp + test/PolygonIteratorTest.cpp + test/PolygonTest.cpp + test/EigenPluginsTest.cpp + test/SpiralIteratorTest.cpp + test/SlidingWindowIteratorTest.cpp + ) +endif() + +if(TARGET ${PROJECT_NAME}-test) + target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) +endif() diff --git a/ros/src/vendor/grid_map/grid_map_core/cmake/grid_map_core-extras.cmake b/ros/src/vendor/grid_map/grid_map_core/cmake/grid_map_core-extras.cmake new file mode 100644 index 00000000000..e63eae44387 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/cmake/grid_map_core-extras.cmake @@ -0,0 +1,17 @@ +set(EIGEN_FUNCTORS_PLUGIN_PATH "grid_map_core/eigen_plugins/FunctorsPlugin.hpp") +if (EIGEN_FUNCTORS_PLUGIN) + if (NOT EIGEN_FUNCTORS_PLUGIN STREQUAL EIGEN_FUNCTORS_PLUGIN_PATH) + MESSAGE(FATAL_ERROR "EIGEN_FUNCTORS_PLUGIN already defined!") + endif () +else (EIGEN_FUNCTORS_PLUGIN) + add_definitions(-DEIGEN_FUNCTORS_PLUGIN=\"${EIGEN_FUNCTORS_PLUGIN_PATH}\") +endif (EIGEN_FUNCTORS_PLUGIN) + +set(EIGEN_DENSEBASE_PLUGIN_PATH "grid_map_core/eigen_plugins/DenseBasePlugin.hpp") +if (EIGEN_DENSEBASE_PLUGIN) + if (NOT EIGEN_DENSEBASE_PLUGIN STREQUAL EIGEN_DENSEBASE_PLUGIN_PATH) + MESSAGE(FATAL_ERROR "EIGEN_DENSEBASE_PLUGIN already defined!") + endif () +else (EIGEN_DENSEBASE_PLUGIN) + add_definitions(-DEIGEN_DENSEBASE_PLUGIN=\"${EIGEN_DENSEBASE_PLUGIN_PATH}\") +endif (EIGEN_DENSEBASE_PLUGIN) \ No newline at end of file diff --git a/ros/src/vendor/grid_map/grid_map_core/doc/grid_map_conventions.pdf b/ros/src/vendor/grid_map/grid_map_core/doc/grid_map_conventions.pdf new file mode 100644 index 0000000000000000000000000000000000000000..405588f3d34073c660cdd803049f8e2a75de816d GIT binary patch literal 39725 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�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 DG1QT> literal 0 HcmV?d00001 diff --git a/ros/src/vendor/grid_map/grid_map_core/doc/grid_map_conventions.png b/ros/src/vendor/grid_map/grid_map_core/doc/grid_map_conventions.png new file mode 100644 index 0000000000000000000000000000000000000000..d75537693ff069ae55a62858e8331e5155fa1861 GIT binary patch literal 71905 zcmaHS1yEeg_9qTOLvSa!ySuwfaA$Ca;BFzfyK8WFcXxMpcXyV2@4f$SZSC8sshXay zKIfi$&#(LF4OWm7M}WnK1pxs;kdzQn0s#Tb0099#fC2lQ$(R~e`24|g5LI_jwlQ&V zHn0PL2pZcM0th9o4NL(_00U!J+aUlC2naZdxr(}jx~vSBk&QK-!QVA>F4jLksX;(^ z_+5S)7+C@w2n_+I=0IMeil`o1BV~o23z_F%dr> zA&(2!Cj)DMg8`w7wH45w%Y~QdAHH0lO4Hg*6)Ryt-{ zBL+rBLN+!!Miy2!HbxpkCI&_(dWO$08!aOX7b_bV6FcF*KSZBbvoki~QW6pS_q9I% z@e-LiIQ-L3`rq2gP?_%(io{^5>?=Agjp{(rxf2p2dXGe;DOuFoXR&Pn4-8zp~K%~U!_2f zey1P_Dky@YL5e_%2#N}dLZCu?3t>3|75YM&O%ew}86~uwr#o@i_GWTH_XbA!JHgcp z)A?aP|7`XBAU!!f@%Ijg0O42GsJwz87yS48(R^tkVyX7@xIlO3qdht^b$G6$*jz9- zEq+t%W&;?A9C)T;FovuV;Zq({`KvV4ztC_;Z2NMpi_ZfEf0y+=^9Xr>d#El4%eqs+0?HmWs$5*^)2wS}L)lvpZD+wbcrBRUH?B{HITlwyhh#vAF5pRRms?M#- zOS~_J;K-WS_#4d+@(iIHIu&b7oSbWVsb$;TD4siJ9#|3icn4%Nr}IRY?solJ?!`&> zFI(LsGx&-sm{BAy&XyC`?3G?hb-dpx&)xv ze#;?3(uERm*oySVoFQ-9(*`Vd96nD4{lPddUc$$73kb(KvYhe~-Odj3t{^c64~*~> zo4{NdtG7U~;wL<|q+*4b2zfc-->&Uz17ERE7jHm)yIM#lig<}Kzi2&6Yk6r{Q=2=j z*AX9uIoX4ljkoM6kALV~x*4ctQ%xc|6EW`1d&G@Nb>58ng3{uilMo=#ioXfdizDzl zkpP9q^N`9(9PGzQ?!b{zH3jOkaYO67`{Dtj?hcNR3&R?Se^$=)u9ODI%im;FNUq{K%;+llXEr!K`BJBk^3Bqckr9jgjOxR+TIIdt&*$ zqk6KvVG-!Yj-50K z7EViY0K}%CgvQZ6JoSXZ;VNXdZg1EAN@Z@~uQ9b3TJ>i+5L<@37}$ZkNVU{!M$4^k z$@bo#l!|J3O0NBW=DI{Q&GSOLAu$;Mi#8t~uXX zw{bGW@odQcPTOhRrJ1dd+|C1B^WRBCKeaTiz`SXBXjODHPkQJ#mp0#E@o2eCrGb8J zeNNEUBQ<^IzWGA=b{74_at4!~4i^lB&VcWjrk7H!BY6%KdE|7bb(LF(oLG;DJ0T>_~(anhk98Vh@P@%@hWVDp2F;-OT+aS^BZT5~MNykD_s(u&4^IMu){x zH9+s9`2zLza@dbZIV;lZog+%iF@~D*9SNj6QTB!{vmW2m%o^?|kup3;IWe6AysCYI zBSFB2nQjoEa?K`1jBW#MaKaO0M&orN&S`%{cZSbbC*-YR=0t%yS>fdX`Z8G9bb|pT z;O?4H=fDZ>1nT-oMcO(HjwyT>{Gps7Ow0y^u3h9?HZWK5qI|=)XpjEeU8z%H_&9V=h|FOJe&*ma&kO=<#E^bzn(URMg*D`k7wmdCP?$ zHsb;3)JU0ElIzOOJilG2)BiQ%(xMD*BezL}sy5^u)UU5P8w?u{d;XnnPp#oF~>fOQQzeXHYTgamRRX&bV_Lh-rPa_ZJ5f+<1io+-(X9$nl^1O(k)YP}U$=ZgUQwaGb$e{A*)o#uJ-0Wl<@fq9N{cVgQ=N4M z{xW!sKFI<0@O;#8oT6Uht!MkMBq0TWG7K2)ms39|m*cuj7!iT|K@2Zq5jsC7fa(m{ zAlj~(uDEzCya`b+@h_Hc(}?2Ntv3O7u5Qp5Vi*>*aWeI z#>kFfFL-EHgLp4)(`I*!<1M7C@1kR~!HZ;6CYybs)7Z6_E@i|Ed~>qt z!R+QDc)nX3ONqG2uhkROMpSP;xIA?tJW`@H+Fb2g!M~_W=H&F~M4xeW**)VAOh`Rr z?I7}a>1e?*345c+9r?ChyODCJ6C3>Wz9~HP;mKlg8`h583)m>)j(BI20SUnbtSnY> zl`Xz@47xJ6e3QNtFVo?6ANmGb3d#kqU>+r)&PqGkJ+w-F%QUIPSXky{lE6%4~82Oc@3sVg}8rkQJtmxW7U=O~L!?>jP)zkCu; zM+mThGtjV$r)wH9Ylh1t#^p69=gCpds-a)Ma+4BdQeb(Ot86qH+i&+#8|DVWT~)vT zvU^fJdd1N^Y4b7M<2K!uzEG1@HX5XuEh%>3%0T}QTR6KNX}&g!4|$W)(%df?a39Vx z)l_0v_F=E7%-ds4Xv^=~^*)_;xtXK}<7fWNc#`|nB;xPQY^a{a4xxkU#I+_PM@ndc zbwyfBeB4RjuOdiJ1%|4bw>#{qy7_6pL4ZxY3TVv}uH&LISqES;PgB&(d>evM=Sks> zRZ!5VVw1HXWG*Vx!RpPwrq>eoouS^? zQ8PaI(y8lyWcA8Yk+cI%_3+|g$9e^0m_N7*-j=_S`fZoamchAISug$RWOv=`G(y3H zm$qFu?CF{mutlnLT-2Ulw#~XMT2K-Ga^Eqv)ye zGG2(ZYna)XI8uG?KqYsB24At57BI~jbi=rjpQ?-R)VyzU{)1SM@aq^d3t^-S@uV5i z3D{_g@o#@~-*-c#!VnG5YTqXTfIaMG3wRow@W!-G~>1=_i1x zDFIMheO^%%*JMo)Ou_rylqK>d#$TX~(OO%v2=uePAd@R)!~3^F&Z$5T{YfnX#|o@} zqpEdXg0mKctuI*KtROVX1p4xp{P%dCdDY6$u`y(J(6LP2Z&{m@Vff8&;Tr?~duPMP zyHch-D0~M4@2B(mh1DX3~3cH!&PGD!uLV_k4L~Pto==lFnP$Fk>?LEG>QMhk4F&vI*1*Ntd15f7lV@g zf|e8~Nb*n@SZR$TEmIM`6vB#3R#7}jF_9fR7EtN>J3Xum1kHqHAil*7TbxD-uSFG` zv}fjm>il`hF*mhtei+9rnZ36It?Q&VT-Z8jylX~@1)V~|7+fKhZXTilq;0qm%tz`duGcQ^G%B8%sZcySz9W;1=~BlWDQTn1|iW>jC; zOlbNB*&JfZYQ{zd39q7FF@q(u3%Sfs02(EQf?u(Iph(PJ~T-9u2lF=80o z>N9cara&@K>WWEl2!^gwz#sS1CMkEDMSltWV}~lfH?C6z*4N;plnnBOY$=As>>AA| zO59t@LKEpI2@R?FhuvEd4$r`~tjIZ&IV1@NP6w^Elde(zp$fV31&3(m?#s;I9``7Q z!^1!`P*_mKZ6?Q)P|9tw|5==XX|85MU0*EGnan&e)5zG*6Aa|RQT`T=wdXL8)Waz+ zITavGhU4&{nx!XuHg~uUpOtRim&C6s;S9PgPKsGs@fckUtEv_Psv{Q0k>*xtMxI@7 z)^}|fYY__JE5IT@sm;AD>(iTksc*@KX>{XgnrVhqP&}VO5v&SYU$A+?*8B7E53Y+M zP60~-QpXDPPjTB#HTZ&97PZjZJTU4-kEnjPJD)pFz`&2T2a^F0u`XydhkNL=PVK^1DzeV8&*H zmJd!KQQv*UQa?#C&wpArhmo?jSZ~&x!7MD+95ughzRwZcuslV>HcxOi#!$}V%2aZ3 z@;f3k9<|$?OSZ=`R$XQIN#Hn7mK83^s|l1c>YC1!i9S!Be-Mlu2(p!khb35VoHtETpz!Rr zREn$DUV9e*i^~myKS_RPhKdWc++!c9$JJ?Gs0C`-Yg?)cz@+ z&ku@7T3!;B5+@laoPzWI^~q9WI-la$e&~C*;h!u}*H8QCq8iUz4_=`*;BrKl8JOTl z_ZlF2OCQW`dxr2@lNDe}cA^(EAhNB$W9=bWaG*PT5G5?qgy35Y@@Zpr=g3)TK|orD zp%Ee|F+tGF6q6M(KqoI6U$@v+>BNxz?x4cme4&!6|89x$^9#=d_Rd;Ki0I$3?Te*qI1l43F=d{Y`Yr z>~h7#pyVHJIF$xs;vFq`SJSKlPLZiQ@MvdsV$;aW9I9_fqNiNx3ca=${O0?k=L`$S z(9tg<;QfyqD=pXhS7`_%e(GZt!CQa*5f@ujd>GPf2|C(tq4nQMfhLCQ?)AHl1X7oAH9H z#=PM9cq#r?IZ^s=DL z0aSmMlQYafS=9Nvb;r}9cJjzJt!L1QNG6Dhuvgk(e zT|?13X9z~mk(Zp;&-?%no#p=iq*{^_53(pF*AvO6E&G;-aAa=#gy7eI((32zbu@i( z<*l&Xk$yS=v1wFhY^XW>KtUN7PP@HHFnVfzny z`S*JF`LB#&x=8CFN2W?G8uN zcj;>xXvrg&XDFR1yurtsM+E~gTJ>j)W-m)&=v{C<8Th`wN!@`_*ioQj zc}$C6sZZ>r>w05+^gn*Ef-exO#TYTWmcRS@v87Q1r%q4^wquH*x0uRGD-{XWK~l-x zQQ{?69juW@9c`WN(@O=CP8`ek!_y#3_g`BCeti1wE_Iy@GT90g@lua!0HLxUC&QB` zcTgw_BjNqW_*Rl6-y%b3ht70$?z&Gh#} zy#p99dGIT=-M;Tp=>pq(I{KwL>A=FUm<`SmI)Q@b=0#5+A>~h5CLdX?iTdXdN%8Be zoD2_`qen3^N#KbEFdr$z3l??Q;ZPavck^27>+5?{^|*J6ovm9pWZp||(v1x)POgJo zUt8;HEDJKbJEOk7%ng)J9CkK89JIvF_X3leZkHSnRu9ZDG3$1@zt-Ewc|Og-9T)-K zpEnoU3D}>IQAc{U{oJ2S9r!>9yc!A~it(Qm(j|=`Fap-UVjJ(e7liU#v5d@-3IRABj#c+;wwJ(HUTw=qgem7)J`}1x5(7-1_xa z_XbYJGPkHwt_K4FyiLsUd3V$Iq4|j54I9StX60xjClmE=#CH`FB|(y$oV>KO^z`(k z0G92<#l=-`wN&l-axat}Wt5}clK! z(Z!vF27P2`sHhkdsRj38Ar8ML@DW9NS@5vB#yemIY%1f(?9;FO83sBMoqO-H8PO3pjM?J*hNo`-kV)WWPgz%n8=o37K*sO!hBBjLL??7>R$jTU?| z6XnuA5&%4clQ)BH-aXthmS<|RFR4i@umvi`;SDaI!wPFBh`lU<3v!uW)*YZ45+ zsfgf+t$N$%v9%&r>R7{(y&Pz`PbF>xs$H%O<>e=k_#U&KP&vuT58mHiG&D36x(${* zJw3C--?j5=k!|>n3Km|`>a51-WoyRHQlYS;K79IDcfIqh;wN~oK6{*`06Y9>k?`Sa&bXh_JfU%$AV zPJ_s1k^hFY5ZkQzSy`L2Mam9bo})>O5fKrELK!Ii0~&7P&QM5mBGzcR)2s1QT-<-W zNS4jeeO)ALE#`(lfjdU6W@57c`S`7^tp~z!0v*~iHl>2u&Z~X^&T7(Ju0k-6wuEj- zA{h781s8$a8%e}=PbE}!3pv+4PKm2?a|hB~ch_r>9eer+67mju@4^nY8ff23@IGzc zPjnjf%Y8H|Ztj=SWaf;F3~*>f5x>hjv4W@P-#mfCtJ^wncc3)l&l=zMS9LjNre2Tv zi)2mT?R-RaRCL|^;fyD{RLhS9^O8 z)uaurt3_$k{=n5vw${l1I(Xt=HI?g|T zV)D3L!Y$(6*ZsJ+50rXmjLRHuxv$sSE!A?+G~hEWth1E=`cl{cSFdNXe2hk~f(Nc| z!4E_r$YT}Da6I07**n@(ywULXzfL2`yU0}dvI66c#Bv93oOgjwy;p|;JQq<5-G%!z z2iSR3rNoUOWaW!7|7|ndRWlaO`=pO|J1^n7^ad4Hp}mv}r; zZ@Fmxx^2%Yn3p@H26dx$Yto#AKf?S1*ABlwR@uOldBc=F&HU^1gh@#jYu>-Xsnm0q zWq_b%(v|71gHw#qcw*ltM!eWcIVf!aJE<4mo2#?-L!^Y+dg&yeLo{L^3cTkTla!^% z7FK5Pr>00UbNBm%AdMMBCS_^Eo}4Y36^_k^7LpOZ#*$i%iALhTp-MREXHA-%9QwF9JRG4o+_YG?0l1og{WkYf z+#-cLj41{x20OQsesnSJGhDFE@Y2k*+*q@^XhJ(c3i~HoYI}hc$kpboMW&PAk({SG zDG5m6%~Ny7Udn2dP~Qq@6i-^5Cky%l?|+O50+wbb7R;t2ZG8dHk(ZQ1lP{U=1pXVf zoY|5mb2((^@9*zs1x;MpQ&xP0p+z)zXtAp%!YFFso#l_K>RE)*2q3zgNvhH9C|-+ay5aZifM8E1yO-WNwtkDwiO_ivMh`*;-0-ISw> z_}8iOsNNRYLDS-mKS-8JI(neXcMDEzA-Ue-MdGKzQBKth05SW0aka(y+*l=SDsoN@ z4lp>xb>>{QtYM4SD8buDcZ;V9E%S^CjgRNql#%Ts3iCH z7Y1wHmUf{4;mnsBk5larNMQn$-Z-?B1mmb z3`d_)u{zZUm2bXEOY`crCB){Nc?mdGuMS<{oaDLTM(M_s!1Q|nID#_}<%J;t$-!R; z85ehT7QpHGTpJiDuFOBbXZQ4Ub6{Yr&z>WRGCVlwGtFl?Uz%Uuu(+t6r0{9pQ;4ox zoG3x1SovYJ027QbwE`K2~b|0q?TQkl>;9oN=cL$BIWDehYL z#iy9k$OZ!HJ=AM-A3Ug*|Gol7To80<)n!u*;MRl?R$IqlXzlZZk{=vUwx`DvFt@#D+v`9BvSQt`gh-9RF~4WG~E-cMylHmWP~g zpF&?IvpmE$k8T*PRSgBcrlCJL57JOjo=h*9P$pfYet-cSrcYWJik1A)L1IP?Gl6Q; zLG2DAV528ySeyVHuJ@+jl8N8VB64G?@J*c#=FGVoeQWoxwi&vV1*Nsc; zzSK3jshMacF3MK!JHV02rEv!YKIJi=C+r6azZ}-T8$8Yf_K&{&IU8RIe0R1lwbB@W#`81!5^$ z8!N@Z(`JP75&TfK+^sThSYiLM_KzShqt7l7gWcU-4lb_hB`Xy)`b`a9HwZn4A3YTv zti=n*7pPlu<)hBvPw6;}+y|?=kLgH5q7t3}1Ve29)#1s6E0fOIT!0t)0q~ zY?xwR6K(h3!fKG%_h^Zf=eN%NKs4_&*knF=q1TakEGftEVBAnXjq9VTZQ2|v?#g48 z=UsT!@^U#}oKDL_llLcyGF81hu6R0e1Ax7|WC-T`P;nr_hE#S+h1+LwMS$=)yh}f7 zWKUODw~#8ML{(=-kK5@g&P6^Cy1j+oMwI=BUw*6P{EtL~1NmU*;-L$9;|33>&F2R) zU3vDKi34`SJ~dvatEgQ#BtZ{7vG7h2j-v7{ydsPC%t_^$ zFdAfkm>*JRdLRXeiY>Zl5qA2LPp-UnO1W17j>#IJ%^6L!5n-Zr1mLL?N~{Q|X9^z5 z=1AR`o-u&55O^$Jh|)<$(^ETUq=akKR}UW6p9Bxdqp3{d$V0Qq`+C5scA|h48hU5Q zyLoLsp70_a7u{VjjoPeDDz`O5wdUNd_SSAx{OK_hKUe>Q5;r4Vkf7IAR+*)for<-b zAYL$zbc(e5*>3vj%Um${#u$SBgi^VZsDW|8`poAk{R)E*9b2Dd_w91|GJ>iW!fp@)iQE9h2`$r2f8TBBJa7cgMP zVVo_dUM`&XTa1uXGo$H|9F~(6?nf9@!0+QQoYj}4@O0~OPpp~ke%)3C{QhB;^4nC& zhfLf=3H7>?5Qo0%xq+qUEcH5Y-N`FQsqjP--Dr#Z%6o+0i`h&DP z8J#(D+VpD&LV!+Nd21FF_%9c5E1zFN01YH<%Mg#5@;ikEKQ24Z>iB5GojxmJe*SIr z*@dxIcWOft!i((NScp&8J`G8GsfM$-EK+63*MZ#@;&QBkW5vtSpXZJJ8p&U~}e%fC z&uzziuiQQaG4=_FeYatrR2jaRC;%mDL@^sXmW~-);YM6qg|uC1$Gplq2-G5UdW~~P z#B)|dYF0!VWSN-=9AD zlrgmRrb2#tAzbZ;_3TW=`SRUkuE4xT%9iA8Ec(}tmN(bipvNi4X`4J$t%b*6zju1R zOCxX$QR*?I&zj>-%0Fx`Q|n{qi0B5T_q*|wIJlO2CdDk7sAmK3a;sR;tn($t1-z4| ztMhkS+Oo#RM^`FnzAtSx{w7g<381Mh!zN z%jFQXsB22PAhW;>nu}@zgfS_7 zg{ZQclpNPswS)U^e^3YgiqNomzOP34s@ivs%#j#Dwd|pw6~(Df9osPMH#6ysv8k?x zrY?SkF{!QsjmaJAB8|zWscBt3UPIgUl_V~DdQv%Hu?u}Dz&Sc1nzaW%4mprUh-z2P zJcbzkHaSEIz1xFkftOVC8?Pvnby>WsP`>2J>z2qkagP3Ve3`_MEAMVK-qc0^j_DXj zvUmgu24)&4(azjoQrxJM$)BcLyAQcc%v<*hPxIvq@(pENwkKyG5~VUKX5779;KQX` zQ_l-5jNaWcd7jv(77@j+5FWqocCflnDacO+Z?I=RpBNsfzCnh=E)D(;>wAdEXtg`= zB16^LcwX@pO(c@XV0`K5An6r!a(bixu;$)ybcLA+Y0Idwad&9mIJ}!_W}f-uz3Sz( zhV>CHysA4N9uyu<8ZA*_PCb3(AbX}*Ntsgnv$Hkw7yR#2hU9=2clL~Nq?4QO4gS)G z4ySFYZ4|?xb&0%)6JpF>$R;warHLUX^0MhTNQZsen|O~@3kp=r20j0e!q9$? z*g-j9tGT`Zxy-`1s4mZ}dm=dM+YN_{M&yNPOENT>>1Em3SdN&*!r1#m0K$iYWC8{k zmP*7>7f`W1JI2|yb07H+r9&*4HxtCmP4)GqEa&UNc9+glgP~>rGo4d~(jT&$HDw99 z3QvkxJ3Pcv?$!#s%u{M20Tyy8{0)#!eyc)$xB_qnA!R;?n!JwA{cvio{dg(m9_?5>{BV&2TJcTwaB z;bQJ*DJ=dMv(*6U$4oeJx9eM!1xf79? ziq}r>amg2EgQ$Eh<)>!ndMxBDl2%8RPYz7*_j&Ai8gi&V@k?%NkLulDWZ9fd4wm|k zhf980irG`c)%NRvCxO7FP<8GMUxVpK&Y0g1E<(-*!W6C_^Gib$#Kp5TB`o5pNd25= z_%_@d@o^6#S9%7b$3HyhgsW@k6S|aPGF|$wwTxh66cpxpDdq}9+k)_W4XDyz$iriZGUp6^Z-wA)n+37PYy1Rgv-aoUceETB3+;9YHb6Gs@M9TZys+iSWYfB=O4d;*cETwRa!#PJ;UsU&O>?DjC>o7h%5q`+R8A}=agIuA% z*7Ut47Yv&+8bXdoZoduhXu$@j<)2-Li@JXKB{8r+cFoElXD-_j>>*h zSF1KgZ+py>g${?e&&A)9MT&EKMWkaX({Pj1F9ASwB%M)pz{py0lQWzNJtI-`O#cnw zPEG5#sAU|2Do2?MmSmz2Kloaw6I$U$1QI*}R%RdP&NRrIEcPYK+3C}~HuoA5gU_J% z0DojWe;3>5X3}Ch`tEW0;Cb`|-3Akh8})z4hKFXx2!tL+2$4>8x8W|QJ(ih%j z=i0S@;?gLYQy~Z}O&t}89TQc!U(KCG_lxebUW$Qp)Opxl?%#;yF@T`M-vt7y=yK@R zDE+qPY#eg`Q6?i61DOcilyKjqqjZA`C6l|#7kx!!+&?xzV&(XkXLwRsE z=fPVvub_S$G0yPIxr%-$E3&G6nL(mq9DBT!dCSlsnv z>|FsBhAiG9DD_+`zI6k&R_laQR_zs_53~;?g`+!Zj(T?@P(!@#_BNSHxGhw?Py*SB zn`z9D7>VWKRbizgv8W}npA8brP*@CS_aI9VnnKcU^OR7HIM)otCDo!s%w_=#EN_? z$2zeDrc#5iI91hbmdOnnW9cfhQqwd$Bq~>4MEKvBsWz;9$>4-w5bDVN-JNiTN=XiP z5cD;o9JiY7W;Xz#1&G1JY)p&-*0kXDW?&O@&xsy%wo#*cvhwkosF@R;PY~8xWOsOu z;Ellgt=pdN{jF1<-9pA$&Kw9VKa>Re<`{6Zm7Jd~)tXE=-h^eboNrvPd}I8mz%# z=V0>wA{Z@T?H_wBa6Clksl(}eMZYX2T+d*S1;ICZ|TR#4B)JuA4Gc;9J5}{dM=(qpMmA!t!5-XuXC`(Ua zZhek%xXZb%?YAU~E_17>Sni`qZj>XPNH;Vz^l8d}HAn2+WsEZ{MB*{b$s6>yK3bw!4#oU1x=yXUR`c##kcl8AH3HXq4-6`&xko>2g_nwUqWn(+;&_ELBeffV#`b1HsIZWqp59fB z)Z1f(dIM18kBw(rs>4l_c#sLN=C9%`SHs-NB`de5=bv`w{j@!u4=)^ie?c;hv9}yB zdOqUyPMX887;j|V{QE0H!o6CqB=O${q%p9tGj{9x4LFIQQ)Heo@K(t$-_33IWwCu- zAO%MbKfABmvS*IC(h=vt|J`}}H+e3L__q|Nix?an{MnfP>FHb6X*!_%t0Hc0cL?}t){h@SbzkHg_ZYx(Ygczl%dVz@81yEW%&5C*a~9d zV&Jij9#3}4v#NUx--3I6us(u$h}1M5e#quUrTNoP#nUL7kxI4A!B}%TfF>gDP{x_5 zxDgL&ij?7+KYWXYg@wh={8;`>S5&S8R~r>8+?Rb`f_55Z$b=)2KbwwwOZ-1823NJ# zbFlcc08%Hvp5223VMk|2$1-;w1Zj3==GdMs82|2r)DMfpJGVTgp`EKkhv%CyZ`Rkh zH-olhn;HAjj=OSrCp~7xXp6;s+J`-qNXFH#c&nE@0q$G1>UgS(R*tZ`DRA(u6+$F!k>+a?Ba|0 zv~!*w9*x?-STcxkbAO?!&)u9)r}(-3{rrSe*{oAo(9AIQcXvM(va-C)W-e6u5S5m; znkSw3uWTvB$^nWrlw+m*AXQ@=7464hym%_-Bpz`zTjo%lWjJpur04ST`Un+gDowyK z5OHR1%tQiXrKIS3gi;AAo+aB9t{&k*!UG5-O>FdAS%#`}jtPd7gg1CNUrQ~gLBi)5 z92q&8D^XKc!)Dn?Z3g{B6m*KEIAIE;;zOV51**T3{qeyVyPoaVlnMM#KeD&_8V!X4 zG%ll6BXg_jMjM~C$@<>|7Q_+GH=6+tj#M$`^aT>enx&Pqmo`@IN@bbT4S8^Z7AzXg zZ=Mh~4|aTxH6W@?V7{e)8wj>L!(48`8G#Ug+-eD9C66HUlwVr9P81eIVMkuMR31u- zlrXEEakM0hBBaO=PWAN&r!v9Yt3bPky=%<1r_f*EMCw(VQc^tnH{E92Eb#tjzdSKlgqgdELQH3f=0r~L6*>qRll znlc2K#uoK6a{>3~GnXK*Z7~7it$dh@F6`69KdR#_;a$Qelmr2lWJ@-xm*$fjBDRIHGs2Ah=`^tCIR_ zEJ^xgNnhMMzBU;torcGjmw$QU1BjE}xE89RH0fvU4r}7-^MywF6%0VieHpc88V3at@zATYQS&MGY8b@_2Nv&wbErgU{7%Q z|9;_d#<(IsJt(XZHB;E`1`(IZz|dJdMo=xC`Y(i_zgn{vCD6kOkn?d7^VpPI$e$+Gw$M~8{vAFv1FLpU*>qzaAzeZJt~b}_0a9{n&%92j>vb)$!3gr z7DD*P3o|3nBbUcd?`*BX*D|fV)9u5pZnho%uqco{d1({Kmfx?`-9F#Xv@#wBU6Dm` z$79!|$?nYFoK)Btx$F*w4fF@QSsOrIZqEV@(s7}XeW`;bJ0g?9)hp1lbRn7T&S+mDzuuh5~4Tidg6L)bbL08}$q)QWteh;M?s)(LMzTT>FcfA7x_0j0fN*k(bGB-Q(&6K3lI{gG^HB{>`A)n(q#RC;{o2KKy8st)J5+Slh5 z;@9m2+JVbjVo-)lB*pjw_2RHmWnXF#tALGyL>2O_yYRrD9yf$^S)8fev-qjV%O&k2 zHidM+SErMrJ*bLvCkrQu-y9I}h7A32C zK^oucwY!v+U_amJv^`_Md|s&4Yxc`U%eL%VE_uvbOC_Si*=F-KVs4kNJg-0^57_rb zfcLna$fVx`Ui$*H(}VQ1JG>%q55Yjjb14MEnGo6IkprE-gH5O-bw=V$NRHcJqJ2r| zqrMP*ZDNP)Xs+!(QRT2_}s5}#xx((S8zx`(p*bPuXcI3A&T~^nIrMn1`~Sh zV@j^8mwjb#ozvFhj?E`>W14p7+ueBXhyTUZJBG*A{?Wn{t4SK$wyh?O+1R!l+jf&Q zwrw>|8r!xxvH4D)|M~Eqv%k!BO)`7mT=)8EZ8p`bBXLVcu6+BgE>N}}6MZY$wHSO1 zN;zwkcxw{P(y;>*%-|JcEIPdDDtG1t56Ig@IFd(LkocV`2pd7WjaUC zHdQ4-q_y_PDgc^)V?C6$_u~`Z`PlC7LU7Ie_%!JE-*8vWH9vmgJ z2C5O2?KgnQbTFW2n-J=Bp9bS5um6`G-rupM3krwoJ^aiSrdn8WyOZgTw{kC+xJek| z0$d^EolgCAs3EcU(qDI`(q7c>@w-sB#e#0li*SZ+?2aMmgIz?}2d6Y7G z!A-piu;V~NIgu2+i6@t^_Ce{EHAFZ z-SU>q<~v-fIMRi$8U-DkA9vgY#F zJgmNqJikUc`7@HIu-tS!8jLtv-LRte&y}cQIhU;>r$e8?I~1ets>Jr7@4YPd9h$YP zal@A-VK#I5)USd8VMk}#oNVR)9Kbr~! zGsfz77Z1SX*lVQ5e7HInH zMTVFV@ZwXqX#c>>vVCU0JXYYM?aI*K8@m7+YT@m&jZLz}F+^0vtIe#a%D6Sa_`CrZ zz5c6pk<@)Z(iIyx%6BS&*n&V%IL7>qb5OO`YcZ55_-EiR7D1Y{Yyg)gZJ}Wc->CfdK?0BWKOJ0U5|w2_I{H58&Sbl+56KX_eJw z{4xcH3iC^bC% zhmfUUXcqpJ0JZh;>KU)~K&|b)!MLIjtw_;&F(77+SM!U#T~6x{Pa&K-8}spdy7(y1 zuE*mtA;;GXW(GO;*D2%;Nd*P|j?yhs0}AiW$V*HYcemT5SLX4iwSLKt_FQjv;@ddi zAVUSy>u(=bw~&g8T#h_hhK&*;=jue=@kvSU-YdsabZY2InoTj<0%v;E=mFm@od0-x*K=Ew( zii2x9E-jq$-%I#JFb^OTX28+bsJOC-ph25%Ge(wY{^kaN&N{Lbu(F|$s!ALd`X_}< zrg(m9jG^j{v>h>Pb}s62r@t$i8g+R(aBa1$Y0zp>XcuRBE%kGX@c&oHo(WCA;pFbh z_surNff;meAqTdkgFnk}I5;=sZMWHabu5`3?q7iwvv__b^mv`hn||U*YYv8W{O-Ff zbiUkQ+XL&)>T)t>94d!TV|QX$XBw?6pNO~==vzj=tScN-^fqnq8w^t$dh@Y; z$`5MCYz6z#Ut1}X&jwi|@(L;>Dc#7m*!lY>nI=#O;;D~0+-^k5=Y85NzlM$-71m~e zV19aTqG?+xQ6nIS9JJR)2bmv%GVVo+ zNNQnjT-y!ZDYQ){&|yRM{E6Bz?{9=35h8h^3YLs5l|d6X>5T`Y!HDp!m<0}yob#tB zN^g{z{i;Pu3}%s5k1aylyr^W|gV!|-@xMzxDwkyq+r)d=f?f*pBOV?w($pyMxvO!| z1^a4_K zsy#k(`Jq!|VCgWy>AAi0HXbk4( z$0v)c10sZ5h~fS;}3TD*gZ3$&@LNu5dV^h_kE@GBoSEK6>Cy>;>$?B!y$_GnXMit<%I)~WD`1OcyC+Chtx&Ub`jR|K8r z`}yZmIVZm8$VwOHZq_f1vQfA598LZMq@%JGOEsG+!CKjJB42O&ut1OWJQQ!>7=60a zhM;TJS+Z90rr1p}%@HN7Ah-@Bi7&-(AB{7lr{a1XH6FQ}ls`yu4rC;XlhboL&atmS zE%8MYx|p!F5fQKAZl{*Bdsi1X{rdq~pm-rHrKRa8e)0Wic11UD9DAP!=ftusa>uv% zTZR`|5#Uc3FH^2wo3j+9m#{LviT|Umc?y%7#0CxHmbF?H*XHQ&?-}(Kak={1N)aMk zn?ZDH7EGH=9;8jOvY2IGxMss;p*^o{u~lFMCnmC8gk<2D%EuNbgrkUDp`f9bR~rD& z7|Rxz&2kzw*0$zk5c8X?BOY9kJl?Ui>S&u<;Z|VfcQ|!$hwuh*xOV z=F4kt*q+k(H#T_B;(aVb%EV+JRD=S$TG!1HSlNFjx_T3w++U9h#&Vn+WGPwaGTUII zpUE9O0N3C{NV&QHFt+BG&ia0MN*vXw-&cK}k(Margd&e}+OD!&c8(m}+#XH!?Wz!n z`g~OCb!wH&Rq3?WmuZXG*i?!Z`;yP%w`%^dMfUh+Lk<(DbsY-Lt5`Nq^;}=dN0F9r z8bs@AbDCO>RHX}PlE8B4d)=fGA*-!ROki6YC1P{JiPQ)4XxCN`Dz_kJVzR&5?geEt zUtC;NfbwwbO{6xu!7mSE@VE?+c9ELiTG+-B3aqx+$B7bvq;IZodY66Y%w9Xg1%oB7 z*pXGXm~>Vh5*iq+9qm)TJ3Naet%KEC>~C(qZM(W&m+exCrB`phDe4kTZqiJ~t7AVN zx;W`@+Flk>ffhR#kzklu=hctOvO7{Q1SA(DCM*EEc*hFER)9bjC^6Zhvc0wS{%k3( zZzuO5)ctu87o;YZ&-3#^9wkMJkYL|HznM5(isb$Q6S}3v>la1$)i*~fZ3hNTo9`uG zfF@fB_L|q*J;g{C)<*~95gtDr`DBF8%@UPyw3#YB?NF@*RK*8_OvsKKvo{oHzt(J<2w$j_ zALCW2s@hhlc6>|T-wlqVR_@g`Vn`K-9t`CCM59_Dama|`r`;I<%MScVE&WXmueR~0AJY&bEFq~ zw+rDAv1+7h$^2%hM-yt;`4-a0yQ)ZS0z)VuDCfzht0wryxL~kEIEKwGtsoT86MASi z72M`~qvo40$$_){meYCbUvuKU_vH0BOwh{3<#j1+6#SJ;EgYj=tKv6qm8we9ajr#0 zRdQ^1zJ;}mMa(KBNYM{9VmP~gD67@$eX5l!oL;z^bm|dpsrAxh>UHxr(`j?-wd05Y zIDo-{i-v|~zy4?E;DE!R2LK;pwDQJYt`I8~HF9Sw_?R-cFhq#-RhmuaqKBSGiB2`DBZN1=4|lB{k;ci_np(PO3r0a^Ik zP2Q|)H=y2}VsTJ;D)H&?A(ql)@^Wo-4-{8bO~N!d1X2q^r=VH&@v zW5j}ag18^<(RS*(;8Yl-Qa;qgGY(-Vrig)nD{lj1V`Wv<`}13u{h7++Lao-wiNdcL zw5T*D;5lLxC|`IXHtDjZt# zmNg6ReJ?2C)DLjm#bGyH$WG`?=@>0UFV49TOkpmiK0grh-=Cm;&QusHblOOpFU-UH z_tAV#Tl2>cj{MH;tC20_&2VUZ7yIyHcAAh6zQ|(%{ait_8uPg6jy~mTl4etyFWkh*08zk*3r&*i__F= zDrED=wgl%##|o!E5sFBXcF!QI0%Ws=L~4t;5a*Vh>Sn>=U2GvA3pSmplpO>*yYItL zGMAtp$82?tVp$&&mJ82JsARX&rOAoL>Sbe3+R}wz-7|p-GaVQxvWdRdt{EzeBO6wx z3cL?8)T%c`HyKrh@lx(x&dP`4${|w`BIj)3?QKHV{$+~Z-`plwKQa%3QlGfMti>Q7 zgJS<2@+Mqv;ZN*Kk}s#avf1K9$%YlKtEC@oX_Q5Zm9|(XuF3(=cy<)?zTX{)6NSF`34-)bS|@NRuSwD*djk2^q! zHP!veEXe}{N1M{a8C0tl^EA~|A1!TaSEN+Hg#=&canczKDq8@NKM!~JFZkTQq5ucC4m45r>`&eL>_(VH35edzW{0m%mzL#N`0@hdqnTRY zrCg!wtevA$-DlKtBO5Iq*hw})h%;(8pDnS^tPnco)5lzvwf-xM33$Td5f%7+Ch$`ii~LAhezW}dS&TG9o2Ck03Q1!_vCHkY z0SdD&QJB~v8;kB#m6BnE!A$kOWVLBHbnunF+MH$6Dx3MFK^q}1E-nVfy>nY^N*m!* zl*wLoH{B5s#aKzArQqkqb8jly$C2&8<;forA?lp7)xnriajBTIQTFHeVBEQ$S~E0< z{mPp@f>!A~&n1lO3@!oU$ ziiTcNQWB{XqZw!>1OF z<d% zEthO%HF7i;#c?e7f;A3Q`Iu5e54&Oc>KferZ;Y5?Awb*WOMQX9K zYaSf*>Fo?${?2~t(Q?nXxBtCBv(XHV#1*z-1uL{L=?2Ks6v4akY~`b_yw=vFq8;?S z3`?;wGrxi6a%#It%zD`rawe-wp$bjE{x#+9hd!7K8@MbdMSizBGO?2Oc%7!-+%EdMO9U6oSIecYh4=<)b7zb?j(!7ViDig^DTS6eF}L;)3YtXmh8ugv3Pc zWf|hH*#_!Cof=87X>CJ%+GJGL$^oBO{j89Iu~K6Elu|Y7aFxG$u!#B=d%z05&J#A1 z%l2_-Rh2NTe4nm8?jfh>7E#vKPRgYFa%(zdI%>0Q!sIphtl|(Jh7lqvIbIcW+{1uj z6&Z3GPHd;7$B-ro`%oL%%5dFOvQ|r@&RQhk&EuH#@u2(sYqEpS4P)8WjlS#)O^)2P zgUMiF3aP%$;^)H{>_p7t|6nq(s#zJnEs_e9x1b780U39V(Fj(o*k2T%ZGtsmPzQJ5eUmTOL-?W!4AiBtaYd1D|SA>&W$A84X?*494co0;%yg?gN#`i z{iSXA+mYts$9hm>3(+`5yvN}fr(*aa$jdgwpOG!#)ol9`<2KOW{|A)B|NPu^6DE+x zK59}Asy=H4Di|9L^6O;rHSjIFT8>z*QSWdy zHn*w%@rRezYApnGLtfFl%QojNy8w)$ATpneXp&@3Tr)%oi6OtwcdYgUQZh0Y7yI@` zsfVXO9L8p8#nnD!>KFz4ewh6l{Gy+>(QnP7PRrz(fv;meb0>4}`$Xm^m;2=x#PefE z!Xd$dy7074=`z4{qrH)}(UJGG2@2As6ZzsLmjdJ~V}${jXcVeggQVP`;^)7@q6B&rxyMUH!@is2CXL!Xl=@6USq9pn{h zRfxWlas+WBJeF`cn7Y`Kuoqo;v&_y!H=s17;h(A3!>UnAbXV8;%g31H>Z28E3VL^k zUCQaE*;GK@UrhK@(0p56n=7K&!&++GWLwL}F*Nc&7%#;O*xxf)#x^QyO$nQF5hYQF;RT)Qzs%V!Ht| z$G2_YSd|wT<+GOB#4x1Bm-|%j3Dt$ouKPZY?kr`T;k&f#T2$nJB%iCX%77pF4V4bH z999o$arvQb<(-F~HcNc7+p#c=4Y@+w08fY0Sd?fhySG{+SghuOJR|cnXOrNN*ubIE zqBwOi796uVAVdKVGoO_~)m(lwbATx25_(ygzOC3=PHqBZy{~UP} zlod%YlnmWpNahgt>-*d}`Z52BlBVKXQHT?zXzqGh7bPVpO`Ja+p6D~-EWr&vbQ4gG z4If&?F7;&6y(uEF^w=x$Hvmy6J7-a)Dr7J&&-7o?T5sfz~9w#z_`LW zmv`@2jP-uhA`&gNJra=kBHfeKVyoaOhXJ@GteyVw&@_oZS`q2Ti~cRtELZI@U^W3= zrlxR^fu>{04EkN`q${^~w^1Wma5#+40hdkYQrayyPF`;wH%z-`BY8@V+UGz8i*Mh~}mt>Bpx8qciko3{UL*^YjFseq2+W3OWS~er;5f z>)(BM_V7#9DiGk|Z*Ff{6bR7nYipU^tC0K~A(-$W11Zm@h?<9%s&Wq5POEr)(iy_( zjGFy?Sl2pixz2%ZFz)_f0f!nwi`7m?lbETe(vLF(+-W{ceY@W=8~Tb$i2IbXjWmcIEvAszb(YlQEf1?4u3m z%gEXaZ{B%hCGWjEVCg$Q0?9d?7aR(qBpNxC!J$PjHkgx*o4?1&_b#1hIT&yXa2r5kW$s@m~pf$rDG!WAUG7Gvh@qnZs2@%4Sg`jMH`X zl(p&9mAU24t3Vg0qM~Bng4Kz0TVi4&NJZMI*NG67B+2D~nzJI-8gL->Z*2l&W&|L8F@NPv00f3&wX~Mi= z)<^qI6ebGD7;WZ)672@NBJrxjpJz2|^k8dX6LTXWW|sy;#|L*NVNR_&vNKIuRq`c$ z9X}gN$-L`4P>Zk8S!wuxrH@Bl#Tj+^u78^l^I2mPsMK}igc?2eI=@~#DX4`c-lb0J zPol`38Tkp754N50?Xhycy^p=nJ*j_2T;BQ4D)vHx<3!xjT6H)d{w^B$i<;FBT0^;* zX6i{AiG~AJSlODLfAq4myY%cp2rNutuaB#$p;D;Y<3$1htvbTM6{l-;0lW}gxM~!F z;epsU=$%CYD!&CEkt!{Te9aljL8{3Gi^9;3`-MXV5* zKyQ6Ps5T!%Fo6odSgnHyTIF|$nf$q}VkPFn5tNGy*9;8;HP9Poz*-^~qRSoAA`Rdy zxsDO3s*lRpaTW03Q*r-8Sa-}0w)sIvvooi!VuA|ASETi7~FQH>SG$ZhK1S zI~tG6`%MsZNLT5;-H&Ls{tXDy(s)J$03ekY0X=>L@njMpr7itpwq4e6aBJS2zFN^; z5PJ27n)Vg3ocyo?1GxWdG1{Q>k?RG%O&+udZc>NY1;FAL4B!d`^zN>eFC~uSROW}3 zLRJy|7}9bnX?%LGH>XTT`u)B3^~MFTRR*U#IO`JsyAfCPS^p$PLSr!!WP2RB2e;-U zyuJupUke_>Qur@{=`Lw>3FFUBRn>7*S19Udp8?ON+4Du zg60=mN+8T+$=Yoirw%Wsp*z!7AS+69fRvYrr>1<}*TjccDZ>%on`2jT8;Up8fXU%bljvy2im!8iAQIar}mZF zm2tRt3$3bvG1Cq<&YsNqlsR6~s`XrTht~B)JYWP+s$hoxT1QXwV9ETuL*I52+#qth za2XT`sXR7^+6e|PqNpI4-+poL@oX_F*4v25u~Y;_rsrH zHH}TIcm0+R%BU6+pa&wF!I=VHYV?>2ncOI{GqDCwa_P~e&^+}mg!q@*T-$OL3rd-7 zh+mq)ZvO*7026Ng{`2eAr(Y)5$I#18yB!{g@Pkm#ea7;j!=*j7(pKHhk;#mU=>pYb{jcLJ%-s2M z-4_IlyZO~rU(=D3!T)2Vda$KB!JM*0Z{Zrs29o&ypn!?lTTs7bE`VSa<{U*L+epgb z-(lj973ll^VrpXIPXGW|IOXDjK0xF3Z&Uz)s}69)8_?$zW}2i%h0+oNF^jwF;&ceo z{{|gwWJ6%=C?*T>`w}I#&^h!V*#Dl*{+mniud~lc^O(KpGRZ^`%LTYXE#iM|;8#^u zHDaj*EM9yiX>@r$-;6bY>k0hE)#j=&vH;Y#6Vxm1Zy9iVSYM+oM~JoG`~!4E(HIud zX?3JvU_d;dp6tPLiIJj*{tnn~g23$m@622#M*S#a6)Gz4SE%9w&K&(#IeNwI5d}<} zF~1d0i3=3yw(6e~&Wyy!^_J8Hi0OjHJ~xKMGiLpdgUJR~HwqqCY-yr*`eS|!Uaufv zI(az3+Xa-1o$fqhc(XZikOJ z=@a!r_W^9-oeTagQCGoCo zU09>h$obvh61%5&2th@-O;R7wAOU(CU-Yah_vGgvPXnQ+->n9e}R8%4d8zi zP>#xT(=BA&QA&-Ohq6j(92rS|W~^ESTZXewazQQ_ll$9Jd6d1qf}L;VcZg!gCO`Nx z+J6)MbZOAuO&CClc)D=C--{!_KRmj7yET;=Hr@XIhAYNlMzQFfP_15TLHAPI2UYme zULJYi#W?K8t(Jyj$To%;>G03o0c;EPJv2eo)ybpKg+kZ-!9wpi7!4&{4@IGHlwE@I z&7A7P9uIwmZDy>bP(C?QP_>UsLd+Zuf;;}#fhT)r+!(|zBkV7s$pr#F#K}_I_6DJX{vv35P9HQ)t&b1y`1`XxrkQlh4hY}_trcW2_`_!eO>j$^nK&*Fs{^v1W?JYzf#-j}4_$$YNu>)3YWXd+yG1Wx& z)(VaQ(7sCb+uPor9_=HdYkwh0t=87oMt}@l{G6xa=BNaZ&&mRxoQ#;T=FGA(TuRH! z56W_x4FBS6g=aViwfJv`tG@mgXUDPJMVsS6WJ^oSv%GuY*;;zf`nt}z1*rQreGL|@ zUmH@hvUKqT<1i$O$5#buoA2h{_e$Pst}mE&@nqVSij8Zv8T0RrFlN$`1Wx|-C<$hg0XEBl zdFyzwmga9$!vtr*`7J_ZRY`>(Ia)jSk9A4O(&-|#lcFa{x6?>TJ!~u+c>hKr44beI zSc3M{;|ebhJURUBupbLMm&v)|Km%L=fRN&}Wz)=+v)gnF&8qWgCreqtU5>Ed(Xb|C zbbL%*Z$fEll~PEO7_eZeNFGdkm%GO@4Gtx(JYZvN^kIyH^W%WjxF#nj4Z>W- zw^wD@4#S>ZH!_0!+8Y|Y!pRIz0x;WmaWB+3GY$1rD(UC_S-`GV*T8)i4_Bgg>teP? zDmFcQ=C=t+su%B)JL}6ypX=5}twn;+Kc%-DBy~G+6hCCmQ!Vm0=IV?kSaAq@9>ja& zeAM$tw)8cZp*}HR>_&x+hM%Nrkj|Y9O`L#!p-*#vA2(J$&&KvsrIR{Lc23vYc+jvf z4CMcEmNbyfcY7 zSE{u$7jyfOkF@x?kwK60De` zo7~i06tkH^su3q`zsIhMgE;>6cv#0~$bWMW+%pbWz+v%P0a|Xu%~|Y<_j`rVUa)k&ppTp*v2f;(k&kAkL^yFMe^+t6CivEkoEKf1q(=O# zZ9K|lAcekH{X>-TADQV2I(y--jjv$DK-*x>%hlfQ$;>}*V>J>^*OxO+U4&Q*0{nlw z3`M{1s)`8)b@@Van4+wIiqr~O}?OK;&>l($CeY%Nf@tT;kpaHX+YU>+(zOxcV%Y*w>B}*N=)9Y!~ zG~qr4P zk96;b$#bK;`>bx=2BkAZ!{NL3ak;61r(>j|S`dCs9m?Hq-}HX`1*UxH!-(*5XdvsE zH16&&1+&M?wU8s0lTgupHvHlJ^>Z#8Jzc4_W!mC$7+)xpi!g7?u?eKUY>`tm%qhF{ zu9nmGV9tC23kPMCaD8rAq z8#sb*aqDnWaDNkvNf>d1sd-cN&;hFy^{0KX44d7alF0h9tJWx4D=vq~i8FcHZrVAa zYQ;3kI6cYV5WWSy8TSx94f5?qL#%D;dp;M78Ua_$hZ{B7@;lPe-HptJ>a7E9K6o}N z4MOc<$0~j_zuU+Oe)ogRL&;{gg97;~3JfS}D+{sn029Tun~J%=trDglurt5gWJHV~ zo5STR5p)GWYdS!szZ$CQOrx_cat%fo0;fQhj%wtKDfo26){>@YyX}R%*Usm z`R(1+96$Xc4q5H_I;{V`!>$7B?Rjy4E8|p3;tHW@1*?({>r9L`2pYvgHUS~-FSsVm z1sI5T3fbuMVW*hj3Dz@x9Q03DXQ04;?!GdZhBGyl3sYkqni$h zwo%(LRG>ex^B2&;Hd{q98%XrzPbwR~EPuz1yY$aH~`&+4`zWu!b* zD#iwxic23`Jwz=h%L%C{bc0aUAO>5b&~T%;xY3*Gq9Mc@V8WRAab+!yXp3 zCv4TvT>x;=MmK`YskQCAw-O>hkgEUg`sB(=kyWsUd_Y#u1P)OPTB4uOn7IX06rV!hlqw_l?;X5OWjY-}r(EKH^kL=ea89&@AP;?XWPU7Kh5E zQIyz*zpqPq;|kNv75}z$Rkw6apg|~b@ATLv1nnh-#~-d~%;*ffNp)_k#5LOz5+!p( zVskL6bTy`Q#?mfFZ&+g`D21B_v+R zS<3~&Zra9bMiW#go={QE`N(`aKe~@%>&i8{jsoApjFWIsI2+b;u|eUO9PlF)wwe5h zc>G3(OY0q%C=N?>^eHfb^sJyzIs;KdKLb91#g+GG_?V_eQn_h5T>xIHxx zm8bX&TxjyhFj{<%`v0{eZXsVmEJQ(eML$FK^U}wDbknnUqUsGAz~FGU$e{6DwbAo` zGew=n3%D<|ogs#t`(TQ$hPb4aXdqvK5Qd$MLe$|g9we?LyI?A`yZ6Orr?wtaRA3{T ziF)_z`8S?`nC`NIj35=-q-Q)S3iel(WlxfqGTqf!Y7VJMMCSfYTx0{3_ z&UBrDOX#cn@w#`WIIUVKNOp1ASDK16ug8t~=qLrAj(XR53zysF38f19iTILVsZ{E_ zf!4h|{fN-srqoq%^Ka7RF?~c_qBTor&b+NUc6oP~VFu=fN@e{)t+qfC6steuJ>AJVG7g`OC`-$~wTa&&Qe3R^_*Doa{~l zo1kgAjuc=Uov?S=D!rJtjdcTN~@{{?#M_;c2?F0 zK>|LHEpWl1Zo1kbDxgbMRg=-DQZQJxRa!=d2nVfVf`67WW^Y~rrlO(w-P8aT9}EG&fk7lvtypXcYoc`=rY3(%%Pj`;O0(CF;slxU=%5ec0O6_wVxOx2S{Faps< zjGXC9vdzEU_T@-#4ki8an}+GjVpi?W&IZcb7*p5t)i#&WmW42N#C)KH-R0C4&@NZ& zh5{$7uUD|$6*y{CN3WH8ba-gQ=p`u`egN<6Gz`){As`?S5D;LXRZQI-92f`*32|uE z8OuU}jvE36P4QTa`V))9nP<}Z!1xGIBZ9Nyi*kN{4?}{2f$?&8*I+~#*B^5B0cFo8 z3u28odv{R`cDavF2skf$jh_okT)=4hIDDL$VY-;M)-K7J9v;xun3dTjTicyPFDu+O z7R3fdn1KjW3B^;)dE(*_yj6KDgH~L!9l?%z&4^-|+r^?N*mQn%M&2yL+DtG1AZV~7 zCd{3-9YuIEeZ;Zh z(b0N{(5$R1Q&yZ1@B=5lKI=P&DrO-Th8F2c(;FRdJ}4n0MfHRfDumYz_+rprUqcU7 znBO0OjacEKf<-uzw+c}P`H?txpiinlF5lkZ8xIrV_B@a;>12tTDO!qU;_7j#nbti} z?stX!WVjVvKb^~okh3vzRSy`a*x2XAWpK2-EN*9k0aD#9^`?z|7L9q*4QJ3?dYra&qF~=kJt&*QDhC7>x2unrb>QG$M zg|02775O4v#*ZQMxLH0hmnXgZXV(jyJH1)KtwWAYdcxk%Rp$lIzth;>2Sl2hYBKn6 z9=98+3*Q`+sm1pFe-hQmb_651c^y-P78h&%yEPpc6e2|Kemz* zEO^eBPQK$?Xt4XJK97vGj!;O`(_p!k%zS@aw&IL?EtB2)u?4qrPF*ZG>lpD-BZP)v4QGOPmiIlVkH7*lkmYE%Dk^+S zJ(t_575lYQ7^Ro355M0MCv4B@YDVJ3!>d|p@ZR-6x1>n8Pf};qiH9lJvUYS7Kg)O3>%aavrOEW4!Zj zm1X&XErP8M)fXBp(sUad=-KRxt)v%&=3FcRDcp04aLJZRD@Qre;b!XRys1vGd2;UF zCIuo#4?4T8Vhz3u?~Cl1Q{og_zRDlveiw~RTzi-A*~*p}EH}b@FPcXJHj$6tmI4+F z6hD5HoIzH!N%T`Mp;YCLV1Q^Ig6IlgbsmG1neI>>();%8%|b(Z#HJvo3k8j|>vmhL zpa!o|B;WT0)UDSeQrQx(l?pb5D_9OeJr-pM9Sigo9$E33H3EzVUP+*NdfACybnkl&*fP6iwl!NDF(dn*LO&0-)(%gTz8C>3)|tK zp2MFO^HFX)Eu$0AFJm;3+)Et9w2->ENO^aMB>B#X@Yr>AeiU95Nd^h$wXoWX$35g_usfb5ZMNdx=b^mAOMyR@P_ zmmJP%U3Vq5dao&qc!{O-*xYLk(D@VjV)7<-`~+9BPkS4!!9>HSqy%keRsRp7P|oZ~ zR&=zu$hT64Hl_Wq7TQ}yl*i<77|Wl{6_lQ=F@xnw{8f`A(Xn43glh&;WY`uUbVBcV z4D=H+vL5CZRx{6O*S*Ysg9#NxxnsdR26ijE-&Fw#|-h zCmo}bj@7Yk+qP}nPNw>KXV%QD_5I4PN}cIV$uxG`}D_24#Dn!a-&6& zZVr~Eu3ckuI(39!@OY}@Bb{`OB8=iu^}lorN@ae;AUDJeb#R0Y42FKGD_)EIr5J2x zAqpnRaY%{xhS36T;OK&c)5rMT<<5w0RmW^!a!EpnS|;kST!=J~KjYIrnl8Ybjtt_o?09fE~me|wb-AlpE$Po20_^XC#Q8%3panPX^Oi;VC-q!ChL={M+BW4htKto~U*73+&&fD|4#7XJR!s&+nk@ zzSt)D&9*{2mHEVnuf~XEWiZR;_RwW>D@PnyAQ6558%TCP-TT;Zrtp1q4v&orpG(?{5$?UFv zxUJ_{&3(D35Y%g>fvc}=Wkk!D=SNrg+MnqPlpLVzgIStIl;F619=E$Le>iCoLcs@J zS(nUwh_R&7epyrWHd?hn1^;`7S$#nBUuaVLG9sxmgL?o=CeuLqQ!yms^L08sWigw5j9bD)srng(sMJc!!C}W}5e9On{ zo}c(W73iT+FKUQq;|ScNK3bf~xYv$}&70EoiFo|l946jFyocHjBaQj2b=)j7_u>&z zjX2pQWg%>_C@|$PEO6~D9@fozJs)}Yo>2UrIVtm2&6POA?nKdT1u{&BZMrlw9W0B} z+z=lu{y0Gj-bxmHQ1n@r$6$V$IoQd+aP;*uJQLA&=_^8CYXM@8^XGKN$fFWt8C~QT zxhZQo>#~Eu!lIFni-I+(Py3kOg+J3lwAWSJ={LKd#w9Ur=7k8 z__U4JojIW99wLD+VyFA}Cd-c!etSz4g^cB$VXZNc%`idHk;Qe8a@_E7GRV zFyJq@)7Q0?I-+IT2b{1>*c}ADI_0&ABX!{EHrZ4^=yeU8`IP8{qdT5^*})NLg+%h@ zZtjqDO|PX3*8t+lZ@3>n>1ZcBMh0)}qz<@5>V7FhbEzhdcju_n$B45&+Fp%cG|SLo zmLj0BMXt@;*rLxLEEgKos1%UJS8&4Lg}LU%Zu4cYLE6ZKPTR79dC_PpuV=5N2VN4G zV{&f0?)wnX>>nTg@dSW^YBxTQ@D=-B#)y^(g1@RYLsc3k~;Qh&!5)oG0*Nn+yl>HsQqa3>oyk_e*TmhUi=|+ z+eAKUoSUI^{-IxxWXjXKDxZ)jseQ(*r5c3bSU1h%Uag-b{NW1}6TgUYc8DzWhvW1I zoPBN^6Y%N+v7kj^`q(-b{AQ4$OlxmCLg3o4RaS9h11c9vkxNSyOjU5gwM2-p?vxh( zOEmd|&`!m3H&kffa0t56+*+9y(Xdb7XHznGeGd#~=+)`asP76WN(1M%1v5fEi_Fx^ za^+9Xmnr8DUz&8Q^g3#5YqyCk%t-03K00oyWG;QHR)^1?HUmoa6xUc~X_!P=%=tLg z*%MjCb9KCwH2HHf!R%N5b*PK&zUE?>quwo?r3F*Pll_1nJVX2xi{0W~vDA?$RPT^@WOv#?YAz;Bu zmDJy_bmfyU)=ukPyd3+x6i=-}vx9U7P0wY;v*DX@FX@2dkCoo~KbPM%ZIzLJLL zvZ64-Ho7{p@l5^dn)*4Rr=^vam^c7LaJB22K5duI9)O~<3ziMdy-cY<{a+jVat)f# z&$lZa2rdqe_LswS8+G8Jcx*T+QSWHeSK9B_!;lMB`T=}}UVp{MMIy<>9H$36s)E~6 zi!^2^C^Er4-PxYh8aZlSJDm5nHy7>PcR$)(Om|0)=AG@%GIkgM?rk9=B3g4^k4%(A z{V?aC^&k%U?6SuoKWY4j{6X+MwB%<7?Vr$>u)p~M5sF2ftHrqI(*sR+tM&|bFJX@O z7x)4npd^EGp-fLZ1>0Kf+`)g0qN!ZL&;5~j;LvJR;Qii%D%VfnPQ9*OJhCO!}O5gV9i%BJTB*AAUXLTU44xBKcYI?-2<%;ovp2H zmhbCH1UfZMT&oO8x$43doVd~Td3m~p;gXfy0Cfeoqu0Dw^aAlhA`fj(CS&)vb>@HI zocC&SCdR~!I{NzP1VyPMd}OUUMh$N}NBts&fN7<*QN!h(K(Pd<%X8b!W_bOEb78AW zxkks?ZIj-h8(QygEX+t3}vrCn%p z4+CYs)ec*2=idryxnMnC!fDrKNaLMG5$C@5b@ai zDYKMp-S#&wHc=^t9bAhd-v&9C5+SuAWWINGp@hr00&>nJfOZ8gr+H0^QUh3#`C&`> zW^y_Zygr+Z$8;{Uuho2QzK%ZaMjd?3^PLK`BHUf5KiggJ*kE1z12-Ni35iSuY&f*N z^De{X;`}Rz{SiDIXR-#zeh2^N$K!m(xMTI~SSWN(#hBR>;^PxSWvH=qpY1;Mi}U_P z+HiWWsA|h7Y)~ReKb9h!G#JddRtLm?cs5`Rzv~K3EB#thMITAr8;=p2+hir+;ka04 z^PN!)<(DBbsMCgILQkK~64dU;#XSQ)xYe0sMReot-a&2Qf z>chjjuV~_|`VwC1=SWT+Obb^a==ejez>NR}S>9GE;Sk@NC>iy`+5k>B(f;ljOwbdVZqVlLrYgOQAsR-DCJHn+5O`Yjf;c z=FN@AS*s7LRx2yuaKTxA_q@d@sfmw<-tDg$M4y81Me$Rrqh% z-3YOCF16B$!_+_nkdO4YI6ddx%tva5P9$uK(M}#%;(ns8O8Y}aouBy;)ohP_Ecxj( zyN(eo9og{J-7Z{K#hlOn>}M^j{xvm{pgW{2h6E2G+;RQ?V?P18YU%N=BB>1hR2TI; zNKQYSO{`ifyX)H%G;&dY_PZ20be967_r*5tJO%wlxhYNk?t95*b%dy3^`N3L zaA#_d+)6G{V9C_to09|N#I+R|en;b8Y%NiPE!dPGj*As66_J4yRH__ZjBj)Ag~$50 zh+drf&r*BaQ$YF&YuEwyGU@nMjfL*g8SL1-33pnaoc5=|GgUz8K-(O5Tn<0pbn))6 zVR`C`+hvm(q|St=lZ-mO+1Y{i)K2O}$H11{^)%tU_K=#xAZ>ZL90f9i;ToX)hN`+n5!{U`or04U*O2gS1RtNTz z4Xq@a?;q3h>W0-`aXUEf_P&RtN ztxFx~Tl@6?3G7f?WgR6rbD}k zZS0;|s^kZg7wd#%i2*MfTyBWrf&-cSfj^T?lKgV<3I4(+K`=nV|Cn~y^)FEN(v_zE za9fk5t7Or-iSSH=dOly6-R<}bsUt0i=dhG4}{{SW4<-)SxAbT>}FgJHWDhkW~U%1*GA3Tqq`z64qPS%k!QE%jyI_W|QeR&Ds0mIc<%&^5k9y?8UH8 zdO78YePfYc5-9TM`~8$5na)5FCPOw;y#HW_ z>C9xI(ldB!7KW|55=aCDR=z@o!Fk4*SCbDe6>u{f&kxM=7iAbBiK~!zO%O|Oa=cHs5UtWEi0Ib(o7&b;M2jh&XZJqUuj@DFVh zcNyKP;Z&g-^M{?8S+V^<=}gBt5KY$G=&=2mF{+;pSV$9LX>BtKj264y|2_7N2aGCF z#-<)t#{}uhr}6yT*59<+!)Z6^5F;t15KGMI9s(e7o>owC{P{*2-y5*e$l$sbSXCk_ z6ofsc^>aM-e3aE0p$@oiEnP)uylm~_@L4bWA(@N7N+6k_4Z_|&lAyL>Tn zojZE~su!4F!UCUC-*rG^iXi$x{{4CTo#+yex20l4g#^XW*H1@hJsxYnChBi$s-}j< z^15OOhS|7Hdy@m5Rs}{If?O8g$31_8sg(hLVQuZK64H?|?dfYb`!w|f1UWYqTst_B zwuf-sDo~|iV15eV0*dA_|B$_4T$fWPl?wa#0b$L})+o2c2vjuCk4%Nrq4{jpr5aEV zYW27y3pDJZ;xEKH>}4b+9e8hW2wL>Bp_|4vN^(7K$4`~8inF;+lqhc_PFXj~GO9_D zA!EnN38uk6^RD57_{HTUoBPo9w~vq(XYXOGWw+{UB5QWd(7>z>@;fvcHg2>aajX_c z#t?5T*-rx(XliQea;g^%ab7h#R#sM~)bW9V14=(jt4U05Olcmbn2usF^+UL)z}zq{8GF}McnCfL3p@TRD)-}!OTZ> zM6*Z@l74zPgKyBrj~4UQZxa)3TKh&focR!7ppRJS=mWp%vTAv3!w$WStG~bB`3yL@b_B#lfCF|IXlUM_FGuqB)*=LZi(R(Xd~qh(_FL(j zMF-I?DP7Sgo*Eh{1@y?STq(z%|1g}$`g)dfCNwlOlM|g5d=nc&_G)EB(ffTk;jJUmf?P-U@e_tyC>w z$@nD$TBd|L7bx(F9e(sk#NW&KR;I*D+7nkScDe9Mz;A1D|6IW`%5_)bmFGhmmFdsVQ-0 z#dNpC3K2a4x`&V+#9GiU=#hUhx01}#3ISGG9fFGK*Je+KI~|OUD=?#EE3r2ttUrIC zs8U;K0v0lTaQ#DxWYlfdX06)~R)&mvCyya=x7~SqPW5roe2-9zQJU>1^ZBfy?6hI< zNDkln__Cmt>B$pDCDqW#^_>}4T_%lbPNnd=h4_miH)V#pe7@WYaP7`=?yJFv;DHH# z+DOi6vo-i6qRGpvZC!4hu}F8?I?qZkI#IAT54Bip$yLG-7+ z)%f2kxysDdy9J^igZLw)nU+7DsAoQYe?@gA14Hbk<)!6P3Ts$SxE$^YD+xHDfmDz5 zZEV(W9gKxP%~)^m;3kDipugpn&mUhLh;P>04Kl_TL?#`~Gc8>ImFX*Fw3@P;xr~QPWWrMp?s4cBq z{-P2zQn?JV22nx*%Wu|z#$X8&8t;bCCOEr;$K~ISBZI-QIv6s-uROYhkl8}%3iokrY|z58>NEh60Tms6!QeHc$jsf2A5(iWccMsN-^qL| zj>3&RrRK6l(BsVJm)V_TrI%2}6HmKS>5#EbNnC&0fu?y6M4O(1$3M0Jwre*v9Ys+- zhKt?6cx_06^e)~gmz&?1g~NwWPUCbMq(%fXf9OY6l;-C z-u+1W_65@`-+Nlqks^IBr9_tl@LUJ(D8zlfUycy&1^-x{fQt7}Ss|aHTg|O6zS>Jc z63Yfh>M0_hckG6!*jDF!*I`!dgjHu!Mj$o5{YikUSqtz0S_fp`&m`5o_05zu4Ys%3 z^pjUTIo5*3^B^6BzNI{E3R864=IvF&@o8*7>_2!Ni-Q8ciPTgQvqt`c9d6J^nSS2R zOSVvdZ|Q=^ZKj*2 zbG&x{ikZAAKU(>M5}t5tXe;kJVe!(&qXpj$z=NQ@D4 zDiR8l?{79b-1(V1noA&u(b4%YCg?@2Ymom<#hm)!8I3?lrIL*FFU&z(N3v>1U?b!Xwyndl{xOaaLbL& z+hMfg|Jue2P_6e(+LIL-ZW{QwL@8I0Rb#8%^30*{#yflcukN{D(J8f(S-7vRJKMH+ ze|w(4uxg_&YL4sH?S@hx(!VpD_I0%J?@l#aFmyh>U84VuRJC;0U;WNWGtLDc1bLl09>A0@%!xE_!(XL-+XajA3kc;bo$~U>3>ydMcc4+!29bxOk_rcJ0M|vCH`8J z*;IB>1RaFvwz7jOUcBsiNM{agTU<_Bi|W!~%oAolt)wmygvD^WvL7|`+lFgP!?dg| z5US(3E;nQ>PEQiCS@F9F)J?t{>yIRRAVJOf^)+tDE&7(*Buw6>^XjN0&YgFEd62c4 z6*}Ge$(G9B(T0|zzk!WVv5<#7&RD#Z8XY*LQXz$Y`o@@Zg9KvH1mbPRjy5C2&IuMA zB;gsT5-QIxUP!E)N`*w!3i&G!{4=sBLqdnEAQ^b0JXBJ@6zonNA=MfQ4Yis@&9&DJ z(YGP_m0iU)UA{qU@2Y>p2n{+H(f{i=aTB10^MCj9jBI^mgQ@aXCFY4?M^chYA-RDh zC7TeMyV(V>fscbJ%81;L87sy9$HN%H;MZ7lcGa=Z!SwZ8IrYIbA>oXk^KQSvW8Z*E z*YyGINf~Xg=e7dHNmrffk-DI5HtQ=jD7k& zPJ)+*=L7cQHzkFxBve%(sMSPj42CK-YLZb8He)-O`NSH zTJRJU^e5B14u+6W_S@Mzer7c{H#cqk%M|cWp!$f~CI!#~3~r!Ixc?yi^6_=pM4Zr~ z3dud-C(lP6RV%`Jt&=-~)v!~V;|H9FU%T&@`NXWC8Frd*=yPekBMWcmtkq=FA4O_9 z>!*vA*%`FNk>myxG#Q_D-QJ@+Rg$z+--avLyDezC$P(kUI6z5(C~Z7{c(Mty zL`Is@gF@pH`+oT(Vcn-Suc@I4 zbw^G?Z&uJL()f06 zht(R@oh3L|^G%19q*D0P2?4n2&-&(;7A$OR--9iF{4RTMa&D)|+AsX}k^PGFgPwe% zxoX25&}y%qc{wtd&Hw?|(8pGp*tDPM)DDFqCiR-!xoQgJA3tB$mXZW@37noU>zbRN zs+#y??n-tv+l21^=<4NZa=DS)i<}hzzDBAGM{GNDe7lwfby6R0YOhc z9-Gvo&aCy1v=eHuEJ4#7i`bQ4OASuoG}F*<{B0JJxR(@o_GA>J6i!COc%0p5)H~Dez^`Ed1~XyrOE_2SAoeD z-nk7sI5wSnR3BwPC7m^kN!2$?GanYI7y-4nqh6OEX0Vq$)Xy5mSy4xEH@{j*QRu+@ zqlQ4K0!nnV5Cfjssu>P(^>!BKrQCW$q?0cP^1v*RgQkisHh0F zG#56B)sOn@iYhi6D@mD|uT{!7CjS&GI1v9?&_m*IO$SSgnFS9I6>F-?wmKY9Z_{tX z5V{kC$kUif$RoaZDI~Op)^nk^Ls!iJ^+(l8LcF2P>B~Ol&v#MO{HGC4s4{T;`Jtv57rl#c##v-ols3>ysWI7!pKI-wg8Qt6pd@+ zolZ3LTHx>f2rVRtxJS<&)JH2Qh}%D)kl=}yxrLFsI^~2j;Z&LX4$-syzik6X@5u{` zizP@o}IDo*W|im3LK^>E4EU+S)fe z9X2O7&BkEQe|PV%JWVfcYqH>sn!z;`oNmFr*>ZVr*)3Hxodh$7H1zCD zn=5zZ5cXhbq+~++J3VCXk6Klc+A*2XLi?ACXUzv2s_3*I)-qt}MbP@r>rHJTvhG2f zGyo0gV@^L&VIs*}Dt^rQdMWJxzF3MVa8x17LL9Sf$5~$V969g`=h0}ys>(c1VR}VO zS)3^h5z|5fiO@jT&yVm>uV)do7y6Q)8$Eh!3GPF#V?SKw~D+Pjv8)LC6*Q!AIF22FfAip{Z25=*JJ$Q z!p1Y3E&N5dELm+2=_aXc&zsP6)xfa^4fV~>$d0$Hh||d^ zF&N}Hn+qT?`xy@$X6|@7K0cOOn_DOVrA4xqw0i8`yD{TjZ0fG|r z^jA(=7g}}TcVPSk{Jt`T$ftTbS%eJ0!9NB@^-7%*;2eWoJ|>;c^Scyl3G>--U@wvM zWYk$V+gybaYbYi*cB`#EP|ybM-gg^wo>1_t=}VY4<&Ngm12Rj1z23$8)S$Qg1{0cO zdbMbW!X%Cqjv|PVJ|ZSB1wSqRviV-cNkyt8W`J-+h-s{o)euA%?>mGk@xoX|5+rStAHc?}1$nEvF(P z+hH1JG=2!a;KnLR4k-c9H)fzbSopH z-Q(qI?#RAL1t2FD002~0+6Ib=5F+pH?gE83yhH|{9WB8v? z_lgiKboH<~aidF0Ecy;e$;qJ(3w%YJTKP<0&}sN^cIsrohagn_K4Qcdq__zY&Ia5) zR1@GMlV$hA(Ck?6c3*;F`9Q3xVX*HV~O-8+STyEx(Vh zz_l(N`qB2dJ3&5DEPxCQA<+F(y-4lcrTC$pZi-)>HrNyEt{>9_68E}4k@bJDEPM+P znCCZPa(IZkTqIiu6cKdE9nq$ri;1D0{r7Q*U9TZC1!*hh$@dL*WhaRAqsQNiJXEL< zyKq1=uJ2)0fjK!jv9U8qS+Y-Ti$h7kJOUG->A|<7%lEqZpG#*yQe=Ec7EuuZ=LD+! zk!gE+r~;<_;~wGl^nWIvyKUlGeal_$0x?Nyb6>5l`$}m4?+eZO6K-YZlEt6@&>D}V ze%V2pNUfOa&DNWcvX7+3qOwmi)NjJJuIC*wo)T(k_=Fl15!0a@mx_y?MOj5mfW^o- z;{EMa2xwJ<9Cn3(i^y(jf7W&64#6vv*>a;4AP_aWf0ytPtO~bAi3FFkK8UY%Kh`2r zVO4DtiNU>xO##$s+AO49^>TOCi+`ShL;Q8#U?-Cf#s!Bfv?j^qMM zj)E;8V%5%LI#!Hio?CFhUHIDtc0r~SBRZ#F!8_hVfIllsG#liQy4S>-=YrQmFl`+V zS5rL@I2DL>coFzBzNz=R@2R1LKT)#Q@9ILg$o*{9m0Ea;gmjcKXZn z8)YQpSrW*{jnL>jOH=p_Sb|K>6kE=0#nI1+qq->Uh7(>-t*gU)q(KNOa^d&O!5!4} zK#*%+hePC=zTr=R#eq`-j_>L7i#9z8ByGEx3mU(BIX*`YKkd%&$UNfD^dj7qy3j3) zHR#gp6yjhdM1Q8clbH{*tD?giZp3s0&1XXx3ls~cVH&5UfU*{uF+JlVcs5D?*1KaL z#tw^g-@OiQOMUw9gIgS^?mu}bW2|O+7p(4)$vd#eFn|t^5V=GnK%T+y@UumoUAHN| z22*x=-N1ZB&d_ha&TyCAD1R*G5O?<|zCXPtuuX5CO}mINhkbDEb>J>q@EI*+lKE0v zSM2kucH^(-sV$RBYZJ~ShnjzD?8m3^X6&wTbpnF1>^&Q&3QTIA zSN<|?E-AAn(ll2E>@jSi$AC&`b=linp~_EW^Ipw>{;1VG+hGS_?_^be4a`|MYN!p| zt0uyyalPDL^=OEQd$Z|Cm0g?jJe?!=MH?UTLCW-YaN^TyJ!LWOc^0CPgaWc=wldd- z``r3~^X^}#$Kl|;H4g9l0=X9H;bT)6I1GBP_pY}Z@B#;nAhN{VYxM;9QxGfK$sSE? zIjN1Q*vjKlTrKu8++65~XA$WA^z8Yn2m}Sf75L4uMV+s76$CCC=moWc!4|H!DfjNqGW%vUGZ#t?$j5rXiF0r{A{W4 zA^ubL<+x?yyNy2ji+%1ucWit z>}^1T1_2bwAcmaz77XNTECOl0)7HxQl9e1pZy#M%y%A_{4BekBP@(pmCH zgBJK518O^6W%UJETq6zBpH9)FBMJWX-Z8uG3~?KN8_2^j^g^8LGn4+QCBlfI|6`J_3X&tO6qm)lwUV)-qSAL)vM znfe!>gua(0m-n2fY#h}M2FH2&Nq)_tEUv-L{fT*%tUdRYD`6zO^1Aut$8Wcf_`ctW zwpu)c*=8~T({w;SUI6fB`oX)lhNsO#NLgloJ_dpSm2I|%)<;dF$eiMUB{2YN^@NxbqXj%&v9MlM zV|;-m51Zvvc6<~toY1!1P{f<3logn)L1YLaSHXO{U)>ybJ6bhln(?N(R4OSR^TH0> z!i!W{+F~8M01Sl4`U$@pL&((-7IWgot6;s66K|PKQsKH^_Wv@$vATOen#=SkmJ9UG zJ5d%)ktx~ANU|XFU(&nP}J+% zSZ1wMmXcvDypS7z9%a!yd>sm!zmz2wc9wyRd4tF-U(}j`NCqVHc`xcgJ&Z!*wt~}i z7N`vo=r$P`eKl(6kQlj`N&{VW{w?#zPu|1N0`QHrblFW@M`D)O&?$N{(@n%XdR{5n zXwJ6&H+7J~iLsl$ZtnGdFH!tw+}sP?kQ*_I-?Cd$_02sf zcqO9!MmZ;*@AXW;r6)*pMkL%{Zu{wHx*-PjP{vTY%X9Dn_uChzo4Jr@=e4pMncFoS z-hpraS(6h@k%TPs6t?E!WvOa|^7kzRSMVAQcY;iFDDZQYB zSIW6}IX&YgWLON_R25dyYX@%X7>~!?gW!jSXT1x`Y_wf-t3fcg0v=9(WhhV7>^-ZZ zR%snF8Cw@TY3^^pt&yN=_zMuF}iv<18)!2 z8G|b>wDu#mHz%HokrEK-PGK}gK|#@=Q4179!@{COgWXtP$L10TGS1Z0)S{!K5wIf# z2%+KN0#{}hY?k$W?d|P#bp8Ux>x7fF-Q76?1k9Hzb%n*9cY42JVkV0Luor}PcqDY% zzg)Sw^JF`DSH_>fTj}*XfdTD!rOr(FXkd2MaUzZN^Yaq{J>Xdqc+!VBZVm@6`ShiX z9Dkr+(B%9fhZ5P4;@1n-pin~&XTiQOE@ukXP$5xOO5v)HX*?*E8w}m&-SFe-aTzry zpGd##b?W32&Z~m6^{BR#{Lxh$(e7uh81c;DhKu*3K}ds;>=Z?RQKxa(5}1)A1b1|F zD1|R7R;BUbT}&W2AAX{9*&YPjbUik*9ekQ|&cml488ELd<04-4ozbYNYLd0E}<=>90FPOAOD z5}5jTy*7o#cPMt3_Bg{joR@ZorPLG9da(q?Di^t$yi>&B$UuhgRoY#tKPQ_#eKO~g zS$Cy9W?`Zx(*7&$1B!!c_|CR#1uyVq3qP^E4_6}zsO&__V7#6tt;gRDnM7>P8O_FS z%vtvrb2xb?!iufCEI))Mpuhs2T>;uuC-Pf*i$(afyzhjR8Cy-PP>C@As)3seB@0-y zi6Sk`M5zJ=iqqq-Iipw!lGQ0-eRTS}LR!g+7d>*|+JEZEPma*#hA@8Q+TB}DPENRA zX(V=N?|XRv6ipTq-dhXy?1=0aY!o1(2+8e$gq(cIYm_>pHxOtxkac>L(x*J@5;oq7 zU>q6j$QNKPH01NEe1LOTg{;BBf}>Z)fi3x0=%c?d(5)-Fo#(tG{%omg&b(gUs{hPA zIjOt5yR|+)OENcvUcnRSJ@d+>KL>=6J7q+G=IGC0HSKc>`Z+uHSBb(gAcZam_#WMB zSX5Z_aVNFVi9GY3TH#i09L5bS+JWC@r2=%8P_iLY;zB9-t+*%a8q3ve8Wz0dKN)u=xd_vmrfLlg6c+AUqCfPv@I1}Zb%ruSNzq-{8T8rTnHT#df-{hI8%kEBY;8WbJN0+A?A#$fUfS?5Z!hG;`hBu}0S;Jj0e1>a_+h!<#t1vz-DJ|}(T#Td-ZH4m({h~ZCe3-uhOGSt zEySk!z+d8mAEiE8JMG#if)<31;DZ61GQ}l!nTNFDs%l}AaoM9N&s&r$Qo%#ykZwKr z&cZ`41<~|*&v$v%ffjvH>m{R(;oq4twC z>4mL$o!`0Lq$R#La*RBMh@f0+Q5Gm-Ak1tX%gl~$%1G-x>&h&xH67so$e#m1qFMAR zzdTRkpBG$?+olnn+S<6NwVlyiXRBjZCxzFiRV0D05CJOFwHPs)idI1cM$tb$#9&Nz z!GU9EkRHbb*o94vsC5L|bDw9-9~;Y&X~q@|L`i%sGiG!yX7X%3auc|k41>X!>#ivg zs0Kz!Zn>81!SRWM_+J7bE_lC=Fxd|U&I_0aX4{q*t?uJs9QqwDPAb9$ngrg3>L&hj zi9161%VDTmvbRLiPWl%iXGcW;%N*aW;hn7l|B(lR(J3SdfP(Dg+yGn*6H zZ}Fi+pK6Qt0i^3j_tL5*T>+=I^n5DO0fHtv&HhYa=Gh{cJyr%@s% z&BzQjJx}Dsb7q_zDH|zR-g>Sgxuf@`LFxL;Z|F7Si3IhB4~Ux@%-w0Ba}NY`^Rw{B z6@XM_DXx-U<-HO1uV`+L({cx*GLsbf?|@>~vj;$RQ6&q-I>f1po7PX_KN0Ba`p|y- z@f`;fZ#^CbwGn2*tKU7|LzAU+rOI7Xi7{{@hE5df$+$payW;$*FTA&9s`HEa;PrI@ zpMO%DZ-v3a9=vLyCYbzwL}bOf>-j!>2kK83TU8Ha+LO-dn0-*- z0ewf06n6q-9u_oCsuoFSkYQ4wNOP3jQ0Ml%N1$f)b`j*4O4(EAQ(*8hOSWL<@k%%> zk~kneOMJW_RC5J3)Vd-NZ5@c(Q%!zv+5%&QfVbQ7%F2kzFjEQC59iS&ecmR#$m=aX zc1{4lSv~dluZkG)(gP~c1p1cR>>pLa3M7M=JLg!FI;Vtzy%jAHHkeNO%YRy=7WUw` zdHu^W!YUcVRo|-am>+tqC_OxrQB)6^!q9Ht-gn_G!2LNSh%(&RmJo}T2NY6n_V7jo zh&S!UBpPyA=6>#*7dFnY5Z&&+h|kT7P#&rzP_3&+fs>7w0BR^$d#HY9T_a(l1bdub zZg4~kV7sd)z^SA)z@gy?d+4_8f5-bV5oMn(f#=N1J^}H?g{tfV2c@-Q@{DA~87s~9 zZMNT=boxsnP^GGF0gP<~dcpd?n=!PdA?efYOBTcLg9eEV z@J>tqV~9lH0F^>zN0X^t$QXlM;t-zkcp7l#ql>JN-I_{RvMhqy+BzF(hh~N*A&(~D zM8Myo!=Gccod5kJ1uI8XexOtZV8gqti@Bzw8j=V0u;&&xgspj4T@uOi6MP`J_IiBQ z#jZah-9kW6QGVg?DR&KI=Yc+rQc%Cp&QP1t)R1Zn^T9{~;|`pO8ywmsEfya4u^b&8 z$Dfku`Qz4tz)44P^BF5zH=aG8p}hMrsY^ldPy#rVb7wrNPMVTov`adO46d2uVl6*O z3woJo`J7bFRE9CcQ9nw~k(w2jvxsO`LYeRp!WCAwmr4xsKPF^DaOSc&=_-HMUuryn zoB3gU`%;!RYWdDpC%yT!_fel$7Qv-+CBHKgMX+pRTJwos2J8ST215tD^vz=wF$w5I zgYY_>APUPG8)lZkJQPk={sl0_z@!Gnm(ShZvEjP72VYhF&Ji&7Y=b6DrWmHm!Ihyf zs}x(}YfQ-$E|mjjNwXgpYhULYq6(P{6UH<;W*#OI4#OQTFu;=1=xUvK!8+5|H?13Q z4I3;$t7!E*G&vUP`TED*)k=oLbFKLT_(%;Mke+2KZY!Z8a!O(aRyvi{H-xASQ?<%w z;Xu;3E*MylgUQ5ynTG&ViHHm%KHH1(nV>0NgolFK*<53MIMDyYC0~= zsavq$;Mf>^zP7r7;&#!4VcyI$JsjflIr?&8d4^YlvtbcTcpLaJdwr z{1&>sc60HJe@X*s@{hxu#hPAEWTCI9N+b-kHJXg%cO3_=~qBEQC3B`=2U6%#ukkoEwy<_C-R` zZ+;`Zn@##c+Y@`FNVb;rmgrWN!Wnztc2d{JWUSx~l_QufF=3r)Z>}4X=Z%t#|FP^w zz%^Nx=(?g}xL!~PYB(e6|7)&rYx_IiM3?|2CQJn7?s%C02h?vv`M2#ywT`!_vyFU~ zEA(5V<9XNTIY`mE~NXe~(e#s%_iV>e; z^_+iZV*bwgSA`vOSk?sAo)0fNta~qhmY{68j(6`pc8P6;KF6}_AfB~5&z^s%p*q19 z^L5datMJleUk;1q0PWT6)%s$l?~`MA?ogR`t0p2(9C&j`362?}`NLR;5QsZ@NF&yn z*G8#_s4k}Xi_?YY_;Usn{Ji|q6z+DZ+i?NYN5IxADhP@7qy85|l~7t;rENM-VVhI( zj#osAXD(c1sOw_7D+-R*6#S(X2y@#mBZwqJLxn8Q6lt#xkLK*Wga1^pwZKRxvzZL} zohD{PwSbsBE;3!LS(Z*G0S;kvyZ!Bs#LioLV7XJLhTft$*q>%#J9wa5SlM~uUrA^V zazL_;DRbQZ3s|J78y(ug(PHE!e@Es|tfw|o2XI0cW)8>jw|b5_xU7E%d9()5x>t9a zF+9^M;rn^o`L{m52-$n}PkJ>#0#jkE0`(eDdyUuP=fy{tx7@vK2>iA<5-P+Ewgbd# zSV_svHq*YEeYYX+Z25D^24dG2fBtTQr-i1NPp9)r;#~q{7T*u%*svI3($k_KDFcsHW|=dLVt0mFkHw*A}ND&z5sEryJZw-N?M7^^)YDlL?5EdLXv z!6R1q>oUhiZ98?Y8qx+R)@mEO#K-GzRGLvFy{a2IP1nLsPG z;K|H73FRDXN-rjn0)*FtbRFrM*|-xt>B9o8ObvWmB`Mp6B9# zI_zm_5u-Ud7HjM8&$og~Espo2a5FHPKyZ&gwEk{xho9=?L)#t=8z6{$SKU$o^q8Js zUtj-Q?EN$l=@Yu*cdC7z0$~|-2xcv~`;_yiIn9rQvvG2^uVTqidPrKJEgmn_Aeq%Q6~7ro}3EZMnJ@YqMji@9%mzcee}CliRW0>rRr{=5(VmvgzLh zjp}{;Lyzy9Jrd$scd2i_@sw&H<3Mx5*LQAGvh4nPn?neH_2HEcQX0oXC0UtNh4889 zs~;eRS9-iC&#r0r3|&h8cJx)y{})}~99>8B@0*5g*w|?7G`4M{v28bOY}<`(^Q5tD zqp|JeO@H^U`_{W_y?=6Y=FFKnGkdQ+-~HJiK+oD?mJ3JQq;Y%i5P4b;_tupMQtN`O zAyG_oXr%?jq~O7fGAy3IrVyH?ct{~2LH#aok2+mR?-xHJxLG)hP%C!|copnf(IM<8 z6DL#6)G0B8y-`ZlRPf05q$5JZ%1>A078f?8uDHYzA=v)?Ek9<$>+^E|57~hv?X8BjQv`bVSJqK$6)A#-uPb_G7{pDM%VTt#;n_>XIv)U z4G|O0$-5Kf1%#5mhZDu)>wL(UizIOn^Vle}UC2?0?VoNrIV<*O#7oUJJdL-q zi-R=j8r|j5bXeseqD?KfvIjf2J%uE*aQ3{D?~K8e(<|7b$x>;ro#0hhK{?&;zN)Ua z4Rp`p>4WE>N;Ta#UtIFF6V>|xjeLg>TK-wnB(rkW%RbLxS5QWmmiQ$0@=6aqFO40IjxZnm3oaE0g__~(XW9d`HRMf;Go!`rv6B@sm zZA_f-S%Ejdt*lDK1dTvm?fNN~OG6hG2<2*okvOKJ>o%%|K8Y&v1eFSx56q`yIr_KuR8Rbwx%ICjq#{$&f2kqERQo`iOJjMgR5_A&wh1 zh7AIbu|gyzBGMmAWdwrZY1Mk!bOAOB5DqVyK%Rq*ICgl?Jek{;;uhHUesC*ijlrgI zeS4$~zD%)PfMm!Gtt*4s`;8*Z*E-e)4cg7~#r9Smbm^QQnwp079&c}P5=20N zXeVSzLn3w6EJvn?-gef|mVH^rui{$1Z)~s;TItuC9#HPsU_Y3U!N#abh-a`=MdkCo z!&!VZbsMzXoT(TXs*|;qDdC|5fCwJ>WN5&TjV%K~r|XJ~0u6R{W@c=BoaT=6(mnIy zJ7$;+@@t3jeh5{FX3+^h0RZs}BTOyk#igB3qwB&o>k&5dnfK0BW#gYJrV;tbSbSg; z{XjZrTL`}$FRll))>9gb>HF>oWl9YTJg>A1fNeS~9GtR}Qr}K|>&sNdfjx)9ZZ07O z1;ybfOaAxOrQP_+12YqoD|eoy4@z8mYI&dBzkBTu)riJ$1+`RAXBla)v5ks=0r}8p zx}>-Hts3)>$A|UD&CZ`6Yndq%IeZNWh#|uL{s4yypRMT47wO~!zhHLhF~4|@1}!`< zkGLdD;ixgE2IjlfLIsddv7~Qd<8ej-Nqv%H-LFqU0z{Po^q_lw{ki-5dk+r}LUI9a zJNlrIJH;gy!(6~gg~v^gIrl84>^!u3?G^cpG=*Cu<6adfL0sk^J+={5F*$`Pr9D-Z-X-X&PSN%EEoDE={fq z&~XfY)`l=?7krXpYBA=TSO@&&!$ka7DzcKRz3-9E93QDtMh(OTOI7%M zUNt=7Zh_AMf>&b<*f9r|zTKav&4y@CaHC{7`#sD3aSOBgKM>L+`$X&wfQh_8E$ab+ z);6o}3+si8U`COPDAd39XH}q{Wi}yZ8{Y=fSohJX`^p}4=iEE6+YxbzM*DE(z7Q~3 zgmji+(^la>m5#o`8P1GMv!1t9B%Xu5xl1IzafaJmjiVK)og%=)Z=_^sBAnUPLQ}pn zAt?0Z`dAfTTaXc2vZ;8uGc-)(!ob17RVE=7zRfD_=>J)NjnMjuS#o|O)*u2>>Pzth zLfh^`-*ga>;QCBf-7i&3G^xG_|3LI+*SvGA(S>qW zT5z_Uh~KZbeSK@xEkpxRgbMjpMh*(E&x{=m5vJ?JFs-v)%XL9@mGhqT&2pp1=9^ZF zi;Lp?#WCei;-Xh)0^}&k@-EG6dlj5jh(6zPD3X+?`?vr=`+Ze1yhZ`% zt?2P*It!V6ayrRqLZWjT+)cq`yvS6iNRvr8d^T;RhSN|&@9tk7PS-Gz?6q*t^)$n> z;l)_Bu`~jB-rxH-1sCp8g)+zwMUM_Yh*o05_arUiG3^STrt;{EN0JPIf!fYdzf7uM zFYj0JQBdJ7#LpfCi|zu>#RMJ9_Ft{@aotj=c*82WBM-o7t}Jyr!LC%X7AHmDcVxV> zJ%;Q;>fi!_0&~dngJrI|=Vr01N}q$>X;#m$)aPqDh`D(z>h|UP`aY-slbaNVuMc*A z4q*_!46f;4IkF}jDM+c|07?s#gq3D0;d;C}amCA7c0mNOv+;3RyBu`(kq$^$f zLl~Q4rBbx}iyRt{3O>pkxh@^wB^jqICf3jVD`{T1Fz%TsZ?unB8rdx?XPJ}TC^dOT z0{zDPa`0IGzKrM5h7xWjr^Dn+lx=AwR*mfwLT|h z%1$1`WIHYQw+kY_wTOJaeLBt*imKXeYc#QQ&QD9$JX0MUGCjAAC_Enae)nyDR9J+v zekR8}(|ig)xDbe@J2T48N@!o&fp>@fRObD;k3EtA6|=)BJPElyW;1uIy%xB`5-a>r zd8afzw`Mv`WN@6$_h{t2*7`A z#7LI)35`n^A9@OVkw9Fl7%CG>Owi%D2nDL^o4Sd^rG8iSVRWs~BH}Dse#0xXz`?G@ z?^}o-+GWJ;+{rU7jH#hHUkqi=O=^d(m;Gf}acZe1?+kYb?-0Z4{?Pp^>4YH^*bS#IA6AlUh8$>h2~Nrc{MGWi%o@Tp)^M%q6S}TKx1x z5%8RK5EB!_zbNBmn14!zNp>g7n}!bwLzKpsg-N;;=LQtlLp{b%=zk&!V6 zTUsYiPEvAsa(G)DGma33?-deWxdDe>~Vu3`)bQF$`&mcs|)xT!Sy%Wq})-05B^5 z*cyg3G~y11Gi@)wJ6xi#h_1X%W_|mfr4bR!@U+D)GegZ=wg2VNas2E-8GTk}D9Eml zk!*71YJQ+3@w8Rb(BuRS!{(>(+q@>TzdSJu1QCbyr;0BwlK=!B8EHJzZP$#6roWy5 z1a{4u>lw1Whm1^rHMV#JMjIwi(;|mi%(0=F!FQM4r@t~Af09TL zy57TG`l2&*E7wcr_D$ch}NKXocRIax>;C-p9&+UOMgr$b>l&ISdmyye* zy{A-clp?Qdg~BG4*!%Lz%Hw5CUvw-5KIf^;%D6+I&Cmfsr|+~t?{w7jc{$+)syPb2 zZKjq?i!SXqhrBL4Wnps1Yfq4WgxIN$ESeKT#LL~ROXTkOB>CATwP%XX9hVlJegck% z(bu!Q`YbLNL(BW4%KQy4p@5g;c^dONs|WbESG9I%BtR%%Q&R)bH6FdZD+O`8mWrwX z!=ReO=liqODNr>-YiW6B=NsnI91uy?n0o_WE?y`a=jmpNa-A}{v`67Fx$NtFS5nk8 zpx3%i%0(Z>U57^foV8qZyNpxpcK~kY&242$wpX^L3co=2N8gri$5kV*a7iXu|zgR=Z*`_uz_9JeU;e%5FXDf8>#-DWG^d5{3 zCFcTZp<8TMD?5{F`s{Nb9TjCC^dqS4rPGaSj_OI0RmAMbP zWC^uv>YCQh1;>{quy3kk2{kj?50Qw(fo`SOaIzSw*>eKuij|q&lzp&Lh7^Z5i z3e+VBO46mzuSfyxJrfp@yuQFJk>7@8l3LtN;c;e23?wl#o+J3XTF%q_D;Q-A(Zc1b&X8;B<|8-Tc+$&({9Dc{qlURlk4F0vGD3DhfHk!&3~6L)r0rC=ASfIAoalu7NB zLRMC(7d>N@pAsOPjQ>jKrI1L~^Ju>p8&`&?Xje!V>aV2v?)GTmy=0zY3vi4935Jax zi*Z!U%g&pD6T43AaMw=aZF9RvBqeVb@5Wm->Fpg+7rq6%{SLiTQNw&cCVD9(q!6ao zz_CFi-O97JVu$#lCBNxm4Yprn zdn?C68}pC%?uDPt=k0N^!K;F}$t~7a;gmsf@6<@xwevT7_5q|&A+kzli7+UZ+?8)} z?5((q0_sEbrs3xm0hBp?>bWf~8ts9EJDwp@-`+aiL$iXqJ~nW_TwJqFoQV_X7NG+S zAHPQ`L2l67_bvMty+OCe=9!#Ys!JQOKV5qyE}YIPw4v2dII+NTQ|PmSz@q6NEppO= z8y@cmijL7IrnrqRZ!P+i{GR_3F@!?riW=2h`O0rIm3Df4Ab6%eLK*S^!BjwswZbq7 zP}6_a%W1Q=_kSc{Tv+4;nHXLyunDJRE&0-SFZ=VkCpTSewik$6J95=3Ja6`+qzb7)ir>ILO|fu6?l2DzA9~sS~mmJ)iAJ6FN z5z1B2ct>Y-b9<0#9~me_Pvn=CVGt+`p_G>vznKCRN9wuerCfkuQV>s82AaBrl1KLx zRt#W}7bM-c&d#EwaQ`)32^cU@(8*3uhmAo+K>@Ia?Ck8QD1?ANQ%%`ZJj5t8AI2*j zSQI93o6WoT=IZ<+CNl6#ep(b0PrE&_WS>4V=10vG-mJ-xk&!>mXN~S@{`jHO5n3r4 zvTsWKueGq4(qzgH0o@TKxS*aMp`}*{B7S7#G3iWK{t9RmC6L0jcUMsd54x2*j~Ec4 zWQi>|d$sib$?)M8M%~z}%-)kE_BlUK1_TsbTwFDq7ItFb66?U&$x)_V9oS$K2ADJ4|8TaeRyZ3 zKMZeoM_V{MI|Jr%+l&>>HHdnxj!@_f;F8=z!p{NTzP9bxa*_BqdiZp_1Jawi%S{#+ zor#20)vc|q^4UB9(i0XDF*`qhHd81Kkkd}j&Zy8vQsiYsL?F}WU!ByB7RG6-&oYH5 zka@j7I$vm?X2DxM?xi`qia(6$ZIykb6+eY*7sTd8nA zoQaB;LGAbRr)$cD;rRIYk+EB#cL}2w14e=X)S$M_d<3#k{)k5n@yTGjqp={Q zYU;{h^IrT>e#^2Bs1Ex3MS%|CeN-al3-|pn5rRhCcFEUh;(ja8?I(@tJ@LZR~ zf`Wp~W)rkdwLmOqT^%eU;`t_szYOAE!xMgulSoWYPmhmR($*f+|Bi=`Pe(@w8Y$rh zS5#(zjL~DNEbdI|x>y*MwD{Sc0&i4r?$XN0#g#sJ03@2XcaWgDlsx!;ys=Yj0Lr1h zm;e!CNqPAYHV+>kzBmaMR@NZbu|<3raUx3-k&EQ0G3UW*j(Oj6P{?9r9b0+l0C3Uq z5(Uxt+{tbL)h@6tJ2TVT$S6SS&g_CUk66I#Lg0pskMDgViyL6LGU#^vlGV*%v(aZ> zEK{W^I0?P*cO9>+dgl!i==Pl8yxe+P)qMNcFVatwbf=x&+y-~AR#f+p|1n8%Ac2TL zj0iFuG@M`iyo>;1Gc8a&OGCG!`49^Q{wZdVhLUnZ@gIZS7TYP?&(1 z4sBFx%KLR%>vm?!$27?6#r?rbC*S}PpR2)EXBi@4`1a<8nU(de0dfegZpX<1qe<*^ zq>ji3GlzolyLrXSUNesZhVkD$$wX&f2q(5LswlvHul}V}8VJpzqW$=#uo=*{7JBgG zVi)Ijz(J0DkLWiv|Al~x=9vd=9xd=9{3BeO9$+8VH~}>^!XBPj?ir;$2cDCY6A1~4 zd6pIX@MHAhTq!D!ih#}Q!tYozxg^+&&O#l~ zKbg)}WXVult5OZiL}N~+v$0wHmP;XJre|UkwplF8CoA>~mmKiL%#aQKp^!q5I2i%R zY|^H%($LJ9?2VBUaDdWjja!_7BF-;<#rZbYm46^QTfr^Y<$dc~UN>sNWoFe?q!L4jQEy`0;kIk5_Z-rKY*=hf((=k>11r)9uu(rB zt3E@UZ0mD-{H{lLPX4Rg`bZrzF{O?M3EGm@SX1nkeg$2~cSQ1eye;dv8;gxk#5H4x zUr5JtbKr&(io%e_7BL(d5n^J0jZ06ZP>i*hu(c^_3fWI)`o=;m15k`9_~9Zv$w=6a zr+;=OP+$JduVEK84l%74=eBZ$flbiMLJW_XQ2u&{0F7`lHGd1Urq$|Gm^FVj&|hxq znr_GEt=?UT{4pL9f??D%>0)@yrhwSj3g+BN+A?4LP5p^9uF?KnL*a@V4Dp42 zGh3-$Wj6g$w}aU+U?Lx(Fy=tQNn(I0g9}bN%*viPpl`O zAqxWP=kM?n2I;vsZc^St)Zy(m^QMb~lT3=ZgX4=qF3Gm#5Btq-X-3q>UPyiD{+E7_Oc@_aj( zDr`4#IQJIcds`1mxT=WQ3=jdk#unj?1Mf4Yjdz^irJb+NA23pcut5tWqPP@1&h1Qi zuHSsP*`3(bEtCwvcxfZ<=)_;7_^X@!8vwYVUDAejMi3f2($M2$r)6i6PjosQ#fY`1tJDUArnj zYmebt>4`wNZHcgM?`V)Mq4apU^C#lcYNDfIkH5bqE^CiikWmztOu#;} zdLj!Zif~2_6L%_l$(IqdDiA^8d(NW=iNk$|4d^U)k#sMBNZtNPA&3b>nva3BD{LJDk zV@Fg}RE2teW@ZK`TCH5g#l(ct#BCVC6+s&5$GQNcYX7-j7cRy&W7W+#M~x6a@Nm33 zwF>oP>AP(mg7D?v;PISVh2r+q_!$OM3$Md7?e+R%PGS3}QzbBrh8c!7PlRKSt^lX& zaQX$2y>j1}mLQBht<+VO8teY*Jkpv@xAS!pdnMH41chDxT>p%$RqmyzxJH|?w4XTg z7Qn2*Eku+J))WQD5G>%}6APV@RPg zBHb!Kqo0HEVgX;9e?Wb2tyZR{$fTu>EP9TvJ+a;KTf=wt8Uhv zsCNhK1Da2qPm{qz!hGKP#NXKI9{3639lO{M{^=o=3HDZbFSUHZgBzE9d7CG{w`=87 zJXhVSG#i6&Ec>KaOrluHT*KM}d6vKfm~Yt)`~!U#LA<>$sfTFZ4UO)Sa^SW4ZO1En&HTxBsIu zU$lq1Md-S7FsKdk+IimNbTF()_CSrwYfsl5N#c9z>HQ@-nv#-10j$4UG~7N@8MSKDO865?dZZS0Z4FBucEfKC3s#lIXU$&q77@~EhAf_0wmJF}m==I&~h!Clf0L%&21<2GkpcdNds;j^CEKU>!&i@vahBqhR^oGM% z!zVujvF58^bg_Al76vB1_AB$0WoW3AUHAQ!Uczh8RamT@(mw4JJVk`N*;iTa#WL65 zDx$+-DPzQcZ^||-hIey%%?hBJddo@6Vli3_EXo=aG|%j+{}B{o7ViI2TGKMdCT|Ho z&p|KK!K?>7(rjR(b9FoyJsGe1F%LMZUSesG#fF zJl0wy7hcwlUWVgtc6d)Jq&8pg+^43MywlaxFk5H4t_;-seB(%6#vy8^-Qlb96gc-7 zf^KNPrM1K|Iq3jbT_5(CR{HOm0Mb;X0C-!QA>QW?n64u-8W-sdiXrPSl0L7TNqmb| z`n{Z8Y>dA{sJ!9_iwlqK^zGr0XsKSa`M0NfJr%)61_MDeF6{BItT0To)lW4K58W6| zx+L%Ls*?%5^c$hSabaFE0_e(vk>;>7sK9;+`|n7R93d{3L^t&{a-eH^m180l@Yg^i zEablE`@A~ zk~itPZ0rFiM^M)@2xAl=L^$Yme$|3A47s2;e7VBSM$o=g3_7l1yWT^=Bu+J5T-^A$ z<9ASG&dp@F!0kOtqmKu_3@Xs!ZW%YNr;$u-S}vOxbvE~K z?V)Y*n1pu{AB?n~d)^Z`zqcU|M_7)X-U>vSD&5H8CKWyV3Pmb#>boi_De-Z>xr`y7 z3Up7ZSL@EJKeEQ=<>sE;_l6+ha>1s$*&IBcG*3hJ94}|zt389xK1)iCzj;o7HO-<} zC>+$^><3>|N?;+O0rTO?s6~g8N8Pe(oz}o?Q!C4{bZ$Uye{}uCV?MLl@b@4yCzRKm za8JeI=YHlb@1>Hs`1oJ)N)_g3F7rT65*=KqVj|m}v6J*qo`zNwIte_dW~?)cNI-8k zA~}m{OBVa%8Ig2TP=ubdjA5)7m?JAwYjI^^p#f8vAx$CM<aU;+bu0#ErjIVXoG|Lb?c>mtSf5~R1+#CdEjic{i z+1)TM4DI|HK`|g!A9Uf1l`b#TKh7|t2Muw#>YG|+v=p5MnmX8&jT@!_H2YyBD^_r+ z1Ev9i+|xaqv?GZe_ZCURluO|7CaNNk<`W-7P|~^-!CBmBZ!B|m-od6=9Xvg!#os}o zl>O%EHN!u~0{H_3!N{$qL6tw8Aev6vI=;HwtiA<8x%favqVF>3(u>%L>7Q)&Ehs6s zQsNaeyv#GDEisG(d29X8p%$MNCY4yxFfpwT{>iU|+Cjlu#3UrS$eUFY ze}b)i|C`Mbe&mcf3afn6PxWJ}<9q>4dA&l!I{f{SZAEc8@5L+YJKi0T(Mn#rtYHVnGLOg>swetqKXZK}vE=RwLjT0!6w@Y}OiF`1T&FOi{p3}J$boMasWQoi$ z?p#lPv8YUR%wEfYKMbt{B*YeJYzJ0UF=5X?G`b6-I>YpAR%#^Iw7bqy`+f zSGmF5L6Z#G13hwomBz@IJUaVTU}({{+T3f~eWc+ouk)oEd!)5Z))6%>;JfBMz$$MV z8X6)a;R#~INl^f}hnAKWnD8I-g-1UQPpc(K?Xuq?p5}K`c6GageNX1<(xk$GLx-*S zWYFO&lfmlK69kIPMTw52+#H_IZ6|vsp=Ob+fdfH$J74hr{b54S|qoY6j=MiI6 z2u3M>4fBU$vCK0JLtuS3l8(e-wTxs8BfnCetzg8UMLvZ>%U@C;rTz_0O{u!YQPq8S zJ#oIS_?Hrc_V1I=HDkMH{cP&`CeP&9#BYj%ES;@~yHXMeJmnZ|9c3}9`y#IM$PU1ytOOmJJ@O=yq6&J#mrG7K83aM8kHT&h_G1toA*4hm3m8YwPx> z)uKrq`ZSt(W=_@2#%0KQEr*S}T8vm#R2#jbwEBMdXlrXbJKq8|(`EV4;-cGDx1Ua% z^B;1!LoTqn($mEQ4I_6ytx>(~bf@yAg$3>NJgvz(GdoAe>lps`rD{EXyj1{($j{5O zSAQw}o^5+i!7g(&H}iAKUk9~l^5N#Dx2?;1xlS|!1DF@ypDsHAK(?x_`3moD#DwtI zHs?J9>Z2g)Cd+UaF7ANu?c$BBY41sLX#p6waKe;Sj8vy7kEmjHS%E!3=tLta zQofwd8Ko6kv^cM)<198(QTA~bz<9(DWHbaWu`CYGW8>asz3AcY+A`2SzNWxwEJkFo zZq_r_m>5~7+)}GKu6?A_*1ot&xjk3v;A0NtUka~hfF6{waK7%d>fBA5T{zmlv3SVf zsdaq=KUyX$FQ%hX8uaFy63+U$r-XQYJd+s}xaX}Kg_8?c3uBlG4VCOWJ!QRA3_Ecbe_5(HwXMw;Zr!>2s`VBH<1Eb!+?EaNMD*byGgKl*DY+1tdOmY=- z9`g0%BuYNpo-VCV^-;pq(k0Tu(g#;v7T0<6C*%?nW2B-e-Z+Jt-ZG;_a_7IKHtBqp zck_3I3_fwxYF!4tj-9#;08;(cJBOeO!Mw6&3W zFSw##DpJv2eqg;C-HDxW!9MHn?+3zGcwLU?YK;ajl_iU3Vc@Z9eBPe7wzkwNHGg!7 zb|0MT;-ygQu$F44@Lj^^N`{Iw}% z&_rxMF#2)M4({i?)oFCTa{4!C2twQsnRA_kX0h@C=)HjmU;Q+w`2hw%C6qapi~4-Z zxOq1!@S0!p90F6RQ?Bv)ic@D`c_zPk#{9lAvdf!{a8U!F6Ii9q>9Sl`iP}lxkH9>d zlJ0=0<=dM2ym7j%gNagn@oxV*b-5o(dm%UHD4mS zi>Gz(6qs?;^~b%xs47zta1BmJV|9Q8+Qzj|-@%Ha)^Dne1P_){2S2BRZ!j|~j_q^Q z;r=WyNHvQdLVVIfLLw#O&1Uq3hX-%iZz37;_Y&)8pkf z0Q9rlZFFqMw>TZh>FVl!yuabL(E_nRn_f5LJwb3Ms2onpH3yOAfA4k^8Ya*3F`4`q ziEhuldv``$A9e?0{(T#05nyF+S1N*@p1y^*y{&D5Pj;U8<>4ZS(`g@|=Q@1o4}I-f z^}gEa-{|x-D(8*sJ7q@eC+Kt_<>XiQyEG!?X?TFKc|2sz^K!HwyyLb#!$h+9LeQgb z+^Bqmtb}?4dh~+ZCrj#Wt|i)Z=KJ`G6W&jHER3*R!u>tMZnUiQ!HjCaOe*yI(C&gy zs~92E&u|b#Wz(Q<;d~|!;z5@`(`l0Ej_|En+Ji?jLv81`%2nY)ZhL~oc&ki#Q z7pM38_A6Bu$>P_PcPz~xi&w(wVuovGpW-6ew+7WnQMP?^@)K-cVH4f&mQXH~@B)5i zK1MRAVXGOfLiw-|U5=-b57;s}iXBRrGgd3C9MSI<%US&i!ug4)Q58Tw;YkY0a&P7s z+sswt&dH^d=t^Iu<^fy-&$842*6zPz%q}Wx zQqu~ozcz-UQUJIrpWXwUxp|w*$vxga&L#QI%tiZGmcLlf22bF2J-8Ql;w5f-o3&AV zzaWtbEe=G)#dEk^j)9y4Ua6Au}@#*pE z;rhDAE(}PO_6FSkFJV576lTr7mD8=~@@2z?e5?P!Q<{9X<#ciq;g#irL5Tnvl5{UU zu-p3D)-L+)4n!S~mVtpyfn7qpH-q78CA6Br)oObVVG_2@9d`EeUQm%fQprh3bTj$x z^nLLPe>rJk=QkdT1)cyvM_N3ePUH7|2kO(oDBNZs-0S`=%83vf=Up ztef{m&2SBV{4gyle+g@Ap*VIDyJPudJ(`Xm$%S*QYQIF2TuMeYJ*s_2HjV?v zNKxj1lC<7qoOdzil9UPqZ5EDl(RH4vtJ%WJ5v7jDk73HXr*iI-yZ7NF!`$#)B7M~^ z;^c3A^^JRTji&Bz!r^R!4|A}waHBES|96*M^nl9v)Zu2orkfrJ7w-) zuVj+JFR!zfyG@bPy>!qquE&&lI^G}T$YEmZJV*b@89!R=a}+!#L;>4)C6`q#tbDS} zsJYG`JFfqm5qt2op%~ZZFudR4A9xXiY*tSG1Y*NaT7T|dd6=73e~XcxL<%l#AUd10 zY~-U-IY>TQw#La3WSlZ5XliiO;?%OJsWteCx*34oM~1`6<}mCj5_C*qU9dfqfy~DB zF26VvfZIKv)m}V8sp|8Lv~KK5!}L6Cm-X)BDGCXfi5f2Y*!Pt~Ew6QNmsn0-_b@>kJsZ1u1!`Tfp z89%P*Trzi|+i1y>#Vx|w8CPvkit}e8Wt4EDh2O%&T?tjQEn7YT`bA6y_wqXC_R$4}AWSo@jnA~{PsI@V$^iv^6j{SRwHS~P5xD3)+?=oRN zM{0S-g`DS}uSMG*{n^%lx1_`!M~C5-_?&5z9ULU<^Gkoe>!|f~cX@)f-X4nBJESjj zDFp=uqbUqA*v!ynJM-)o0e(j^a_spE&Qx0YGn!tP;vkH}r{J_l{Ada?42i$cgULE8 zEgf=;?8UR{M;3pX(hs+zsT3VnuLKuE=k@CX8u)Q%#*`{fc#z(4^gMbvuX2cmG4%w^ zn%<8&g%&-ZR|47RFQVh#6G*rfPO-2k&C6$Xy40Ryz@Z*BVKlyBM@^J=Ak!v~Fy))# zvPj?y9(yPwm50%{d0&l0=GEyjbLzE~H6yplVdI#8_*H(R&?7^Sov?w~5aQ=mCH)3D zsa5lKq)_K#>O3H3_1i6_m0wW3#&BezAX4fJKOPeZ>ecTD}RmJ#BCm(|u_vo=Mo(>paD z{Y$M%5sJS;$r5(FCXA3E`MFZUz~0rM*=g4uC0y)c!+&-pYPP@7aJe9nbhzuLCoJVl zmd!@Ik$OpYS?Nv<=(P7_O6q$vgv07Mg{DY;>?jnjoF1}xLD><#S{9VZs|tO60(ZOc zEVV}%Lz9!yORVr|Wd;hBtE*A`a>3S^dwYE(4N}J2)ykNmHlEbu3tQ(}r5Mr{tLRXX zij_0&;Zen&-~z9A3*YCXv9LpDk4y>mRkKoIob`wRw6ewfR!-HzvJM@DD%*>qBGoGd z7EL;_{|wW>eUX%Uf4Uh#-TdNhgQFN_{5pJ5u8-!H(}< zdVkzFH89hB5e=d}8ynw?n3b!^ zg_0c(2l{pKGrwGb!&p&A;cukOW=5;P+Q@`kPyg}HVW!Ev;mQi~X`UvLuY6B<3Lmyq zx4J;Cau08G$fnCOl`rAwcP}zl4vT|`3VKAC)ChvcnHjpX8&bD_yhur>VB@q$L)jkv z`~}QTG=V((esIy~E6#GU%`O$_bYLubz{MnG8aQ@t+l ziYAG2zfOwvD0|D(^$Oy)_ze2ZK*M!@?*bI2ULnxd) zYPcOcMq!db);y~4_UCHw4p&?w|SPh_gG zve%g#7;mq5;eB%v(jr%)?poDpInVo>V=c?a=^Z0Hpb<~Lfu(i*feVdV0sx((ryWPGfrErZ6UKvvE^A<<+OL0&9AO+bD<)FM>)FmnIWc zd~IVaqPKEIl9J?ZP;0ozSoSL z;)-5w%}=Ri9?p($>EkJNTZ*rCMDi;ytH+&-k-OSEk06j9;gf=DWl%>rxvVicbKz}R zwR}FKO@!-MmSsA+uk#;I8%opUcP(f-q>6j9Uw=rtv{0p4*hdtwzcrMd#oWROxp#eP zGB7JdCVt~T8YwHCdiAuI?;p7lDf1>S*ik4}VKU1Jf64#T(Q!B<62zBr>hCqRNFN)c zn${y095^@vsg!I3dCDL;`Aa*mE8R}_K`i%;0>JMipAf=l39kkf&u4-O;zk%o zzAE{lMdQQ=Tan`kVw+-mwa$&k3}Q^1QTDYlin*2bQI9kvh*BDFFo8miINeVP_}!*m zlY-o+1xJ;qk((P>ENwi-=DBl{QVnZLWlH6~6{1Il=%UiHl;gs;lRUacZs`+ZL(wMb z`b3BLY{V``e-{YpQO)RjdtNkm5hJA%b#4_j=Zy>)joy&%G`F#>)29ExC6#zLJB&LEqs~`4wB>JWyLljOcmu z*{^fBXfeqW!I^75{3+3{n<(YvYto3m@`>|tS(0W@cF*1nbr4HQl1C*0c4+F!$rp7R zm%tik^V2q6`~mBF4QE$xT_&;>6$Bj79qP}Z_xM}%Jl`^$WqD?O&cLQpD_mg%&_KOr5rmiUPoi8@=lHANM_#&F z$Yu3^^wg*uU*A$4#kb?uY4VtMcZ3}lCOP4@uDUL>qwgeNkaS!qKlF52J_=n z^eNOxQ4Oy+!|Kh@La-cst{$&)JTYb0BX1inwORm=Iwsfm#WS|~7)S{{-e#YGAVBzi z1tyCFL}w+#1dpC?hOB?^e{3ACEaqBe<+fyEf5S7k2Ll5W2pC0C`2_p}L}^0&djXq4 z1QQ@5MUhlgM4kh-5CK;&At5W<>3W9q-|zqJ_1}9-aQ}M)W=B%Pu0TRTOzhup$ZC!P z(5R#enMg?Tb4MKyCh)nr+k**m2223QUtL?T9tzBmC5Z~y95@v$d&(GA(#cszaJax`tR@m z+6Y#F|DUbEhwjSmuaEy!NCE<2Do|ix444|`7+|_c0H*W|V2r;BfF1wqNdLaHA)(I! zobvxYD6suka4;aZA_MjXZfF#Yy!_M$JZt?T*_(U7^6X*S>)1 zVN3LWGUvG$`cuu5I!fDzFc_Hvqh?&@4sIkIdN3BSOC9bhiJ{fK)n#s>+v~rt8_^8> zQEl=BH1AjEOCC3%#$%&!@xf%}YDpZKW#wS!TitllpPXMz@X|Q%2O;~VM}OY`Nz12@ zUBN+4qn(>aR#En%v3yCaO(^pInGdf?_pg%((0xy(i%r=gOF#Wl4*FnKx8W&z`PNs; zYAaVR9XE*4V9cs=#i30YSb@zz^-cEt0(o#0i-GO{o?J**OHP}EYjUux%HMqwfNEb! zK7S*J01nFn?_2`@8<|)xYR!d+i*vAT-cxum=2*BT6y1&Zp8s@Va`!lz)y(lMqxqP9 zFTo(YfL}w)`L26I_&_-^8b2iJys#x+0GDNm?S4|Nzq*-!Zy-h9V-%JYek+u^>!rOS4N@*SL+>@m+4v( zzh@w~-=h>-EihgNOuum*R^h+h9Et{B$9%k|xW1M=;E(>F0J;uE@gpQm_~fWPe_#4H z8##9BJ#@nG?skN;y{;0O!B#kj4BUI5`^`-o;)?jr0VBT{);ekD?>iI4)~z~)OdjX& zKn!XqQ3*6s0BArA0MIDN`J+2F9E8xq%$Y^MD~8TY&v~>0H2MI6;>-y?p87nEyCw53Tt7Ea!I1NA|Zoxe`_*> z1fQp5owZbIQ|T%qS$yV60gJL#CD2 zC(g{gd85gLZ|^@99sqy_0HhsgWYVs=JdcpNn;P<}{MG_O&(32ZBy`Jb>2;$dr*6fU z7bcZz<5%N@NvE@np)b$tg-_>T1vSV|VrANpV$^Mm_f|<>o-mNSQJ?fH{&L9BS-rWkX?YGa2-mbZx0NV6O=NtSDPxAmdnTDOW=;s_>Np|5UKmASIN0CaMuW9kqr<2oJ`z%QCOc6l}oiTu$8If zlKUIc`B;@qo`{dm!if^8gR}!c0|R62K%;_+WLb&WzLXvQ`I{w6maN#g{}jG@=}sa3 zNrKR)BYcgXWcPQl9j?@9v#%eUAj zIc`4g9~`)uQJ)f3#cS*2UgQD4xeG#526P}#1kJtizieou003j{0Pu_`O7anMDa(71 zO|2Q+D2t)Xj-L)YZ|FBjK}>-CWyjd|F+Cj5IhtrE}Ek$ML0Z;eJpCVlUc zJp-XFL%SmMsCDn&N;aE^kdLy7fQ~aJLg@Xb75Qe^T1?7@Q%kAYI1;ar%7v$KIQY!s z2d`vRcsH$hH#m5=CN9^jL{)HcG|$N+x<}^ehwzmx0D!au!1JI-e0OXdHW|5j^DyI; zyyF{wm)Y=Z2+w4Bp!E6sv*ylrC#H90UWu;ya|2D{b`1Jy77G1-wc-}?+cKO;y5+cU zzpWgi2xkn|D8W`x(n%uh+fDDzII%CevnD#t5zLR z72#1?lct(dJU{t9V)J1dI{>_WfI}W=Wbgz2w*YPVpv5=)?qp@%KK{LH$edMDZcPH^ zIP6nmq`CjXh;x_EM||x$^5#h$DatL_iKgX z9`LHC?qF40sp;)6#%~+bbIJhkRm9bhC1*BGB6Q^F5#kUqb-KBws3IMMFSZEe#q-Yi5QWcfOv*y&=e-$Qf z-J9NH>KGqVt7K8Ltw$uCm7WjeH+23=_W9e5>3zoV?fbPCqfA_?r?L2a&I^>9h(twW z+0`!+nXE*E=yv>PsDj*0J=`L~)fcAL(|upGBgpBy4~x^L+Cf7F0I=Etpx#ZJV`Ebf zCDY`D&kjSsT-df@l=Gv*LuPD5VTXD&u&&E4?OC_;_vLZuyFYu^Sqv*1n-?xM5s6j3 z4$_3_Sp7AiyCH00000AngDE0002IsenTs0N!x)53*F!ic?)irb_;@;#R6| z=2v|Grk5)#p8@~?(hdM`8EUyEHB+8j-1bFT}-b{A~T(bsfKPNHa8 zocK_o$-8DKEM0n8{K<9I%gB!AzzOl%SV_9MxcMp4wXwqTv;Y7AX$OF}3*EU>qLr7+ z9#zp^<*E~+&rg*Wzp@mK#&bDG_>t8T8$>&9f z6_g1fc3$Qw?XKNzM{&^KF(v6>x&r`6I{>^H=${lS6Eo#^@>N+v_2Uw=KHSDY?`a{N;E?9L{zALB2;I~O-gBxg_cdRFnRmwNQg^M3RU@Xy;7q3_klb~SV<3+ zng=pj^AlKKDA|jS#*9!|3S2GpaazhoX`n*cT;VkaVteg?IZZ=qe&&Nt0 z)gi$85{b67B8)*M(F&F3M1`{NauDt`1Xo!_hB5SgE>8FBD+*{#0Pyw#-?amc1+^+7 zN_@P^qOg=tM>_S=$iF)xOEz7R(cSpl`!Zuslth~KZ}0h%y`;SUF-~AzQ{=LzBiYuM z%TTI*jFIJ43e?8eZh0GqB408kwu&8|;l}?WM`kfa|yEc9-K~0XjK3JRyzQ^KBSqYSl4+T{NF~}PO>B1*Ij%Co!R=U z7YRx3>1(rXsC57bX>();imAN=1xx$#0?5T(0(`Ak_O<>ZkX!QtHx?rKTWCO3icxgA zj-1&Y2#riiQAm;Q$~8jQ1O4o_1Y3EMO8k2_cAY8ucH)N-+18)WHg!+(9;vYU`Z`dm zXNY3Y@e%XxrvMV;Vnlxyv+$EdI+$KoQlt(xO7`m8b-aR&g9 zb^v&-$RvamHF06tu$fIrtJlev$yKUOhzKd9NmS<^YM4wyCPfN^vkSYO8^@Edcy0|cETtUTRBxcXHp3YhxWZlz;>w}PvhMy=3jZjaDy92|@f#HUbio0W!Od&o=?i2Osun2_vN%j&pdpQ1FGq-5bDeNnaDC$?2hvnyxSA*} z8q$$fx%=YCsX^N5GzVx;007bs0I!`VIm9Prwl1syE@BE;J=<`c$m?ZfJD)Y&{@rRC zX#9Z8U`gPfa?V?hL|sMx&1moDVY8bW*ph+e-_@1d*PT&kifUbT?>Ei6DMg=A(<5pq zQ6g(+dgbhBC8`UV+U8!|mRz$BpT-XLkS08qZBpU*nS`8dxTCs(V`X>hUyJs zbp}FBph*D$NIL+$UUa0;8sz$7CY3HxUAk-N(T3~FWDj+etSi#4KU$RH$+Xq!6Y@}4 zh^=vg7>hKHx1JT}JD`Uu=JY;Xqf&B974wg29I-{N*1LAFncb#_NGd03$yO*S@BK< zDv{An^{H5zzGVll_2aV3MTp_WZBfx}ptU|_5r zXe2OrL}M09G&gcpu@6-TZ_B1fm&y^vH^4T`4r`?TpLAu^Lv^;I+#62w@4;<~kW8f7 zm#(^0sI5FFO)SygmuPX|TOu63mPpElVI4OHC-vL-fHOmAmHD=H$2U-E68#vMpyA;ewzH zZ^NqW66n;NW-Te(ZQ`gYku2gHF)2UX>r@FHSxm<^+R0f+`=SE~TM^Y&t`Qiz&DwR3u{N&=#Z)+(Y zf;|cARaCN>?9TEnN1{FlMlGh%GcK0C-yghdj_oI;jlOSUr5U_yNz5U!;>F zq_-)bzlM!tn!xf`+7vFgzE45TkyLu3cyw!|k}8znoYZ+BT>@eBqh3|^FMWm-iPdQy z74MHJ_8jWi$GD5Utn8~8g`CIP*v&##s_42zvGYdRm3&+k)FpkasyW{2BZI7>PL$0$ zCi^SI^y$3hfe7omXD3_GbpUv)p{-c40%`$x`=K^>rwinInNt5mg?QHVfVS3)dT?HY zQ<=r|ccdswbt08srbA8bnIHDD{jlkCk6Tl{J?TZchSsgw&c^rlmNRPd`lrX%z=FE12vor#YC literal 0 HcmV?d00001 diff --git a/ros/src/vendor/grid_map/grid_map_core/doc/grid_map_layers.pdf b/ros/src/vendor/grid_map/grid_map_core/doc/grid_map_layers.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bfc4830b6a0b2429dccc18981ce9317c2beff4d1 GIT binary patch literal 64245 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
x&QtrVPa`Nmr(l0Pj0-wR%bch{9{NV_>O^OgG zl`M0WRRMUE+4mN8DS0vy6D?++JY#oRCo5PLMw>q6?UEo5wflE?dO4WVof}ZoDLLuD z>fN*RSKCQ`?v-k2R4C@ugdr1ys}+IKNDza#|5(-NI?|4P%q?>Zi^=TNv3S6Uo%^`s!_i82PM_a>te&hXRFtc@ZsSU3cxVh5)e>K8VOE>bAMI7a12V{LgsS%GQsTK-I2}Jlafzd@_w?TCE z+J*1T}<*S#FLU<38Z9!d8UzRawUt<&}lS<0E3SPQGT$^OBHR8n0AiWVk!c@ba~2%9wB`AElMMT(>q36tode zxk^|8-TNY2UM5*$blss(5UMrxEygJ|fwgSF=ddF2`#a3IM!YiQ$qp^b*i}!D6|Dx4 z8dw-?Xe(t0iG*XX~g+Zl~J ze`B5Gfjy&n*_&@1xSr-2;+(XKbXhb0UdP*OgoVg`qV$B=0%$V?Yhd0FIl`vAp!KFj zOl{&MlU{hd*rnE@1VO{H$@^LxVABGE6^3Lbfn_3K6{7H3K_YHRBEDeu>p`+ck6dto_#3<`F~W0scLM6ejleN6RRnCma;w zZa*;%b6S5UiF2%aBy-a)Tw}S>HgaUijB}v#Mz_OM4P+mgNR83xMSRUD+u&{dGCwNp z+j0DAim55asLDW&U8NsTxFNDYGF-vKNQhB5SBDCY)kZY(}E zym(XU=_iz}e=&D&VrUj!PcAxxy*tBD`xVWfzda>PID7esd~2Iphl~*UcvXLrlhA2aLnAO?y*;myajI8wP2T`Q_5f9B>^Q)QqwQ zqWnclW`ggp;Ghz-TiFcVy3{huCT3*jOFi|_VCojpyf$!({+x@D-c6ts_6<9{5EzoC<+|Ct7A|cE<>3Sybo~v9S1da#@xH$s_0?f6S6V8$jKl z#ippL_f>JLORFbBNYvR_%lc@Wk&mMI;J$w7O}&I-5as|%ZNBHs)m>enj0f)OX0fT% zUOAh>{c-)O-`8kNKs#t)%!~0ZGs|GZsx31&XBifFU9~26 zJ>>-^nGIX?D=Wo(d7WSNRAinE=+1+8Ws3EUYJx5sMGs=9+@cIBru1yl7QbT6L(he$ zV*jYWk3fk>W~F12Js;pN+Sez=HZVqs-r~ALo(c@!6h7HqYR4b0|D;vvc_HE?v-8@p zQ*mo5!!~(;&nwe>R-1HU8?a^g%!0eupG0u=jFx5@DO;uY>tG#OXtt8IO;W9YLmPasuq4qy$3bWji(0g@jW)NaO);_?(G@ zH7c{LY81a)Ncj8cXSvdpouxQib3i2U3BNAvOxVNW#1JdB(P79lLEf&dbq&K~j8njW zX&CSy#NHL7Q~E*!@m~EIjfAEcauP*eT%)f8+}1oO@IVMnC)db^WmAFehhtYx33Luc zLylP>JRPF~&#O(q=p#NE?k2m+|BBYzV0D~Ard^n;+P2k^T3!*7u8OlHF~q9F z^Ipj8hylFq(RzrpHV+~I3>31d@{2@?OCuD(!7-(nt~`*K=0i}dTd~&0drU^7;$V!3 zo+XPBus1U?GVj!1ATSFxJ@_Xq*_j(dCR$iTBsjYtj^x zWm|?JG$rFfz{cq^q!yMd{2{vCL>aOlxcC0W(sGbn3ni&wTZn#cuTg_{NXrscC2f|$ zQAx&RpN!!1YRV?a=X#r@C)Pn`$slmY_{GV3=^}g8>1NZJYmgX9fh<~9F9+LUJBqb@ z$kYV5_U22}Rz9JE@#9iBiT4G;_bGh%P-w=B!DcmX0jdwzy5kTN+E7fk6{+ZvgNXM0 zy_$)%wEJl-NAbE78WDs-^;fEn}XhRZK%YoDe_iHD%_M$*#CS|zl8JfI!ZeFFbEz{a?qpP8gi|BFBf{_9+L@cZ~Q*eZ#q2R7!+7jmZ z;B6I`z!o5q_*>dqx=Cn{PbKXi6I!FRl~NcLn2h?aoIP2)hL?j9>9Ns&MN8q-(UKw6 ziinY*XS8^_a@e81u`Qf1sso?ItFa6o(6Fr4<^%CxUZ8bgpmk9560D5c&0=hk@ox&| zjzHSa?n^E*nVpKOla9dEpOj{rPwvpZl)TipR3d_P@%tj>R_z|7P5=`AAu>r!qy$ zd?TVDm@wOwHNEMFGg`8)%jBIhp^O}UpPupv=t< z9BV$Kg#*?#f#w`A$aZKA!W%w(p`(F__g+yV8Ka8V78-&ah6Uwtmhlz~!V^bskfzfU zlroCpGH*-RIMved-BrCrrXBOU_ip^`IpJ5)!Vd6}mu*qcJ1{{?imYPzj!H3I{lU33 z5i3T)+@MGg#{lz6WKlj-Y!ZwFjbK@aH#2y3xWDp+y{7M5MeNn*CiYDFnJIuR+iueF zWP2TOzo944QI-8E+n0;04x8s5L(q_piHP{~;R+0*qYcJ_b*K&N{LW0CxufdfBFm^n z*dyEf7^^%6aFeDWi81L(i`Z@~lRMz=vw*>^W45@Y3iDoo{^<4pq zxCb$DTZj*@AAarX#rZ5PbtIoTtxZ3>Y)_bNI~FD*pJX#_*L#^+7%097O#SPUoaKym zW(Tw3m#vRT$(tVmL_rZ4+FN{i^F(Jt%Vr-Rhs&8!QeL`^0=cajYiYSWA<>uYh-n}thE=6KNSDKvE83-L=PG! zh@7pTrQxnkTraHqP9}sPdT^iYZAf-GjF^%rUrSKAhe{{$^(-0%nM|E%#e*IgSReOJ z6{z;6@WWMa4=7Ax*NoYha#=-q8;o=uv%KDLf_U4}8J|0fz70sd&l+!we=cs;S_W!$ zg71bPt)ZK~LLxzsDT4Cs7N$}{=i(WDa@aFZnaeN8&>~}~AftxDY8c=V3^pyl&;l8x zneG=63enTsQ+fWFt{OO3;mZCM!L4Bh8=qN6+6 z%b6l38o6qZN21o1I58P^lsGJtsU!uY9zBmi%tn$J15~mt3qRZ z>LT5&1Sw*Jt?WS^vHMZ#Ej6ix4Z%yPoyGzAr%3WE@nEJDUjfQgf~5T(IKAPKHJCIs3tZ7g>)VC(4XIiLcyr0 zN1;Z>g8j46J}Nx6NRVJFK#{3W2Mg=0o`kUBKT47Mh!T+57Z9gr%b;TReAdCWak zYO=5lRO)Z3>FNq0?!oF4>=uU6=V`0S@xRiQ`@`!^sZ+KCvanMOx zG8`Cl4TJzb2do031hfH7vEi8e6X^Mc?}?FP-6>D!KMMDFD?kn zv~rxkRC(+7UMjE2f86ogLFA{=X2=?s*R?Dgrv4PCH;6oZGqOmTXK?w7NAQJ+kfm@z zb^zl1B3gHB%FSDH>eGX&ZzR5gErwW5^H^!|3>7Ba;zH>y!jB!@m;s2&)>S`nLAmXu zqWUpg1uMK%z|M%e-ZP(@*C;-wKMi!5UtHw%4r-p=D4h~8j<#<=Rofu zchdO+_i7Ky=pexxod*Wc4@ieLm^b?;P@@3w+zqk?6y3_>JBI~=cd|@^0hPxvueAcC zc4G#T=l=MzSXX%s{H<|s7P`_#R3@za*HR&6k)>(PW0D`F&n8>c>5_!*h77d71}+CL|?V!I|sBkaU;@C6eAneI<%XRLCfB%a*Qsa zP0!bu4z}Wh-Q#gvIjHjjE3F8kX)23=av$+1C_Z1s{c2 z3ggd);99Gf;aYD&!m<+~W>S*}Ao{Jfna+Hkl%nFL8v_h#O6Tpt9ISI`wYkeYFUorK zuZk>km$*3zVHKii!I7!5veIMIxW!6vDrZrAK01xyGFg%CS1;*y9P8Kws$GGQqog9+ zP{iv-uI5$I2ExLeCU&M`*T*^4SVWQ+ww10`D_vVz#~#d=3d_vJgHD5YMjI<9>*EZF zD*N136hbp@=0m%!i6h&+5w{8w5)))>BEmj@58MGAm6_M*P}QyQq*e$t(6sy9RBEk0 z#$A^(3PpKum7;%j*W+rXS-u&RXR+dm$%w0niY;xXQ$m&rZFB(h^lhJZa$l){+Q2Bk zTCv3C2ZnZGsUVTAFJib)L8<6$26e{UJnC9k^NmunHM8RNDSJrq$*N$MGEcCJG+<(F zYWm6Z^Z9q}+|g8C)&de%1)ds55&86Gv6hAjID}f7u-mYxn-N74@fcDCG;WigL#xOk zoJHX@aB=$hCDAEf9DxIvMQGw=5AJ7G0Y2`{_|%gLQ!&n&kyb(MU|zrTjJ-F1cX;~ zHHyoe+ERI23e6w=yRKbh5-SWxQ_|91g;nOs$S3nntAQN%W$4 z5_lU^J-+jgnZrbj$*4}gPNA`t7)E2v5F^RSbZnn>2Ip0yZj-YrJT>jiGVVMV#z8o#L^NzS$5i7kx@V$<2j@lD4626TFi`SDGpcUh7$f2QQG63Da z(k9+Yq^;J_XiP1af=V`+xRQAaw0n)K)8Be4x=8XkDr1prB`tiJoyEYxs*p)^eOY{Z zo3KnGcT3l-8q8+EO{)qYmNlPQhTnDhx>!Kv6P>xs%o>2(3qgyH&1)M|1G||$1pA|4 z28|C9m*N4Ap70s10FK;VOhzXywPjl>1ro{ojdkQ{F`1Rtd?^`!-C5`La0Tp8YvwMp zuE3(HlNrXLld?^R+W2t9ot`D`f$unCW-aTPtImi$cl6jW7qMkT&n7re4q}q ziS5l3gg~?t?cAo!(#|jCArr1Ze&QzEN8Jf4=y&+;oj&|QRJi%NYq!OJo$JDwU)V>j zN-+Yo$HGRn*24{_z#`HMBJN&}E+NpbUVH0iv%xYFnQw>S=2?R(5@Hf)&vwIPzue9p zDnp(7>g+tf+-P}IQP{*x7{Q6@@vi#B*!LeaF)WA-=&f>5-BF`^z{)5GzGd$2LtHna z^k3x_8W`C~3Z-{CQg5iq3KT z8O^+5;8f~4Gxe?p{2*c7Hz!di-?L5+xT`(Ay0?38^i+GYTLDv;S0+N@%2l{R8x*`u zEV9c2Hf8G=V!p$G`U$m$-fT)Td4!XUaT~5j%-z9lSU-iZl8CG%@h+17Mu-U4OP3Tb zJauFoi~IXFJ&GXeVu?K@yl5xX+?Dp0iCoc(H{E%T{B%!ewvMiGc6Xjn(j^%)QDR#c zcKM;+=UWrFWQmjK? z?;FIVxcfkbF(K)u!iE^n)2KS`^OMR~Sna-8_?GXX+J#m4pMxz0bNBKteIF!x`Chkz zQd=AymMtT-pEHW18#OXhJxt52DR?#Efud!BHv>*2#$bK&QaN)sA#*vqO(hT?2E`&? zDI)?Dw`Zl@18YaL!R$^$({KRBG(R}G2PFrs01*y#I}FP?k#mc%MD_?oX956$i-~wu zrYTfLW*GPtn#o3h%h=_uM1qT#o3CFD?Wh0WG z(fo_`x5TuKWH9YMZ!WtMv_MuSf0xdrkUKl6&^xXjYFh-ey}fXSRiiC|J%)isf1%Ev zw*7V{w9yCsb~}}7gDCq02`DEiQZW}X6mAP^8QDQ7$uk->u2J=Qy=(UXFjyTZY@7Y< zX%)*zcP(?Rf~I->kJuDCFWyb@I_qvv5h5TVdFs_`I|I%{#!-+WGyp2tf~sR)mO)`R z!7;Q}kx5^yBOyWX_*ytl7VN$kyvrxX*3b8}dP*Q)Rlb|ugU1&I$=0XLikN@`fCDzZ zR`_;{B5KVnl9jNupR(D0Z9{{$jO1yJz2pLJp6iDz_Sj?cTT@(AvO|6raUXJfy(vDAatcfbfQbX>XL-L4B?XeNqNz>sZX!4=@E!<;?1+<)1kiy1WZ`-Fqx>T4wT+OB zw3ispty7(l1T8EaPJJs@H{R3;HjJkctep7ezR@GM0%I*9y;3&wC~673VG{^*FqXMI zhA{+24#c-IzOAHs!IVUw=j+yI-tMoYlJ@#fW30KE?lPdeuY35XlI{5vrK(^?1c>$LxS6>3YiFNK z=CxaU*T_LX_~c8QrW1vH=ZyV&cu6Wt^B87H|Iv!(#EmIR6nGaK{FliW zskJffn~*sI=p{PZZgq%=V4HC|oA{<9mzUDy%`F3+xFXZC*-oOx-Lk~hKBN*OH~1{c zFGrY7$>hKf$egcSOiXOf8esb8DD_L|89qN!2L~^wk$fva=nBFJ*5yO(NPCXVL5e$? z9hH#v=|(b=cB$R0ujBA=+c5~B`zU9u^ft)X??EH_F#?%qT)QR$IoRHet3{Qfx4Aa2 zH?j?(E07PKpmK0SW{H=x+?VQbd4EGKh|inYgXaUZ$hZpF`6#hjj*p#T@LZ}sQ+uc> z6}KbhyReu`dd%DDP9ZBY;;yJcUzbxw>aBK7Wc7~7h5`3lBF@{?8Hn{kq~OU8TDcyg z3EI+5U1v9>bx7c5y{{H!Z#-Y^z6X2#tRCu>O=>F17)e}IM$XL^xxOdSMe}UmgG$sA zQHyDsXeF|C#&~ZF_Aq|bpj_JL>wy2 z*deOx&6jB3LQz$f$uq0_tRiQ}|>>-}|e!D4Ln1U_tEW>9o0 zGZ1^f)|Rj;HP;lnq^}M>+=hYxvF^f^wZZq+Vp@~{nvdiWnNRvt%D+b1uK@ZPRO~GO zsMP*dME$owWBKjv|52c^u(ACk(m1&O!$|ups@Q%P(fvKD{UWwyE)RcllsZE&h3)!@rS55{udmKq4oHl_@3az z9x6=`TqNXI2M-U<^>5#nAGS|dt@+o#=XXDY&)>0l!KnS!6ZrezFodRS)~8m(%`=C~ z>u&zcQ@fX%>tPOPh1Xg>@8^T*=>;eTxXXSyq!-|?pW#%&MQ~j@E*r_Kx8J;3^2jC% zRL})O#H=y;nBlJzbiYH+9$WHyx=F4ccMMI7|JLs5YU}(kr+T;jkm4~e4vBq@*Wat- z5~KS5WT=`)A-2h!VzN8Kzx(F)G&hhyaQIZfhQROf?)p$7KvocX4Mw1V5RZPitV(zL z{-hcrQGCyUC?1psDIB!@#n<``-s|p%@owK+o32K;i>ELCPmc(i9_`I9H}f`rXICcX z&&Lz9MaPXrtBpy|IMp0HhZGDPeoMOGB5NnM_@@H*KQ{I!c@+G7?-2pc9mq{SRMp#) z`WrDJUmPtMOzkYJY$U{KZZ*2LC&D343LrB3H;{bZcq3>scGkF3$M&SwS{yx;rRf`P zqXTa$;MaIV{uF-Pn3PjS@n}8VUVs1ca6Yj-dZLoQZDMab@py9N5oe#53qxrp!7~(p z#&nZM@OEs6f$$YZoi{I#wA!6uGh@T)Y4;{t-?8C>YfYvF|5UymKVTRjd0KE0^RDXy znnlgjFzTXi6v@l!bx{OKjp9)3lomtK7A$sJJC17J7lM)*MJLqPCZ$rqy-6-ROuA*sJ4M8NTnI2yw%MZ$M=Rn^zK zb=32(`&*@wRCV0kka3W7LlzppSl!GnX!x(+KX4Q*q@9)gaQa9tdA;!f^a9`MCC5At z`amdn>@b9Z5k`SDkAW>lsgKBb18DvQ&g*{60_nXJg0vt=572dy)du90XK7<=Gfb^p(c4I$a}Tw~xyN zPB-7%Jax2}%5;J>66E;^z|7!%tvUz4)c`vsBEXT}i;x&ZB_`@&=}!$=7z zm-TOxNEF9)0HgERy=x+)?hiO5rONHII{}`M&bpCX)F#lfv-DM4@;+-N7M@ zlROAq+AGHau7RTTp;NXyN)4Y#50ms6{%$$%3=eeLjm<9ywsSwwSW#e-5b`Be5J?a} zV1+^8E=ElabI(wlByU#Nf&CCnFDE3Bd@H3*(gEKqv-VCnb%X2_4qBuOMR5T}xeGA} zT>&--z1k9`_;wO%=xuePpa_&F{3!(ihav9kZh#IX8KWTY3(P0;tpo@tE|3+4xSNI4 zNQpLsdnkh-gWeXRsG@hxVk_??KU%D|ed7PfN!QkuSfar-QP;1Sk4oWoIzH^sh{Qc} z3j-pBO{E}0*q^saab*#!$Vq7~qKL`CV8N_@Hx1Gs4;}|4M2!uL{uW}N`Ul?dN#)O{ zN9uoK9w2!@K96|mzsM2cHEWLA95HzA3i3b@77SxotLH(*r2C+XZh-fFHOHGMI48Wp zC57P{SRLoi^KFCQSLijwPul?9KKB5_TOsOF^u2&U)Hf@r#r8Zw z$-Vl|TR0F@;KL-rS5?ciWzPB^A|)tILqwVBA{~V~m2^$`%e4pFxp871h`kWl@rwN%JLHFGJswx&r<%y{JowqKH(`OYPiJL7ioKgWexw=mkSD+OPzd&Rnrz}>NrRl=PlyumL= zAy>J~`D8_lmxI1$poE}Q)7ki2z)x82x zfRv?NzliypVgZ{^rcnDtN$R}owkGj@TMPbc+n-`dCdNE?<#-eGI^KI^zm*ajY$_O< zu_Y2gjoWhr6Lv|!Pix`;kE@??_{=2fd1yBo`9mM#i8Cs@URKdwy^(s&mrSowJGnXIt zlkV+G`UUZ)OC@O)8u?SsTY@~2UpMwsoAfQI(gC5e5HM`w0=BE_N26<8>0Wk+4g%%& zrc`y$SwsYoGhUma}VXyPSy|+Niw8G9DH>LIj16D>#qQ{4_p}ud|1Ob zsRxW@jeuiD3?m|ML9Z{O##v;l#ondWXb^myV^(XxD9$MP5K7AI-(6U@9*W?lby+f| zbfRVrN6#SJCD_#_kK5`Ht34DCA_ zU~%+GAPc%GDO*Giy80|wJ7d^Fd=9fwFA0XYo92zr#+07VBu7)Z#&o>ZMakilwmQ zLB1fi?5d7Z?DGMqjuQKg!+QXq=2s&jEON<}AOmB>8ITk;BoX>07r!BrjJ5`Qv^WMW z^ua@JugYubEv954f>Kq;re0m~gD}S8z+lyh&M-LEW;Th;g={s;G#9DmlG`bKOKp7o zQ+Iu^0_4t7=SeU)jt}egHfsCY3xO0A2ObjfpTS{Ww^}+-QHvL7N{<~v_G_p4r~>$+ z0H!C%!BifD(W47N28~erXhM}oO3%8j-d)~U7D)YMk;C>zF%p>8%90W9S|)WWi3!*^ z2?~CQ^3FsIL9Eo_3v+z%hT9j!D8@!LMOSojK=s@QrnDd|o1rYDN1Mi+ zKkn;+iw8sI3QwZ#U#;TCeZh$n<9(5lZA98aO}8B&QC5SuI)LDcZ$OP~7k1*f%3M~` z75Ib+{>I8K69J+5hx!-k@Ns4N;cK-@QE2#u_?bX%e!&eQ$^3kgPx^wWny786l4u?l zt0?Z%y+v)6ij0;YC!N^lrxWJHtxv&(aKFGdAt?JGR0}<*;U&%Yyl;}Z6J}ZM7=}|p zK)`aJD^C@+pmlK&uPT(NeL=sv&Hf+z|X_lMVtb zJx;sk%7)xUZ{zf4y#8tWhjL`qHDORpw7E`dz!=v&i0ytpNeZaVX-Nh*~mdE}hz?6uF@Yf+8tu|dXxl@>2Mgz4fA(7NJCL&mILRm7uD+@9PQ zIObI7_sP?W=WzlY9tK?)QPfWuC#sWfT5_-lYfE=3YlSk~IMNpMIs zsJooj;BB!`T4KPa968h0^b#H5c8|Z;v`^ujs}Xvazg}zdHjU}4$?zO%-018nNU>*1@d%xdNYF63@v1c@ zJR3n2#B>ls4Pw_&mJa40|lbLmG6yS)&c`p7gwnQ zrRu+aEv1dS>e%SJvDO8$$kAT(s)}q4Fa*=Y1Q&ZMU`s-r(2=N`q(#m0LN?a3oNzYy z5;}F2d-Le4gZlG(~G!m<>&|* z;u`49Er44W*>hX@dt$f>n++0`>JajgT;pXZK#Qm;97TWpF+ut>*vbgJn2dle;e677 z2y0{GtXB^8Ygt9q*54KG829Q)4I~hSr!N3SEa*`_rDJ^M37zOTpG(Aw(g10AN+^X2 zOD=-$jn=TMsFwdCuPztg5RqfFtHn9mKn0I@x7J#5G()mzKe!(WJK9PS8o@Pkn2cZr zLo&1?Cp%tZnY9dF%qQ4BRe&E03se+!fqGYg3K<=YVWh?Z2*iFIRUA5a;5MPkUd57* z8Acf73yBCptZ=8PU;2J~dKJfaA3PB<5Y0?gdv-6uwdAN+A-R6W#(Ww*W^ zIgyr`Ym#Kh4qaUTh||_(+H|>2{b5U`$_3XWB;AN%yn12rLD;U#{HIUZlHJK7ecY^! zO_Oi1E=lH%uHUEY%77Hi2cNUp(A$`25;n#4If z`lbm*^O#f?B0u~>>^Hq}ae2QPe=yN@R6;-0AxK6F2P}agM=XQLVZw%Tr?rAO_;ifW z;mCOUJ%wNA6-U33qX84U4Bte73XKEd{Du1NbJE1qS(O=u%A%w<4aHDm_cQ8FWA%Ib zddj0|eCGrb97L&zwb>8?RD)SM_8Ak1v1o+WSXz3XlD-xCj%=B@F{>rSPq9+tOmUV5 z-7l@K9Rv=Eos8K%FzNq98>EkyEPMv~DKx6_3%z;`?Nf!W@P-2>lg(^fI=>yVTZI6ZI-Y6BnNd*VJ zo(0DBQ2rg{0N`{XzR(N;f9A2CG6oa~A3%D;)E&o}P#+6amyRIJLN(XX3m^0jg1U?r zw;r0^jE$*R{A`{nheEl`a+zH{08O=a`apVt{8J9dp_^9H7GxQu&#YyCZP>_mCu86b zGn_=tB&#f}f6Y0_H=Eve4NGOAl$_oW@?8Z)n-?MuW1b+7fM5mLHAL1LpyIu_6ss-! zD%1}J)0Z_rSWj*pVUT8e;BUn`iX+tJ!siW4^1*W^cUy*Y7eR^6-ov5TSVnC-70-=DQ%Y(%9 zhHnS|dE8*J_V@&m*4s{8BNY~&FO@F0NIxOM{pEqM>QaV81hyLi$jvw?f?0mJpGCQ( z-Cz?w{{@30H43NJ;)Hsv+{rd3%y3WtB`XIOm+6Hs;hyX(7ZG5&+K#|0cQ|>NgDSKA z6^@%IPCTZ_oB&psg(h)sJqGZ6NOuE_gY3)tKJa=KsC$E^M3H5aWbj6=!N2x|j<4#+ zxsl`Nds}bG5jb9mH~dkWv#t%uz)gdEp@UIkpfxZxo@49;^>YYh?(?C*JPV`o+sbfE zq3QBXFhF$3MhP(PYyD$$o4+m|t?$%C;b=4@V7P`#D;*#M=9^!lQ2qX5ZijOrE13c+k^qiuT{S6IHd1w1D$# zI(>+l6u(i$6vmv0cp^tW86c4c2%+SZKpXl^tj`^jgzJnHQIR8s(g*%VfAudzzdBc?(ieNq9J!`m{mh(}2!k z-(roTyfR@pC%WBQdgFs5wC-K@=TocQSZ&`vizx~M>1X&B}uvlgf@@<_36C>yFLLomCuI(BB}59(C=zHYn^o`O7WauE>#3hwwD zSKW}|daHMw=x~-BwR3KNh+I?~v2BP}yzjVhhjAOTCLUDW6OxqAhr(1a_s$(f9mU<*5Vy{3R|N z*?PV|5)Vq9h0MOk0*Du23&t6tLwAY8`+-+`bhX)wAC}I|O6CT?>7@F=&=#dz=AVYmBozCcNJfzS zH1%w3=dhEA9sLyL+7aTrrG@{7TdWlosPc`6N#=#vC^UvfXb5TtcZGC6rUYEK*UGF{ z&Nw9|ph*hK5KNu~CP-R5#hFg?_kNw#(~z=lKy?9xJ@;ASwZTg;WI53nQoz`AzU4R9hiYVyXNkr%rVyv?n94sm$@8&`9S{Ywyb)PPjDzj z>s7Pj+Ix8Zd2RpQSdnP?$~=a1+n_OUW9khlcr9B|oPzrl)K1MjNu^bV@46u1uyF)= zNe$x-cloR0Ik{&8KfrN70^XBQ2fdU4odWC_#SPzCLjfOJ$k7>jQAHsDs9-^!&7x7= z@t$$6f*B-5SgAIZFPL7l&*FGu_0;?;umws z(Oe%N1AAd~kC)0rdyQDD#V)ZB_&fHDJt&}cN5}=|>56?AfqUJN(SC#j3Vu6c;0;u1&C zM1HL8)TNHgUA*v44)%@;v&^=oRpZL>2<>=)I$45-KBeEo%q4B&?W>*C*J%2KouX18 zp-DH}FV7HQSw9Gc4MI_vWM@T+VH5y zT)FK`qPxT?*MMI`hxYfgWADsh--u7u!M^#@nfcfNyps>BqbBt2gV7Pgi0C}x=`ckK zE{a3k0$8<1mO($>6AN&hT%-L=@yes3ph#T5isjs98}%AriLOdAHb{Dr28(wqDS@|M z*@N!onDSY)0rDPzfyx&Ge^x;&i)b@`0Gr;9Yv@3> z-85k}xlp;fO;2l*->&go?k?f`4QVGP?XgWO;f7*b)0k86ul_%h2d-j}P#5YLApl4O zrz8TIVzUu$A3xEUdxv@1_10Rc${RJMNhBik6;e>UU2K z@;Gc4jd^U+JsA96o+D?5l!Hu^M4zOP7XoO73_$M{$5JyW@uPwLDm3Rw2pl0rTfr@{ zuj**+*&#(Y|CB>K#>91ODPQsUn%^=ucw6 zWesvB&3KtCCtZ{*yB6~4@VAF7V(*2Y8}}-qQTAAly%4Yo(Ahd6`+6yFG9aH0X7p3qu> zMC1Z|H2w)S8Vc;h>^TaZHSTKI?XUASo}6ob;HfIgcYsCc`y7qH3s_!P?RkhSeuW^y z?+&k>Z>kTJM&f9@dOLFgKe(`5;+mBQNMnT-qSp|33QUlr!O^Vv$an23DG3_4;$320 z`xW7;P0k^l!dzLQTN{Q9ecp%&er|~mG0;oo{1xVedfac|=AcSQ{gpWj!&=ZCSq2aV z!y0$RM}9I$Rr_eGAL~1&7?Fw_7c0rE*#m_joaWOkQ3)HPJ(rinT%poR|Dd6ro7_i7 z$t*#=PE7n@@>(h>EWfEml1417G+IurLXO_se&3YVyZ~^CcA6@*Yb5*oVDR`PdELS@`5VxxrSC=FK2Gh40h&XHPK;{7*{9=C# z{SME7Z?oKk-`C=B)jJ$CjXtM|l+_~J7j7qDtjp3(osuS0pjzqQD7uRrC&;lC0!T8# z^zG-iWcX}(J2=zYn;qEuEhZgX)6W<(ELFbyeaB0pXEw~$F~|S29!in!q`tBDQfmK2 zD}jhSfHG#<%fpul{)kvB&;d%Z3|a*R0|fZICx9Pmc;1Oqh6ko1DFpDwpQmMTs4d4c zg{U@c^%cy~Zp?O|-N=WdJBRi@6ua%3pOitq{_uRFeib^<%GL6V##kr?d8L~`%~{LT zatM~;E21H|W&~anZe>M-gP#xxVA>As_@w%d{<5{5B_g@Sz9*ohkeLkuxZ^uhwgeLq zG>$5BasDJGXy!cl3TQNp19>wzC0baecmsR9i}!YGOSHb@Ujg-(SkDyN+X&HOQ-lVO zZJL2xP4ziKn>!W4#5!0hNW3GW2$7MIzHZ)_Ga1fcZnZ7(z7>`Sh&KrobBB-k>U!kQ zl|>CuE-gSqzvS-CAnT$VQuI;<@18xP3drO^&uCKpg_&_I(FdMGxQb_p>MEK$$U7nL zU>EqG)ni~`c0m|U+q{jH2!cU9AJB;Ukb5%#ni-gSF0U~&tOoA7rHb0lv<^x%5OROA zUV^igItfAJ$j%NXZO@btNsGh@qtX6iF*|(lPA>JU>*ZOJfIot*KmRr8kw;glH4bAB zMr8(xxcAq3{R%)HxZ)Q9c0m9c61axH@=j>5mU?f$KyIK;<6VN7CJGhK%}5OSUgBoO zBi>(?AI>fOfjuY7o|es+9!Lp2l?LX>(I&XLuK~7C+Q$V#m`Du^#9U_8UklZLW1(Y& zDx(tDA9c)~9AqJYym=Os;gZEcX|aROaOOPU*|Wb_I@fII8?)-}w1qhN{bQdYwu9IW zxZ3~X+e({;Q7H;mL!BMRBF@CiN3ab2mk!15&5)+!`xi5#Qd}=_+|CVN@nZY&h{0eO zEXa6=%ath?Wiww&4+}fGc}{N+5CnGV1C};k8%H!KtVcku1<4>+vVO`@>H$eNhl15I z^EWrdl@Y~kMjvZtS+e7n)F-c-Y4Np}YQS}d*!TbI7EI>*3AuT9Cim}*oWGeie{FvKUv#|JHzUb`0}FE1yrBnKHbjE;RE44gX@pN+Z}Y^~n%K6EH3 zrxsU+OjTYmtnkP)S1GzYO^&KS zBl?U0!{Q(0@sncVJ_}|B$4b@K1utZA85tQm>x(fi6-Oth@?+)Szvt!_l*6?Q0F^;32$9JE{EX~O(r+04f4=0;7I z3pw7Dwx35yjpN>_Y{t@#pCMBhARoBDotzpP%hdZrV6ZG6LzjaTFj6u4e2D`T{9LWQnvVa}YKcpXPmfQu+sQ@^e!N(2uo&&gri{Q@FV-|m z2jVB3=6YmL(lcgzQ}d0jGk|k&ezIAwPzk2*gg_wVx1QQXKWn~_<#j&Pa#P*BfQ-)W zobXQkyj|IQYj$9npU&hc_C&~sj)sAO;qiL?XR;hqj&P$r)$?I@ zMJf1+(psn9sy9M{N#Uc-rR?}TKam{UWYlmuAbZzayY;5q9g*PkO=#!=*M)%RSJvm@ zMsPHEV0O31%j?5h^H1Gwub11_n(e({m!G%U{J(4|8EE$2w}uffSGx3#`_{7!0B~V& zS8Bv7!$F{Y{ikfZSnRl1k8gyKQCWYU>`g8&-jEP;G(^-5V2T+@8XFy8$`NdK+I_(Ec7>w7`GLNlmeaq*)Wu<85J1C)qZ%*Yy)RvD zqV5O?Xb2`^(}2F+nmt}@LY$|Q_VK|kj=nt?q3f%8OThWt3Z!DJ#Lv_oOAU=v>Diu- zBOB`?rg>J4Wk1c1Vf5By?|EwnVmS+;^cy8(z{-KaMR{_FtSsTyPGjEkxgSitE!z@J z)aV-)gY^G~W~`7;&{u2T)kaoL8sp;tXi+J;KHl{Ek_C|q5>RmWhf&gbrPbV0>TS^s zbfvG*zNrdt4%bwJ*GvxrA9$9?7v!+X6})4_d~sdK zT`^VDVUuIWGgH!pwW5oi>__UyAPy=FIn*y4V$_E(+%m3wS7*F>gTL*no#hvEM1Zzh zt+8pXi6%rCz-EVDMB$*kV1NyhNLG4=)-d8~FIs+54)C0(jKTq7o7PM6JT&g*E1-?m zuW8f^wg{cnbji76jM6{KO;R&~L;WrPs*T6^e9rAaYy8yo5E@Q=)qn2LRF7dwsQIO1 z^P|h$SD$Ux3v03l%1RTA)6obNGYU+up$9^zYzsjV1)JU)#GHB;-!=Wa9 z9k_;(#CiVXn;1gaISR`0(S^xRV*`27_U|ALMWSnaCB^>JHOPB=Nc~M$61-lA9uNjt zwC3X^i1AfYCw#u35GJ}d6bV;|l$6#QiHxQe6Wdw(f{`26lW=8bqb7P*8p{L#UVPSm zoID;lCM%fuVEmWx6-4(UR=9X2_pTA2uHYJEC(eug-VIGvx->o;+h}Jmo5qNT0vs%w z@dnpa^}1hbW=nh_`gbK7ySb=i6O6w^Oh}nmPyJ=6)F_UOb-3Jl$j$q2pGW&ix!Lb3 ztn+l$?R~cUe2MxY;BYB95e=Pj#+myQ0mLueke0CE?hUrW?sC{ivV=0St1SjQ5zD!; z`gCX9nm8vGmN39kjC5=B3TwUKOciwZjv|q&#z7Lu_`~1^jbbV%N>2j2wPueADJ6V6 z#B?~nzN_J!orMhQifNP$!eW__Ow|O0^)M1A4obfr6O6IX$>Pfv)x($dlhA(eSz6ne z9qJoE!Z0JD(NkMshGmd|TT9fk!x{>Wkddm!%HsF3%BNl?5O#5+FO# z__{dVmoL^dI6Z!?Sz+i%6C{Z*p-dOX^WtkYN1U=mj4u^c z@nq)Y78>dqT*%B>Ox2IhPB-Od9yF?Pb5JYou>$*gn!fOOjTjmdmf7n1 z@OvZJ%$Ja_&_R2ub1X;IjxS#%NI`p5ltudcTv&McrJ0!u6KnI`z4c=0(soKIk|zgw zuR+9C`ABF5j+UYHTdE;e^}M3daO5x}C&f7t&>7C}8hhJ2a}=yOa(kpQI$Cw`$|q%O z!5V9YUn)a8IjqmZ2sgrL~x$1JlruY0EYfU1c zHWQ7tDLys$?H)bBQ{=mRPLxERh(xrkuy!Ukw}09|i~?%$w5H$C)b~f;U%rRZAxR&% zh*$yU#+T2DS-}$TYsq_rHDj(;bI3y!AE3f|x>Rm(H9t8cWWwqZJESK?6Ou;)%vY*- z^-@L}lKdPmW=UAA5ngR!fN6 z_BZR%)H{@^HtJ&s5B-LIBqx5|b^=Jg^;eNymLNbxMhPlBGe zhf|6Sm8r1jtc_-*8)oFO>qyA@Zh}=*QEWX!Qh#pvB+M(XYcYH+p70cVp6~AVyw`VI zgP4xN5|NRDnTezPIB!ss2>sY9uBYoPu^gP3IKY_5djlLgVX7+==h;tm1^U>l<&$wv z+6T;djxKH8|M=WEZcd`KM(t$)t#2&&cw>>pT=%ta#`DJKQc$~E^z#Ay3g$_^W5|ZU zEa#>}iG5G=Sz8M+wLl&=e+=~)PsVuQ^KevC!rAFp^eNk%s4*n{ zWraVb41%_&Qlfk}aGL5Fo*QquI!)lp{OpNeXFx+mo70RD5|8_Mxm?26C{FY#MiO3! zIJM-LW{Ony3*^mY{+v7PmhaRm4)f*ZGjA`eSlokQJM;+LH(JEb1W$bpcJb5zC0h7eBe9H>&X9PG9ux(t{kyONUN zt#KJXWTQgF#b0dpW0scY#r`=%B4x1EgS=Nf8J11R?=Yrzx?h)5L;|;`(IMGJNU=Ap zGB;e4D7w5v@}0E#dd=6x zQ(|$b#~C_}my;6Ky5tp4Tm*PJ)FoVkqhNzTJmghLJzXqbiO~Sfl@A$N!LEW&4Nl@c#;-{kQI<|F-~bGD$G*uLh(S;js5l zHcnfLL6%2Q<=VQKVNyf#u}EHLnRFtVjE&^s{Xd5n%Su+fN!`iuM-R(!R-PRhw5P8V zwNDQAf-1#msEgn-lZ-0gpdPqc&;=E{nMyDmPff+jAd+P$Ceo9LAtp*m7~X0**{0{L z+nQuI+185qiVf|_Q;W#zp}9FnX-zCS0hvZ2u^C2a{uxH(?9GzL+}w)@cueM~r8sb_ zj@BEsoGSYs{q`>NjWY49OuslDtf?1Qw20@d=YCI?wwFeX@)p+V$zl!Cl;d= zn|RbP4ik*RqP80&hcK#B3VmqpBDXhKU{rkQIhc#P?y@f%8TYz-E3=$ucuMTB-1wHJ zwwXGzB+K9CF}cBCil~N4Z`EjXm6mN8Cf^P;2LKKbo(#g#w)v)cOFh z^3df};gfmEJ{$W3%&8n7`|mUI?}_%;jAUi~PlfisJ8Aw~$>2-n_iwG<|J8*2?_E6q zZ)fC1rjwSkI_|Kjya^=GRcO(8%4V}zWtmNESTv!7)ns#5b(~Kro5|(n zs=F|>IQ}P%$$TLv>#J!E_hrGcTE3{jFt(3f6=P%u4(8@k_GaFGnY6;mya3&fR=rI~ zMJ`)x5|sN1@4Nl(eRoo2RK%*w{=y3l2P(=HCHY3T%h~I}@>iw7Y7ME&^>X2+|JCVg zxlO&Fi>)kyL8Y%(Cs=4mq@u;3AhBAj)7ifW7{Bcamz~~mYWMm<(}j@7>v8Tu^NHZ= z`F67Xt2WT#{q{OI4|uwIcX-%6F`VV*sMfC4`<*cB@9tv0RABsM6s2`5J%>D#UeQg$7d@-qeOS*TGrv(Mq;^W$lib{oUnd z=whH?-?VzOq6xd(S38QXjUa*2mqaf+i(28Xq zY*yg;eveJpMslXOJLmE(w>u{hH2<1D=USQ_K&+1Wy&$)eUc{Vd&W*HyPOa8tUKYH- zw}n4N^od_%eBlx`Q~v-d@0ud#dW6rfFBB@!cZGzypi-)i1IxUSSn|&1c&kV$`VT3E zw6OSER18KjoOvm9**WLfOr3%nkZ7QvN1SRf#X#Fw%x{9chT7ZMBI)4<0svRBUmqJ9 z%-L>9jqC3a81=IvzXk~?bKDgw8Tz?76y=pW5Mfj_3Q(Azj0*Y#C?PPxPgl7}=s2)& zmH5z#s#@j+jT8zvMArSkdB4PMZxzxc#g!fnn&^MT*xC+>--(Lj_K;o_n0y`4NCQDJ++;q|twiz^foWc!deLps=vG?kILDj;g~aUr1m_nu7X%91X4RccPdEk|Yna z_?jF_^hqSEu~5-NOV11~3@Qs|U_}c^0p~VVrL2FEL4o!mN;I}#Lj#z~BM*54Rv;vi zAPxld9Fwq{3puo6gb=rWB~oc#C@*Upf-=F%Kt7|SVGO%vZ&)Kv*j&O%tWGp)W+0VE zN(vDvH5uE=7Akfq?CGw`51)oIwhrVuA;!6+Dj@}&@P?zX(BXR&K>Si6TqYMxIy1B) zm6v8}Iu`cf>~v*O>^HkFuFCH@MZs17;W5Oe<~oNKmtqE1^Ja&c_5$8)^p z^`&;P1AB7(bC?udT%3{$CQEH>aqcinbGSLhl#JH70YkU2{839-xXC;uO7UpI)lR36 zvB3J`2m-V@rk?4w{Eqt0#!_mW`rSHle;jvWcjUPudj*_e){)b)7}tdYtdn1Kl4b!y zihXUKpwu+8+$5wJlNpQ+rtaR^WrbmC*hh=W^~y0$zM?ofn9Bo(y!?gYhOj8qlmzoi zxbQmZ$=E+&wmMv28E+mR!iy0uROU}6tPNv(C71k%cO z?_j(^NrmYiu@j*7_6!X3^4Tj=IE-DZon<=K@vNm4?U-um@e2jlQc!~%Y&?U7cI{>* zyOM^8WxNE17OM-%tBV&tUQ@rR@wT{};VdXT0z}1Vvv_}rY;F69>7Zv`(B2-!?&4c& z3#1X(RRt!>=$j$xTbNTx;tqb}+)(*8+|bU+4wyI;gtB6)W2Qms8SBl9Xf6da zWTA2)Jj@EFl_UWMnQKhzYgw7%ma+VMwzaLatCCc!Ygy+?Ds7xaagtI)XhN=Y42gCq z9O3X*FwsLRx$TKokvMK|Dl~vy{PXbeL-??az+bm}{x@G#5r2c}`u8@>#(P zMoVhLtzyu<3oE3KzUeJSa@JVhwJ|P(M`OH^% zD1;RGk4R{Rr3!}Ak_ci`DnSj$`04UFJlIYsjn+Fqmd5c_wdbOKTEJaA8+DN-7HRPE z`gjOn^Sv z@z{8nJf*IxOgw)Gfc8WC1aN`vb%YQg%N*ks3K6`kpmn)t^$E!1D zztjtLmeYqu(;1Au{c(mU z&0yuRIw>5 zb%Q^NBT+GQvzy_%jKqdgn_C1chhhkN2=z>ak&5*KD zq{7~o$nTO$pyp!*g@lx$($_3wjlIY09C;^EVytTrPdKb$sirI52@~}>bit~5F(^NP z%^6uC6w-v;w||mGCNV#}IS#2Ynn@Sc5gEcMsiROCInPKZI}K?jy@-%iA(=aJ#sf5v zM9lH#W{&eSsOX#yl--jg2^{urMe#Ckta7meDW?t5cE!^(iN_M$N_yI`%o!U8C<*Km z#7N=cugfqBODXa)e#{4%l)q|(eho9&+)R%kT2^QJcY7eBNkU>7o*;UD$#~Kdh;<}!J~GBu#VSW4zxONxmE zCVZt)xtwO-{(4Z@RcNG=(SF(Qj@IF1Mh+C$LNLFF%FhvojAXnO@1K9ij%0lqgV7zW z!t47@L=Z@9HbHPoPBocphXzwIj_?(H`~6!q=I!Z}Wg@rCglTe+=J1YdLeydVf7>Ln zsMDB+0|wBEWmKDulK9jE*;oUG=Ar_ldCViDzGSMi8Fhc|ufLoo^*%)FQi*q%z!x3=4@T&0BzKJSz^o zFc@M%mrW?e#Z z(G{Q|-J#@L?1um37c;`d6Hrp}yY&#x#ugsNv1sW0xjRl24(NN80YQS1sI(ow^k*ub z*8WcD9+#TGjgU5)5G(Wt)+pBfevH^xi1iFiVJGgI?QE%1r&fNqrC>sq#{@Z36cBi` z2cO8(fdtcjkMrGX;F|cu%_u%zmiZz(ki7vZaM5z zKkoh!@8@_A>f*0ZO6Szm4=k$NTqJLq`zpEo`O#f;9__u55Kf&mK zpwE9NiPSvi{9TK)QK9r+)|eXRfdroTMK{_R7C`d|C`*T!uBg9Q%TKP+%$ zzid|-1g*X-ZN3~azl=2hW5HVy@MVtrKRDFSkSu$aB^$Sv<3*{%Wbg|=;DD=JPPg7?*_+e1v7qORrWFJYp-NM&rLrLU%Y|!yN zv7g}-CKfE4q|mw{-=4p^(bn(quIJgoK*~XqJu^^TXNM_yWr_Krqh_ej&?})jAb2{K zO&FT>bwRO4;&)VRaN9^sV(Tm8^zEm27^3Z(nLZKe)1B_mwf)uJG74J_TM$DxX&#lk zLiv{(@A0msYILhxCG@?)pQB&rJV0Ct74A#pJRLWW0J^%BXqyn5;O?`w#jrAO7EVm= zcv!Ww59DVlBc$J#oJ>*b3ow1IRG%A`4Uc0>MwHCA^|yN^J`NdV zM`&}-#U96y9GX3$@UAp*Geurq25-;8T#d=zm^*ib!1}e!-@(Oj2!Xezy`X5&l-~n5 z77-zp#h^1-ES2Ogkk4XH80ZvZ=OJev2?*>T*JmP;n?teM_{AB$HyjXAhuKM&r%=c} zTy5JuTC2vdv;zE2Xi$I7i2K!;T*I-Pehwwo%hihj4r6c4g-$*1N%e5oA?Kuw!6hqy z`!3)~6{0Y;a)t9c8T}_HtwxIGo>XpziBY~fi z((&EyE^;H>dYHY&W~iy}dAYil?%i4ugj>%oEGc*F+PM$fl@y;>3wWL!{_N+r`pl~0 zYHfbu>5K0SDMc^;2;an9>&{HspS(Y%HYK_xmTM(+WZH>cvGm}a?N^=I?1?V_oT(n zS{VmPVXj7KI?og}MW7FV;!zp7xVEinrO8KFb~Cx`R7LM$ z9MfkewY?y=5b`9-oqw~Bq5oK^F01|q?J?HEti1>bMxSIwpFW^scWLSD3(qI(@+XNp z7TkR65_R5yv%b_63I6QkK2tT*EJ5|WKziuLSq-|D^*Ch73x|AY>)buc7vG17RpP4I zdc!}F+TCz$o^|zkQkkX{;U?t3`K;o=;npSj#F#a{<5vf=bNwHJ-aqXSnHc|7f&1H2 z`LCe&<;yG~EG(q&U~EM6cbrlr(*9?V`;yA}H|s98f4C6;|AVjMSUqB(AHbTEZb2_Jcopa2SI5pXdygC*!&B>ACU z1rgDMjR;HVt4g-J&9skU^{tho=A{+WE6=4iAo+Jcus%mMU?0|8HMGmKUM&>V@qs50 zEF@qAHQ=5d6B97Nvk1t-dna#dYKizz{o^IQk5T&?ZMQsy!|zY;SP~9lG6*0T(M5J1 zFAB^9kOZarL2Twvu(A8ZZ_GhV%ow@Qc@-pk1JzcK#fLQQqbbQ0`?)ykQ`jA>SrP5> zn`z`b`4M2bS}Ek)ruiO_#+}L%X+Q^0RP*!C8PY(EXsNmrM-;hMq0FLa*q5QVAV5$F z1DqZ92;ncBW?4Y4MW*{A z)jyL&fyvdaQ_W&8D)BBZ)PEnEy>zc^5qK$m@Q%2>soYSUPiF~6WT|giomVh)VgNmo zX{6)VcO|L-HCRIk9PCucT@eA@f&(>dX50}3S?R7ztWJ<`83;y@X&Knr-@+DX!PjjD zOxBOx7D5Z`M-RL$ESwKO04AtciV=9z*Br|48VNm5uq+0n05MhQHxjM})GuK{`R{0; zgTkRPNO1x$GZZCQ)c$3;!t%WLq>eakP}=^lIgm3%tPmf-o&m@yAoKe0%Ro&&D>dAB zP=LPiZ4p=W3`oqLwH?V83_gVBKFl55YarS{-M)Azfe|RsSur&z+#3<07&S6rWMa!$ zk^+!Y(X<$Z0^HU}@mRZkP>A4M{S+*WA?&?i^@tqiTR-gw>wThW9=-IQP5a$uHzh{Q=mWL9L#NH|bO zP#*!veXI(;C321=K}f#_v<$x0MlB0=NZ?V(#-m9Dkzp#5eM@cdRhFFG z4v zDdH*V$pDCFNxn zH@(JQZLag#@h$O%+J@RAktES15jZirOj_mVBHChRnRS`m0;2_mg}%j##oHo%dE|8Q zv`f}>rY`H}{(JCgONp9K9xoV6#@U zl8ca>6oVRrZneTyE}uenWp+U~pj*>>tY?O3RWDpHy|*McEVo-fOFw_dkhCnee3m+2 zBmc{x$FRvR?1pbolcFXxQzA|xa#TiXd0|souWh6CnYSs;>HLv}v18J7phMvPg7JG*E zQ$-txjg_TzTh84Vp4@5LH5(Z1vhCB42#+Lh6mLwByuq%)od{3Mj?Pr=0iKJx~4Iw8r`KVpAWH^)60Tv=Qd^KtQo z@Hd#m08xKmyr>kOgd)4iz32+JVw~#(VQTs{{q^s_ATU`#omg3uk-{OvjXpSOp zw4aUNW5JRG>H=m(k_WUy4JE21&?WXj zk?V)m&}g&pQg$-*v*t4jw~d)EUaFwx3CzYyQ#q)cw5LSej?A3-}(&potX1xclep`DhrNh-`-V{%T22|wYfbrJv%RgJ|ce;v}Yyh zo_m>}G+tSEp4irZBzxy=uQPY(BPm9z=a+;(~@lyk63Gxqs@c^PYHae#}Ca zBI@u@xPAXH`!GD;%cF#mqs}Vhul!hiUNR}|yg$!b(wnXiF^vvt5oY*Ie5sb}2cIsT zrV(opI|Wn%rXyY=Hr#6O2d~E?lIQmVyTAQudPoheO9k{lfJxk@6+$`zh zeEt1sePndJKks6GRa6|dS>DC}==+iTW_UjwdvY%KESH!a$?xI;{eJ68VQq4_^%QXT z_CF-Gf2E;+<*&@_Ow9kxSO0e8{kNp{KMZsKGpYUCK=+?;|DR-tfB3}y(`EN>K>sDf z`VW4&lD@UAmGNIPk4oll#$VRFOf2kd|MJHD%Ax<^-K(f?WBS+of4%(Y{V((0f47?b zFF?Mq*PO&p0SKt)EjwQnc2zh@#2rmkorJjX3MDg#|I7D-YPHO}QQ-{8+oI5GG5S?i z>Y)(hRLK)8rQGGANM|uTt+dolRn7uMuYzFFAEz|8?T5?%VeT!X;>@3iz*Q@s+u@B{;Z75$jrd{x8qs<_dSW*{Y;mu>}=@dZV!Z7-a9y({Bg5C-Jd^R z6qi?$R288Wv9omqRv31q7q+uD1`Z(bKv5G%BL@q6Cp!liw%-Xy?Nn?njO>g}h=2l_ zU-u$z;o#^bVs79-1iU<>tihifz!K7b6f^!=7n%*Ii1_ml=5Nn`w*l?yFXZUgdH;v8 zvj3Te^q;Is=hL`tAQMv1g---uVJMV{$PfszN(sq_!x-tOH~Ng93JmFX@Z6rFGguQm zl6xCljm9f$jhxdYL7Xm%*$`v#xSdrA^34=zXjAOZi$x^7OscG?c3^rDpcT` zm0AhKdv|?#+c~o@H3=rrx16?k8pSuef3j2{?fT(7jk3W%-yCO#ce^=hz5NzdIk9|2 zHP5c6CHTZ{+tFE8@~wnVRKDqWXtcp)_vkk#<{A z9W+6xWC^dg!b+-uZ3HMO4f{S6D1)YmCP?8ffFXF$=9(Dq8)E8FV(_OZB$ffKbyqda ziy9Yhw-(9OIrWYo;b}UnbVrb3vmrSD+m?Uz<*#Xk<6rSCzee|WpZ{SW|33bI*n_-* z4bX=Ei@jJIm^l&w6V3iSP#9?bFk1Ai9PC8&04{bS4kjidE_N>9hd>Hw&K5>Owr0S| z1!y5cjz&N8IdcGO#{*%&KQ`zAY`~J&A_n$<7Qkj_;e=sSb~3S1{dt6}iGi_&tr-zB z2k?`m{^u^Nz-urHxtRS?J^QDHG0GXZ{cY>#O#zL^1OUVS$H(q(_V#yJ^Uui!OvKE@!p;hOYyU8*&8NBxruVN6nq~5-t4FWF(+z^Q?iyf1SvP?O1$8;t5QT$) zrk#_(%Rn(t_aTK}Nu$*##}`j~sM^R?nAzMIk+ccs9*U*}xkG#hu`8jlup(G+Uj!UeEU;>-`lGthpVRgR|IL z6>GM?>QumnKA|G-qga}}mgBlK4Nn9Xi>%)KVr{_4DVBN%347J?=!omltwH z-P%gmFYBM89k!P<9iK`v+d;S|PBm5}_Er&?8h?~`411iLjlF$|#FX%6%^Jn1jiQT? z8ta46Kq}O=5ZE8R3bq*61*m)I3b_i;tI;iIyEHxVX;lvKw(p(O#-PXikabm_qw<13 z^w%{ndh&X9?2v8!rhX-wc1}@WG%SriU9U1@Vjaxd=k<};S&)DV3SO8eTk#Nos4KTX zX6p&;z9T4}wEZnx(x&^$CkK}@C+3-K$pRra-M0#eGd@s8!kTZviKFVc>T(w_6B*#< z#ZT*H3Sc)or11MFIBf!EDP-FTj}Q*Y>)(gf;l?fT=OeQX#uD5mO^7fa6J;Vc9=Wm)=aabt?$zn`^bGa*S}&kc2)`;Z>^NU|$I%zW>d482U8u>;JIg;7;s zHH)@98E<)3wpQj<)U5XSxJv8Qe!ka{8J9gtKnEwiMn3Ab!sBj5DKIxImm!wXEkCZ* zILUFm6WEdDr4-t_)>xH6d*2&@!0kXT&t-)n4{^$+xc8Gi;^w_ zJ3{{QJZ?eKEJ*s4Dys%{Z+dO!&A{=eg$ugM%bphg_{=?c8CVg7uLOx0NU6|r#I3Lc z4{sTBnB!9*jlgm;-$@jcyFsx9S@!S>qZ=?7Amqd`rM(lPqKrp2MV5vp4>A-+&WUAW ziC6px(gF=0!U^RfOhFtNOCZhIJ8KifDojHh94lLm z5(gC?WbqcZTb2nK1?nn@Q<$z>GK^Rh6)uP>ATyiP92zG;bn|UtfCLn3(1#x89*&^A zpibmyq*v+t)Jya&rY)Hs%%Dl=EMx@aS79ttFX?-hE!3XDAOU245--Vnzf1nD_E?)r zzOf&YZb_F2TQ)sfK^)L_NV=5I{+BpgcR^~3i5M5kmy zP^52z?R}{#2x>ZFE@^uhq3=+9gqlL_Ikp&jGJ<%Z8c}`Zo1!jRdJuXlg0fJ2gqwox zS+*#8VxT!tY>BiLnxgILw{Uu5giGL)N9KddpjM#OP%4SE<(I^*Fr$+ShAVyjcC!|g$~yn5V&9H9?_;xKcPqJnCnaiPG1YN1Y` zUxJ*2SfH(-t)R@1Lm$*1q%1s}&cpzt@y$Ot2t3GC7}bEkTgIG> z73o;SwC(F9w=jJ-DnO-MU8I;|jPyP7KFU544RkFudXR%KwgE;?{5xSFzJUw_%>r#J z3__g66c{TpM81op{g#qAjR>_6^$Qe2Kt`<85K%s=^*Ck-==c?7XRsY|<&coT{9v?B1!QDa@&ZDYGf!L&hnr@6_MT4p9${ z4i%;(rb4G6r=F%frwDUgb6m3S zPM@+db1<_Hat^Z1ayEn~1r7))T%H?({qNKMy$%I1f7avkmn@Sc7Bn6kZe*2&fFH3~0cGJyXM(tknb2vE?0~0JsT< z@ELiAh)WU5CG~t#R4{949kNnjlubgJIXhaJwUg@<&~g0~)oH_H{F#?MZSAB+qg>K( zyDhVBTSL;pl&HppxQ2{0Jp8U9-=#>pg1Q?mynu>2k2+Of+Bf3xH7B0Sc|F&dA(NFJ z`-N&jv8<1dLZ;JXDmTjCyNDcBz&CH*T1x(!TULxBMygjQG)i2}x>-f^0R_-nS=j$PH!Wzzuc#>`JLZk}zrm^M^}YB}E5$2aj$o-|K=K z_1IT=+QloTPRsl}J^^0?PMR;qIfmwZDqC9UX04KZHW?8>W|2@Ww3D8oSt6=UjamV`6OFl54hh9 zu!gd{h+Bz$d%GamP3~hTe#8*G{II!H7t)*u(bv}p(^a=%)h+QLomVL<)}bxah}iHkQ_aYOQm5xXwt( zl1cKD>aBBzs;P_Cnd$m?h^^2p7`Ul$Z3iiArOR8k2wtr7Ijy-EToXKb?tWA(lBS7zSs)%10d%kGbIc9={ieA-p(B z`TXb+-ad9)tF|O`OY_9H@Pv5k{EToWcZ=bf*513`|LEJrZ|rNBRoz)VxpZ(UQ1_M{EUIp?%*z3TKB3h$cF9kdW&DO zs?Wk6>ch@$BwdMoA-A0|x5X4&F|S(i71JU%phlDxy^xrZkT;^Zl+j#Eu27iWaF9`v z(Wmp(BW9E-`)-zsFs~iT%~|xiU~2}@hbFh?k6{+CJl4Ao@=TfSc4Y27%H0Jv zx+eEUeq8qH{@Ad}-+OjH8oC#qyV8O?_<=LdYk_>8FsY8&QJD^vs}tX$ZD-8f(h10` z%uI1&Kk6S^^y++tH=U!j`b=_9Uq86ge)^B5q(Q;Q$Zi8piyTp4>1QH4;+*eS%)=bh26CtLBrN@h+F2litLFC3kzZg*Ijp~MQ1tDY}m>a$E zW1J>c_ttu=C#u)Di#Vq}!l)A%=!m8wAG-X}_ir_ohJ?w!H zWJ4bf4MVz>9)bouaFgnB1rtauTUcfV10TUp0lB75r4+-ImJmgj(Hw{)Vb*!8Sn1E} zO*CTI+UNF|`X=*sMY+zo>pAAy-Fxk2Z#^GF_8`WPYK-ykv8zC^6()_Da3vyOwl+}v z$W$Yl>K+n=oAspPPpFoevQf=;j$JyJgUX|%4cmJH+CNvs_lVc^V_4u}z>-2xJ;tp( zx2jw0W_;2>SeZ~_j|A`IM6=?<=%432)vHmefwZBm7Et4UZlLQ&6}$)i(#c4qD#cFi zezEz%%>ZOxHF-s9U3nt80cDSs^Eplq6{!q7us2e)vP?KwYFb&b+*~K2chbgs1YRNK zJ5uw-_rQPwjg6oIqSOVBuV1R0=NARAczCm%vZNbQ)jc_obW zdZEFd<%_6_!O~C9E@G5XYLej~LiCYFzmn~5GQ`HZW-n(;CKp+vlqGM!Q!ndfyc-6= z_8gi$#*8F2tf;)`anbOKey8T?kmTf5BzjXDvnaQZ=Joc9cHPTau|KtR@4@oHt>!5I zc)!GQuv$oWiJvZ$PQhgekCR^=yS=R0Y{hz%F8w{Dt<={QQXW}^3ws4lK$DkS-wyV< z9b9Efb z&oePJVRnGC|0nCY2Ujlpnle=>^( zUn+`GG2HFo?x$LW_Kd1tjMZU0RdmScsle-o-Vw$@7-`C{-gq7x09(SLsJS68BE<`L zy06u(jspK;PtcMr--(hD!vT`v2=crS3vQ5E1$TQJ_JN6TqM0*syd4BDs03kard%{H z^l+G9b4z6b2F2~9TD2Oz0a9X=4 zHDz0+eVmO@qDIzmgyt%d@M64hjTOm?@9D(XY4b`s4!dB?HSBn9xpeZG4cGLKdcBLC zZ%QI+H@{N!haor1L+u%Zi9)K3 z8`9mc2Xw7D3e70UIW~1fz8Sp-eWB!d9m7y9KzVUmtoa+yM!^V=4%e|eU{3s8W z)3A4*N_9%hVRD3e?{@)fc$h`=8@VOU7Is@V<)+X5smzWA7Gp{p_qj(E%)0mcOIk*S zS4Cq9!A6h+5s^(?qvbTrx^a2Nau!nVU&~YC=#ml=jiqr6GWeBg(p2cfzp&q^rxZGP zmCU8gwza4V;CTu;>WIrJc$@TVxRx_;8BUDVXgact?~iGhu~DKDipKb4*Lpj)EIf}B zAAO3b^jJhnIyPN4J1AIvx7uR)>{3SCYdm7#&9!DNKiREU_H}t^Fm(|qXih_~wd$+# z_Ik~*un^~>!*)$=W)Ywx_dFHXBBQ7O`ki;ul;N`sz+Ag>?6hIGH>HAQknfS4u7Kh! zz9zK>XADQ6Lz4zMKzPjiRB%`qIeeQWjq=)eR_uc!5iO;zBQIHjWqILA-pI(Pm{;6b zab!{)N=2Aa@Ibb!8;{2U!}?Mxhu!r#Y-o9ZBrVT{-puo%#fhDkj>CP+alu|mMO1;= z0=!&R`X^q;VFsZ#0!ru zCW9S2YiY?CBN0Vd!(Fq>NNU1Es4Qda5zx+NOTx~*UGq+K0Fi_uxg$(;IE{pY1Zm%Q z>m%2-sP}tSLy87Lcd;4h*};!_BQ+XGZ|G;u2h?`ywa+x{Crh|=y7yQ(f*^5m*rUpI z9L;{DlddXG^X6IQDQdu9}C(l(xD}?#oT;tSR}PXJnRkrGJOLM5MxL zFwd1anH%`xUXK1l;oH_OUF63Ce1#ou)qBjJfFngCx@uyi&kGbyu~%%Ve9k3cb$cgl&cQ!sq7i_omn^ zS~Rq<7QO0mwBrSZH7K)K9Qb`g%#k=BqA#5M+kKl!3-_(ler-GmGamy#T>rUU!;_miEMPkUVJnOqJk{pEE|zQf;} z_sFRy=IJ|flwtFta*PTb&5Fj8Gb|hn2c(w!thuy|tWGBAN=9#;%@Wx+b<-nx7zt_l z19b$;_~I<#uUkdJHKto1bnYQbd3_ow6R@Kmz*&~R4{BHJ8)c3y%+XmnMAnZlg|L-( z8&sw9-kQQz(ee6ORql4Fm#7!_{SYGk&@jGz+-u7|O1Ufjx$FbICUrmbot4pN)H9XJ zr1~1_aEr|J7evbnaPow&9e(@;)lRmzEwcrX+6k2w_})8Ko#PhK+9$WW8ldzf?GFQ2 zctC&P#ogMHYJv%PIgMs;;KT83WVm}6{@J<7Vr zZA*5KMeiak&YzPejx{jUT4*7a^TSP~TS_#v=Ew8L&6^FK+O0mlT>7-P`+PV!ofvJE zA))Kn;mPyxmJ6xUmv{AUK=XaL*0MB$Lj`NeIdSAYk1x!TfZ$FlQRTd|*T= zi)ei|S>sLQW^08UE18B)WQsO-uy%s$n6aKt%)6?Arl*UujB;b$(0yOP_%R{Oxv!b! z41dFlyIPITxJSTo@HE|{-GeKwcI3+#`hIyn-Sw`{v%{K+3T@@Nivr&EexBD#-`9%K z(g~W6Qq^PX+;jZ`E4}sgsI7OhvOjc*m=Wws@h(JWFunNF2FejxGU{Tt#3UKAZB&1pu*=&Vvdon$1WaE*>Gu8gLBb2v!)dS-I%c%3?On!B+b4k8!D z5OjAt7Arp4^Ng-gC-2HSQp877A+%w6VQ2WoO>N-tLtkXUefY~NA2X6l?ZIIi-|-}R zx(0=B&s44GKwD%ID}BXem7eQe_Y zPd?;-oIuini<1M$JaGKv4*xT4!UYT<{u^z= z3?xzhMVr8IFasHjKWGy!AT9HoHvy_3|3#ayF$0N~pSwsBasDJ@eiJCbu;srID8No) zgZXubzZeuEAP@Z0LjJ~}{0Ge>`=6T0-wX;H8{q!~fzq#TW34rh?K64PxN}eX8jZiQ zxTsfy&l7ER&>Ox}_aPNY^U=hzG2do6q)?fM=8$`e^}U5A`8T6#LMIv`n`JWn<>a2M zZ5)gDh5;2|CB6+(RLcT|7Tbe9XsjS|cj=xs9A{Xi6#3-dj_Z!+TnGFY*Bu9Z7iSNY zowdRgEs`{)>71=z(Yu5;IOC9%4C#o}-nZPElRF3U88&xSs3oXH6TH_=Gm8)5V}V8Kc>Psl3TS*ijmNf+6xqCN_ z9GRGTsgt>_4tmClS`rTMEAn#BaQ&3Fx%0zr3pY)pTlJTPp^ya&-xt&_HV6ut3ZWLKPEB#QrdRIYOL=!usIEr>GO||~pxx0l$#)-!T+FJN5s*uu?#k;x1 zs>#Pbaj@DtoqWNuaW$qBKaI3L$M!FyKBxZlI966(3g3g0n|!=&#v37Ic9Es50hWke zO8gS&73>-&3K;^WlDRR6lDTA{5=I!FxHFMYCn`k9Tqrxf@1$$BsLqZ+`?XOwZ-(M; zeMI6@34@eI!4xgeNZLb{aGA8Y3cU5?O1`rNxnNg%f%jsfhcNnp_uhJ9xp?vQPB7T| zIe}Ctn=ZY;GoQL6g|s8~+52K1@xeX$HD|G$UI4VODwH|QyD$5ngcDz_;C@uaBUm{OcHW^5tQIC922Uh948+Vf#6#9qckwY~DO z=n-5___}!C@vL`Q%}LYvkeB(^|I+icG7mj-_EX50p=P9ZboV0)GEaC^l}0AZb_gVG z7HcFFoBHVI`@@vjPBXwIn6n2!|>KP`m@Gn)|Ycw%|y(S z$N)%pv~QfdprW0uc{zl_?#Lu`Y!-0(!qq!CwzRfUxG!4`3;B4r&z?lEFg;%VDz-%fc@5lDgpAW}l-h|6M& zh&?txf(qG#HR9Y3UGiC9DnXzbQz2jnp9bLtr3ZLnlB{?@kC=p2&jskf#9{2UBp2Eu z9OPcwUH#y&rd*>jO2HVyx+9E~3;P7sBX8Jv z4u>GBXfU6@LLOLM_`cVBx%+DCEYN#kb7^Yd45V}4TRCQ8Gb|(>%-f@pb!o6S`6^jI ziB^qkf-H#<`O!$)bDH1Obv?P8~-=I5};m%7UE1eby$ zf;5=7MF>gqye9m`8(bO5VN2!H4u$Fl5-dD36LZ@meSP1wt#6igZ{HcPqv&D5Vm3!f zucj$pEK$qZaad5TkWk9*ByxioK%sO%Z<#rYG^Af9>vJ8y8^YUFgsM_w6l4%$5YY|R z4sL_A(2}pls}l8Ut}a7v#i^lP93PwI_&upVvzOA;Gc>sJdB z#Ip!l-rKAg6o~UxPN;>-Po2Dk49Ah#n#$qA7S~XBzPw;Z;()WP|0x>iOZ}QiBP=y zLsKvSr3l9!&u_mk2q6?<)2upTDs?LL%Vm2oi4M=>mN$PhAuM*o7I*J1lwOyS;CqCS z*0X2Dnju8E01`hiW#cNFS26p37{g*DS3=GyWqOLyaQ*=wB2EcJHQ1<>FeExchQ-NR z8-L-RvuI4;&xBWIMLl2VAKeUJ-AbGs_!UF>RQ!CPYq}f(#im%tg2->g;7{=q6Q6`h z72bU`-rUfQg-E8i^DI$CjjpO>SbGHxW^HI{Eou#pN&u&!o!sWl|DqnQGM{R{veuD>HKXq51)KaalxcO zsv`;m!HrR4PhGjY9gfPFPJ-m1Nb+YA+{kxqIO;mtsz>^qyy}d3^TF`nZb%PUepV1MSz&;mWEvmSwuly z<17J;O0;Z35>3uKlM-I%d=x`r7lZsxUt{7louQk%1B@>_gP0JIn9(sYS?ZD$nDSlB zpl40WC?Q>0knRsr6egPlh<8|^6JS>0_Cs1e6!V(^u(h!~f(lq8hL0a&JkiD5^!ru} z`e5f_e?I$f529Z+dM1=qqp=9+?-wBPc(7nDs|*kQU3Pcf4SU+xnwMZx*>#==4$KTf z(_L$CE8LS3%0DT2Sa}S9PyzCImWmWcN?e)o6~@=HG868zgtwQ-mypjt5d4r0>D_6^ zO!nkShChSipyD)P4aTC0>3Ki?DRWW{5qvNCb!DhB_eU%fSJaP012j?mOS5~!0H67u zmHT!2xew9}h~3Y4-(%CM9W=N=9XD}JVo?0Kn3BOZxGppP%R|Zqf!pT|EU7wqNyP8N z@S>(Q-dbo^+f+BBA>RTjl)0$-acxD9Dp9ww(KKML&s)KRm%rYQxa*3X$@decL?ap( z3HuLkWs{;c@<8@7AcGsHUCCe_=YU14nL)-Sj>rBpGV-zmC zGHSWvU-m- z-dJ?AZGJ~e+9-Lw7DM=_x|gr zaXr$K$B>XuD(;6z7rVw@3@vYUm7e9Et%e3VLEf#p3c#d$bv2u0zqse`=|MxhGXvYV zs;<^qOVba7Ze9*LUjO^=T*~E8fLn0ax7|WUS5Sr} zhqhEx%+Eo_ZmWv{qk{YaN}z%rEMF4adXJ|2p$SWGQ}Oo&S<``7YNZ%Wg<|3P5Tjq--LfeAhR5&`+mli}W=XSiYk#guh99STzi8pyYT>{8ssYLL zKnxv{$KB)bNmD>{_ddvYWNKo{b@%)`Q*Pz z9D!aw5E=LbRKCG%uBZx^3wmb=rGJIkvgoo_gGO3b}MRUSFWXu}%^fCqtXH z?qujo_~~7F>Rtrutn$*V${YDH`R-^{HLDZ((y@u%Lfm$E(QyVtrv^>!6q zwv5M3wd&#em8`kddy%D*dY(e9NvA%{4DFSKZp=fi<7^tK%lj+t(0sDYq%E?J5jBY; zk3}9|W{usp!){NGrkt}0$WDQbwHR;$nOP{FRfJoD8u!@ToK5fD6aPUMO3xTiCIGl$k%+~5}9UYv$GjLT2Pgrh67XaiJ`{29(3h| z?D{I;?=^Mw#gD+;fEA~Wl7u)%Ln|s|rt9;Pq_!2n0fd*j3VHCGTw=zoI}Pq48bV)v z69j=cLOah)0XQEb1&-OwLwbI^)o0dSWHB48@4^lFRc&NadVJCOI)ia_D@GoYO4#YG z&G~#1GC02e*_l0GNzp2KU>0NEHQmMbcr&VUZeKwR`&36Q!63Gg1?LSa-q#yZ^Bywu z153_2VB(SB}oc)bI6w zd!l%)nA%91dprHV*XUm}(a+h5nThLPaV;!=#}xlkr2oSjt)V6-^iJbnp$vaa+kegX zFdTn~zZw5po;m(hdjGfO83=^_wLJfaD2Bfy!oSY-Kd0G0;q-r+Sao72rTdtW1}@wq zxGF;nEEXb!p@v3;5z7p3K$eX)LD``#JPucQhAU~^?uj~6ysoRb8yG8Up-b-$okO9; zPh|W0s}xD$I5h?>K?aVU3Q%Sp3Dw2+ZM9G)DscHEhu@SUexakbt@dR1>1xIEjD*N@ zMm_C_)(LmAg4*EBlj%xP(znldIN)!)Wf4{>e_D9AUTC9G*-4nCC72yPq^Ku8v%ZPq z5mn=g3K(vVEBb7BIM(^zkr@t{-KRKVY+IX`h9a1V3_0Q>WDgw!0bqUhv*_2NkMP9d z*8}moohptiUYRT09#NmzsX6Fm_O~i}S5g8I-IsC+KVy4&{RgA?jjjXO{uQP0YxI8i z?_W0Y*ZBT@J^$aP@IM0-h=2hKK?_J4{{_zkuH6`=t0 zKOz+V4zT~fMJNz){7-!SSHti3{d@WTANV>mGceV`Kd;~8sqS8=Dk~vbDP%ep&;>KX z{e{scHSi`0DyfxdG{Q;dpeilO#uf!8sIj>uSjLKI-SFSV#1vB?=H8=4Y%;)5HIV?z zhMdCC$b4Hf%Oubh?7VyNe(ex|Yu|5~1hAM*q)1sTw}gMDp-Mj<7S$OYNSceiI(CC= z`C{#m5jAR)MfpWkW#J>i83s9Yi@%~SrkJnY(5q=!t;pF%P^fZrIC7 zRAc1i`LP<9SVPQA6|xES+~bqDa}Z6-kw!Z?ad)6GfFogP%ZfH9$v$7l&#H=TcwJHo zEI=`b7w-q>gFP{9FCH=rcqZ<>06bIlQe(@HT$aIg4%rKb>;UjSZxzEy7<1C~5@Y)$ zZc$?U#BXK82@GAf!$BI~%ZJ#R+>3|208T#}RKe+uR!f9b8Q&{~FdE-$hfEsZzYkdh zoW^aTV)G{&6v6QrFER8=0KBMr*|GU!x4f~}KX2(^uYcOI!CsHslEZEosTK?2FkYe) z`3#q4yhPP|0%)V?g}~NL$WesIf~y+3`~t@~T&)}83~)0sj}=NXsDNV}x@?29GIo;> zF*8x8?_~k-()TI@%Hy`Aurp%~3gBps-DE=~Ox#36LQT{edI8u3aRw!Dh$EMNa5BbC zdLd87>U6y%*cc<#f)FuqcSB4HA?eaSaL$0a5hleDOKgfECf$$^fR71V7}x_t@5p=2v1v?-V{^1a0NBzdRG)IxLlgn4 zbiHx_v|%PCh(Suaj=14Q;V?y;T@Rlv8TJ>axg2aCN9pW5_WHN`M2q2LIBD?tuArUq>~_IZ9xw@lg7uJZHdHZ6MZ|I<+@E8P4rVFsa~d=4 zODRg}n&r{QKD8`9eTB%D<6+*UbGWDSW~Iv1b(oyWujfjp5aLP&{ z)U*!qsdxp{5+xIgcwEvAe4{BAllFxxv*`#~+}*g#fL2BPqUal!7zy`sMFiH8gcD&c zW4n#)1;cxUn+4}J53{@n)r&poul)17?b{=6&sF{fZY!?B;c(O-iCNCk&WX+gp6*I* z3S8rlfj2xS91GM7QVUh>^=tM&VxCAXpq3|;qn8hA z#MBU&@b!2k*QeKiyg{;}J`q{~D-o_lr6nIy?U$g(^ z+;rSvt-s~7Go%%JSteVgGmjO86@(S{3Ht);!utiZ1>*%WRs6CT_uX zmxHSE)5fr+vwd{tv!XiTR%Nh)vSOkQWeZCfA2Brf0#H9HXH5)D7{M88No4bz&zg^! zPnsX})S#}c;yA%kWmHvAMZ7TSoi5-h!&P%JDX4C#K3z9&tEC+-C$l>djjuFyz7-F5 zy^t@DE=MRAT~MKmawezsH@R*&4qn^QP^(_{tVk(tOGh8H9JCybFzK&eu4XV2tJSQ{ zRj*K2Rh3aCqYVI}d;rWMc(dRdVGZJPeO08<9zd-uT|zu=Kh zjWkdj(z?Vix!vHc-&6&NZ-Q0%C3VZ_^Ql9&WfSMJ>Oxupt9*lB@~WdU^S*N3YgFU# zf@MM|_^WK{ZAx9fRfksf8|*gPRJ??`EV;(3M~1#aY%Gq}LrC-w?NYiVa(hDuau@j2 zWmpYG2Y1)U_~s7Oil?AZ$D60V(8gPfjhvm$MZKJwpMso%ZJ>_C)aK)HSa{@QWq4)G zIzc<*vi63ihJ}ikf1&fjZspf%k=g;h6rEY6uX9QoXw4)JHu)AdyM>a@%DWPuJW1uE zhy0Je7A{7`c+urkMV2s8FJj^iP0ovi#LOkQdl>pJaeos(6uNeDh{igyd>0>l4k0#9 zHK(<=AGP@{9UQjU+oN*5qic_?Li;QKT1MGoR_P3wLT`Cllf1-5 zNyo+ppZw)oZ$!X1%-1X^`EhywrJBfD9sd2?yqt7t-~C~tlaHAqo6;il^)E+@ErfL=G_=37pLX#c!TC{8#8|Ez9>O$mFX z=QkaYkX^2uT9@!kh`0Xjn^x73Uf>;X_53Eg%{G;*aZf?B{9?N0tHG=x3H=ef*)Kud z2-_gn!7uz8yR|lfUa>WZo!@viv^6Mh_sJ$(HAou_jz3}>s4fJf|BXKWWdKBWVEwQ0 z1)Bv>>TtSSv>{b)PDsS>_#eQT@+}cPm>Hv5y<@xmLkBC3FIT>PM5kp zEEZU4m-#zr8bK~9u!8KjXn~5GruL{*prrn|Om@Mm*0L3{`06GEKAcLLK9f;kl4^F3&OIyl{VJ%HQ0_(-PutV`^c zUeefk*rUfvbf8Q=9~YW9Gg~JEt>~fuVr79)k&kJ?(k?L=PgKzEutx6rQjtp@of`%! z@mvdP2AV-n`3(6iCdBMdG+N|uK1*y{JC=j-I?_e`gYL(H|HMB1YwjCx6$oy~=n@2& zPZCTDMO1Sywk36AHRTPbUCz!JA}~JBc5v2I`}$};waQYBejnb0VNS~hnS~8xJJIgv zA#{SJiZ@O>rAnci!+7zm3AxU!u_Eqi&e@;PrA93`J0Xr2d0K$b=Zh6LgI#lB@*Qw2 zu7WX=OsnA;Aw-khUTRlQde^-3MM zA0IUR>%9Xq^HtQZ=D*`Dq@29!)P`gh)zA4oQbzGJ&M-W$DEM#(Zj9p>>@+F##8VaE zpC?)+djlXl(|FfV>=R= z$!XU#t(#y4V;!N41vlvuJavBL&P3#r$xWydt>X{&ezok_tsmi^oWYqHmN_x!YnQFs z9MS8m_f+(Ne!w1^s!b+kCS}YP8!WfqNcy;L_-eeeEKvV=sIn|rHGSe1=QS5b*6_ua z)W(J(k^pzw4AyczzwyxK(XYW^KtRkRbiD|_?lV98NY*TeQ;__u?jy)aHKdh;Uq?~k zcNTo%7e#LI!6USVL%M}yx=igFd6)9{TD-mC>J=S71Qfn)xQ)DCw9>s?Ggy{<^M8Ee z^1Xa;W#;`MBfD7Y<_m+@tE?po`_jKuCH8JH+kVtyR1v1}doGhq`lG>S{I?HNu4p)D zHXU^K5w`hCB!k)C6gf8DvpNK=?9tH;P2%#OKISa$Az-JoQ1Q^Rkn)Xx;=Wu4d3m}y zn|(^vrPete&fq4~EzrRx#9bR%29WU5v668P8M1Hva2VFmbg7ZMcvqgrW6s6pqPQUa zPSHU~tj1PE<+k73DQ&6htsLf!Q?}V2IUoM&?1zpb!+Q8^kXvJ|MAO+u6HE3i0Lf%< z87#xiB$ z4YtCzBt0lA3WbhX-!TU)Q`57nF@?D z`Z{ok#WLQ=M#kZOexp%R$5|rQtg5TDJ0nNFG;B2T&29gPlw1Y1i7LNVohX@>nlNHT0tA+`zW$W&Q z@}Za*Q%kUmE>d=1v6CtwDMOaDEz^hTRbkN^tgY+5gP2zz3u&X#rt){~D{V`<^lGGf zhB-}tc*jI;x~p%7)oQxiN4~kwuKUA4@`D!$RtSNEkE|(N&$kQaEBDvMoDaZIl8J`$ zh%s0Qw`n0oCWs}kx=w;3n*CgN08$&gn4C7x;1FmWUJ9(mtAjWhWe4M+@{+ ztzN!etaFq|(*0%ija5)NuXX)$munp*H^uOkr*u0j`IdVSl}UL3hDv#fB7t%IB&H*S z1p!@}O(qh3V;AW}IU8ZDwVPKpKnNcqY3u@Z9#z4TeVx4i6lL7B-o#Vd%l}bHA+UF= zWSFM%IMl2w51!%99J~@lU2-QU3)?k~(;01#raAcN*0}8|pTm5ltqmd+P^BMKHZ5(O zrgr$P^gg?Qb8XEYeOWt-y{#6vzO)!UAvaPEt?$z}MJVRSK{oEN<0#cyMT7WJFBoj+ zRcL3Jge_Nd@eGw)Wks`n?oh>p0oWKdYxI3WyB>`OhZ=U4Rh3M`Mz=4;@C(R#5tZg( zQfl@7_ij|h!32dW`6pYNEyW7xHznGHWXFN^PC6EO`VL-hBHz%g+&=fb?B{a!M``ua z*m|=~@58=@(ScssMrcL7c|P|u3Us#Wk1iD;<-J83q_zc<#(OZ=9w`qo~3+_Dc)RB(&XQ+NKYD&Oa@!GSZA-;D!sB=fC=s?vp($ zw6i(qzs}jAI`@RStWo2v&@#mgwi$qVJjIJv@#&#jrfr~DR_`hw8(b;WoUi|Yesw-c zb?Xl67gK+g(Ky0G&swe2ao`P^P&FMTdpSrQS=tR+sIVEfS;1*&d|@=9Q~uI9^xpET z5Hi|M6qKU(NXv~u_s$W7w4934?ZtXTf3|A!{yOs<4L6PWOYcVB%DwXq`YX0p+OyaQ z&OG4kJ{(n9{K@R874JKyZC^Q+DPHYH@St`lKkq#Rj_))xGe|dnRrs-qO8nJG!>-oC zc-hj-ZkEN@E!RvQuJcXCB0Iu%4UL=jZwUYqyxILKRxx$eo%7b7GR*+*5y$9vweDt9 zoU`&?D5kP5Bd>ghP0;Nqnjp$So%L~h8`*fbYU{X8H|;?ej1+6{qZKIo_*S>r06QWJ z`T%MH?w-rWjGV+x(Ej&=B`Zpe^$|+;wC5PExl%0TZ%i)s%9hItmelv}Kga8U?r2~DPO{VgOsM2+^M?fb4eNsoLi)FMAHb^vCH+sY{}G+Ozb*iWzEc(o3f)1T?;y|tS7|Bx2*8?cD95Ua3jf%@pvADWTklk_k;0-)B|#_MDc}U<%eFBG7JXWt7#f-%;&$QqdMdRx(P5o<+*IMnJq?KRU z7=I_%?mbtnMI~R9l^{y>O3ycfd8N}~nJYslfssi`f8h$<^>7C%AWngg-~o3am%R{O zS)pf$MxUD0s$^4Rl&Y0dbIh=ij50*Qty)bg*RjZO!>~qeNVcra?;D#GJ8uoPPXHm< zLBqXrVndkLg#6k`QU!iN<6DguYdRC znuU;nEaG!oA@Xx4h2WaJ?Ts(eAEh_t(M!f@p6n4?U8qQ=Tp zm#!YKa+y?!y^ahHM{A3h&}tG%+_gw zU~c=hMTc^StcE0*r13ei?rWsDm!l)m>D$QYjKf}!84yJxJsUZhCV(xN+lWW z(MJBkr%et#60*gBr&%U%3ZR;|R3np=cqSdM8aQ)~mx)6^oJ5)Jf^<9w{jf5r{JptK zfp%6+0iAxAiPA(K0rJ!o_u(s9tAJU_g`vhQpzP!#eed`T;&3{fR&y%Mf@z|+3^Kmr zt0NF#UMD%89ak5XlzMKpB8~TfWnNui8$y6rGUY){$+3jl$2CY_uh@5~x2ndt<{pQg zqpusnMNGlTR;(ro;uUvQ-(^@uUVIlA;{SP@QXjVvJH+=Y5GLnjde_d>hU%91vEz7O!KaZyc{nIHB(eyyz)#g-AA)#};<7!j2n<9cf{O z(tY9?O+NY5`dcz1_!$r5VI?5|oQ^$U;N{Aj-U^;)dZH?TF?l6W^A7c1k&K4>)J3wn z=%uwN*L3Jpz$xDtE>EHXY7C5Im=M;V!*o&$_BtVC3=Ei}nAUv#Las08i5cL)E`{rcd=fJ?I*6`04hKCA`bHtuYR6Zy`}V z+BLOY-Fu=f8_(2)pS&z}Xz#=(7G!WCOwZ%L$~Wm3!rFWvMsb>H9sOAP);DT3s)tDd z3+CezqyHcw9%})4)UasbB9!t#=v;$|A=hX#^O)Vmz&4ZtmEXX-%TF{(CAf>pvPEe9 z;yCWo<}1734zCx5tT4s0blpxVomjX=FKUdgqC{Q_$&b`;WDUR6RZLa9l4sx$b)`kj z{^!Y)_@1YACnzaf!cw=I^CJTr$TExGlAnRCF+(|1g0xZD#Fl;SWqzfV44(no;jk}5 z)b^DsFiWWpXWUUblQi4aZc|;9tH|7~A{*;SDzy^a z5nt|h%N+Lqvh3}Y`epvy=NIbO*^eQsO*&slnqoss7%$m}YzFoTa5iNg;9peAu!n_{ z$!$0nwuUx_XPndVOep3;qHI)#9T_=GZ94G}f|fWUk1`WPqL5{s&Fhq|t_RO8YMb#p zj6Iu+co?d8pkp-nPDK^vY7@P$z%UyjgK||hGi>J7Gto>gfw32=VI`y-+Ce{0KQAoW z%`%cBkLM+CFbGlPt%yM)7$ZXS+0d(|?%9x)%t%G1Y9CA;7Rg}hi?%v)FKA+?6 zhdMH(;-=m++Nqn7>bpKRx!peb>g2?@eYr1cDtSS@wBby~iJZ~1EKbZDC%$+6Gk#jd5>UA4NZ)mU z-HGJ9?do0n4@}?``8e%jHINzb=|BZ3%NSpA2aTh@%jB{%uB_fDtXnoaTti1H{8}c~ zqsyafJmLk*ck$RER@$#so%fLagU#d@Gq}%6g+|R^Y2b|6>|RI@l`S7}WFHXn>mhrj zSoOl6F3a+0&Wp^~)lzr*Lv-C!)^(qsGwpCwtJTi>{Q7BZ%Q25F0jf&1=RvK*gjRa* z`NQ7xLB#i+lLR)PGv!Et*gS?nU9E=55BoZI%jeP=EnAur4}*@!-2WQ1ujr{>nivIyQG- zeoX-9PSse`M>3?fSw4G@rzzC=IUzgDbfgzo!>d5CW??v1oaqOINI0)bDSHo(hiOVDon^=tL5}ufGpV!BD}+0EWn3d|j&{3gPF{B1{IS6p z8P31A;X_zQh1xBAt)E|ySSQLhRU^79PS%iPl{*F{LRW5qfX(C8nrF%3G9`VkkK)95 zk4UKH)bRB(YByax$ew47H= zjHPEj4Y6E+SdtOncTT5n%uq1j@E5`IAoSR~{LOm$b6y@?1LN=bk#`ODuF0}h@VbuA zxMrtUdg$_uHj(^wk`N6Tm^{E-beN9)go@qt?uUTAmT54vBV(oD>x2g7! zHQMwU~(AbFG&whltzBRQ~tnm{*9!kb<*&diSj>6dO!E^e`Gvr zz&Z85knx}}A_(VK99k&g;`>|3quy}^hGKTyd;cyr?bNWp4}aS5vrRvpdH?^W|K-#B zQ&9a&U_$N$LM6KM?)daVQIP*!VEPw6z5kKG1OXtuf4q8usHVRKChENc6X0-69OFM; zy*q?oL-H5u2>lm+?zg~%2Arb*J!m*JP~Xg$wYA&dWkhD4ym48uj_uVsb`SygO}PE; z8&dfo^@mo+?Bu9KXr<_a`3UhGxrT6&a*x9&>|iIP)1lw*Ebu*sJLh_WgviU@=t8YG zDNeyrA~8)U2fNinANhoXM%+e@m|B$eDplUN^|fL;9oru+UlXP%?^jtg%Uo> zZyt$>->wJ@X?@c*A$Y9H#dGZKd;e8JKyF}2oA)N6_Os`Z|5rMJk=bWU^lv6c4woGc z6&hjFIN+z%oGZ`RvY6@F!N{0e~_e;0LnoWF=HcBwb zNqv))FOI$c@>4clV#L_|BXNl=G5-ip<;sTZPPyuX$8yS$!s0n?_s<~ILdu2=m{inO zUm!!v4PJb7NH|GuyoH-!p-07hak{`Esv$B~oLiz4eOUFgLYmm03l9L1v2=-ibXs{!*6Jzxb1mhk$tj^PRPuco93BZqznglc*z}Os*|X=4dral* zr6w1Sg2VuwJ8@-4ujT}c^~u`BpU>%iW}kdrGezG69y)?DI;8TfjDlJHj88=djE?3a zIWv```ps7H8sUw2L#62G2a|j;Mk)=Y68+e33(J=buUizCU~bgfq+EUa9N1qN8K?|PElS!YGb$0JPCAesd|yj$V`*LecSLA_BJO4h+I$#m+UN{43qJA`-hRrHvD}Zt3U*ZgpwF?m{xgX?t){_x@ z#PYLzX}rR+r+a95Yr70XN2to6w8!u&LaimiT%jKn$$2Zg>Pwf^UWvG>gf5R}SX0zL zhr6ED{z7BMY{KA8;LqtSHV(yVq-7{J)Trk3*s_JH8QiyXGd8kT0w^#y~Sj6#&Cob zGLy>aL*z$F`CLelC(q>6Z#~XA>_$UNeOF@IUp(~~K~p^Rj12j3za(fKyL3`y>Y&?bM_QH?&)bHGn#cQ zsYxfz7&LO`{7vKO;fkqC4N}S7BzI`ji>P6<8Hscqre*U-T*eko^eh!T4NJGH00U zl^+s58)OHy3#n+^UaHWVeWno@)7I2>ju2{euuX?nka<#Jak+1^i$L_5v&;~1`;Vg* zQ3M6=b3#8@+JpL$kR7n@Rg+1t|h2LW@*2yk-Flx>95pl>E(XSwo}nr)&(OCg=DE#B4w8v$RP3G$}Rbzy_mus8hZxiI#HVb%Fduu2fbHe-4}m z^yDLtjDSc2T^D8Aq8e>P)frd)zTEo72&w#x$aeF>-7!&69oth8NL&5pS+;K)qQatyxyn9SXIUjq zb<2ELTQD2UDVO=)T6{J+W2is-%baPDo{V%| zS5O}@Ah-@#&j@S+pwDH1KRDRH!xHcA3)WXv2NE*4yH)TwOLri7geo!j=1!Ra@q~-b z->?7d0=@A#Tfig%G#&E$03yI30sjnJ@J|{F28ROsLgE2-{)+~Ip@^vUT{OU8K=jhv zMFTE~p?G%FU_kl%XmUhl{cb)agc!_!4-N4TdfCX|_y+5yZ(-0Ur$lh^5$jR-yZ*UlDU%gNyYG2=A z2svVA$ldj#AVBhpy|n%9gTv$iuamuea6nAlO#|lSJ{lY)M@(f&JpQb=ovYn6pnXK+ z=+1wBtxFghhS*yNK-)KmU}y|r3fuc#3=qRor!v{z2TU)@~*tgDs zb-8bxf#=4)`vI4O0hA*_hU@9~49A;jQdyJ*1t+t)V) z0=AzISPFaV0EV8Z7TH}M8V27xpMggXpsm=)2WTkv(vbV^2axmxz4u-sA^%VZ2EFfj z0PyXr1E^s?AE3F|J1)Ruh?pN`SKp8*1Y+;p0M;}S1hAVAgWNa&kQg)&IBqu|3TWQm zzM)_+AYR#CK42mJp}FHN0qZZGnus~r$y)_X2w6iH7k4lcSTRIXucouD%TA^$;%8ML zOdS>uv&G;r2pk4!X=?*P*g&kTq1F%^D>;~r6;#d&rbzwoS$>+}-Q0nn?wub@;3p9+ MM=dO@rl(H*fBD!hyZ`_I literal 0 HcmV?d00001 diff --git a/ros/src/vendor/grid_map/grid_map_core/doc/grid_map_layers.png b/ros/src/vendor/grid_map/grid_map_core/doc/grid_map_layers.png new file mode 100644 index 0000000000000000000000000000000000000000..ef56e52287b3ec9d04f231a14f60b2f5fad37727 GIT binary patch literal 69502 zcmaI7by! z@t!YNu4HFtX7W-Ffo+d6905Nk%Qwxd@_9j*qY8EEu-p(Tyf&c(4%_j|QH*G})eltgVR+GPNSiS6> zpuGVAK@l$}6Ej;2Hwse=t4|I>RA=qoR1}}gg{ZW+6xkJ>BrL2y$@;ihsQV~snEBY6 z@tISJ2vZ1p@k0l&w{SC|@UpjaaOL+BqWWiCe(3ez+iX-6|1@#46{7l|NogypP)Ins zSWs}WzGpFG=is2==4R#K7^Y=X+L17b`XnK0dy`W4wFE0&T(K>h0iW;>F_NO8xH$ zk`}IJE}xv-J~=v2{2kH6)Y08dhzdH>|5<{)(|?C`aQ)9VK{t%e%fyL|gO&a7lKyR| zsQCZi)ZYHTtzF&JEdK9&|JQ+CHN2fH*wids9o=2bpoFue{`)8=ehC)~6E{Z}4M#`2 ze|J&E+R@F?)!NaCLPDLJf?m-~xZiP0NQ+Bya7b~AvGeipzLRF>W|xxS7IeC&_x zXKUqrHf=iAU^kL(Vc)!Kki3wyN)twt2uDvtiA68)MYL#2joyCgaWkz8(c+KXBYk+E zEqQn{$eIG{j@GW|3sxb`j$v)`tyDU#PBWhE_v+noPwD)}HENyomc+34`XoBS{8m?a zXTP4T_Fl)!=y6d(m>Y&Kc9Kp`PIPJ)1m3^r;wYM%$4rRl&6}90VXgkigc%QQ;qtjS zJyH};Cx5u1y}iAm;hhi{mxut5kdQmL9yKQ?2ht^1!AuWVS~wgUCE8uq;%V+Sd*b2l z>4_N^t6lvuT$~cK@b55os>3>PI_BQuBZGqx3r7~-zywb_JHG%Ax{OJtHz=iQ(bg0N zV?0DeE2Q!9H#ZvmC%5-c0k5YMtiJhR-f$pB(1N?WJ9P;)tb~L^%gP^@>)YESH-2v~ zizF#LLaJe^u@s5qk)5rrtyoXX!S_NOd|b}wrc_x2G%!zaP5_ZPE}NY3`T1#+CfyV6 zoH+-?TQ)vrDl#KIJw5!NEp0>?k*N0}JA!!M?>}E^wXMOjwp4BG+BiDaR#YT8218ds zB>|oO{hYjT!EJ4|VyrSN^Dh`?f_5)w3k&%5AsR96jQ;*umcjUVjGQ$L>mG+DBE_%2 z_ce-)G1<~V5coheeR?b;I9M2wsL7VYOWJK@+D-UVahtT!U5|v=_^X@irWS#kuDwG` zv+sTh=Kn5goATVtZ(d;g+6RE85SyT^tbBHSZ0uBkILV6e0NoJ#6MOq0WIOKmam)Ip z*~5~gFvfm(+}0XL3tC*X2f%w~7I^U@eeTF?+)S!tFMqS`gEv}e=;%KXR-d0IY8^(j`H%e+q}S3s;J@5cHQC?)?7I-D214ra0-6r0QxX z-j4eE`sOyGn4h>*S;4ZHP70pNlLtRk@o_x6$B-$czlx4h#h_tB7oOfvi;FTIuG9N%-mF0@!{;?u%V?%=j4Vvr+Us*^>Y*qe7txI`irk}YDW}}C>E17Cs7#2QyC4A zyq9UK)=fMN{!X~ngBLR&Cm5*^>*c$XQ_q>vEm&B0xA1Wt>tD^ySQ;1d-pG zJ$j*`8%s-K1Au&Day6%&gJp)9prL&izA*e`8W;)y5RO8I#jx%yNA_FIH+GDjHZ?2Qs5s z>8wIoa-0N{^okT^;%;wm@reO@C0&IA%##G>+t02iV@ zfS5@GP-K??h@2~H`}gpS^r~mW7|}~HnpzNTtHNiYBk6#m2eKzye$->5M1}_U%u8nm z0ZR!9;4fBxh$R94xV4$1e1VD>mKape8~_76KYjY-VL5-4m7kwY)Xw`+jwNitvV9!v zw79Z->;YviUkQoOI%Nvc$vDD*&&RYyf*_~&tz6fJwy>2y9wWH2I_61~P<8qA8OoU^W8#yso)=q-tE>8iHbwO#({pn$L8AI0 zi_6QO^J{-o(>&;6NunLdFf>G_n1#TE=Qa+&%veS1%3=`w`8-ThZsQ&*E{3#MI8!Wl zuyB95BejGr6~gT$8f5e(nv%#hd^MaR5WqNGqdX#txNJrCnY@a1w~J>t!AAd3AD` zY946daVmHad+20KM5bUCOXgr3DZ~KxBOI!pKKCsd=5;T;nR90aVgg<_As|JVo zZO&$dP+p@lU&*Wd#Yw7?hz5iVq)*;Hk^(aky$yqZ6AzR25&F{70tZCrD1Lj}5@SFS zje}A?@y7){A+~k(n}|gB7(9V^{^frJnSpKE+Ref8BQvqr+qZ88XDrIYmwoK5JX<6N z;4EX{pHO&dV*iW?nC2OxZBUw8f*vWl34XC;&5$+5SZ|FkZIbfQ52!6jMB* za%l^6J)x+M+uJd0atTy@a3}`A`?N2Z`XMN^G|6tjLy0xqcoq$qUdK33#W2M}P&}T8e%+Ezgp|>-s zmZDe^vtgkcA+@43G8)L;xT>VcI2s3i1AziWRNoY3vC!g`cjwZ|L49=5au6}Wk)mx9 zjL0Q!oT@6@ExEBcCjy2<2sQy#v1oj3Jizn-UqEd6#N%J$?p81q89TYy*f>~PI(T?I zZ7n`M`7tz2S- zp-k9)IYbbK=`l*u2%(nmY=y&0#k;7|F>%H!FD@9a*%W)DkF<&H!dzD;UKg!}EH+q= zh^Q1FM@ZnHt!sEuefs5h6uuZ?u_y)xIyxq1y@S#TX@3c|qN3u38SOuMY9KW!9ddGiqyG+*VRJ!}3OnYfXiLLB zoQOR;0TD4VrtYrMv-l9>H6m6hWAH7DFQC;>RNwGQ&YZ$`*ZcGMAR7S>OoO&&~nD1ZW_5kgzV+e!`q7AsHzt0Txf6M;l4r zzuJBbN0|cG(7@nlXT0D{{`t9cFi~%fLmwg+$Ih& z!O|ro`1d%D8me~}5Ch0EBWhtCHEPM_gjTOlMdI%+t+Q5_D8|_9?!0DcZp%azQ~z8M zBG!X`Zr$NVeH@VCYHmLJhq2iz@n7>801t|jw6wHxt}UsE{^0ndCj7eXVdC^uDYB%q zGjA99*h9C0%~|OHLp~2@cdjao0kj}KD=vt6_g?qH6Kl4x7#8IWdzw@&zreE*@rMxF zD2G%++0X4c8?LlBDvTOSCfe-%%7wuow5N@j5Ye0^nPWX#OARn@T% z-0vVstC$E=2R&2IvH+MfU5HmP99hmD-FcMY@up@-L2C=}hvAE{LW(Sg@J(k>Sxz#Q z*PDFN9wYb;;fgTCP{;$0La;Ka9&NFrEQw%&<>ncXUbHo_dn|Ps{GCDOH{2dg2*SqU zVc)8tk}5KM15_f-uSj6gSkrClTAKbbL4UminG|CR?bV~Ky=tKs_rZCfvKY zoZcf&PR^i@<;vG9Y|xqY(H4Se&Aie?-S|nZ!yWF9HN;V9`rwg6U{ZrR%kTBE*IL!f zuzSLvgf~zqBGTRfTIHFTN^ysmvzG&`Uhk`FTz;$t5w`jIT0o8YU!O94j3!CectJc# zmlql{N6(6P*%Yc(0pPU1eY{(m?;S8^r-ecTrVmc79JuwQs#QqxxA4c{61jbrMM8)6?;s zWH*5f7ULQ9Nn1+M7Qt17TA${pcQ5a)`1$xj{CwmuWLFGsBC^4fKSx>fzZE7>d~9b3 zSL!ObxIb8_voK+JE#yqXKv8K9Wy>I85G@N4%Fn%hzOrEWAi5Ew{2n3;)JTr4mMoPh zg55*&S{z6K?Wsa`7Ijg=*%Tm!C?ev8!5a&eKH5R4xI|QBGQZ>c@gdg>&jEv$ko$D} zEXkH)*a=*`vHn%Q19;*hc?yFjv}B6qHre5u_@$|Sa56A`^v3UkP{j9(^v{l= ztvvetxK)XYN3lk+0QnHrDH!!Sy-xMWP-L6UPZhceWO;|!rMbwJ-xFK5sa*oXXq(a` zwD^rZf|ca0G5z1iiFlZAO-f{<$%{z#gq?q3Q~SKbc!bc$)bGk`O;wZ%ui0vW;GdhG zKt&tg?JWL7=$%*aWDP4@ZB%s$3`fu88Yy=m4eoH!bW%|fWrlCz#?r>j47ECi#b0kt znP_Qc$v|5_GcT(XvS@}z=p~c`HeC>B>=iHHIXFH(JU%`+w84jp(F;V@;j2bZL+DCj zUCyL$Nl_&J0fV<%j#61klzyMC2$)I&tuXpmCP)e-+K(zcFBwY}ZISS$zo?CpDMc%q zKI{P7d78SQWitsbU9~cpZZ3h+M`o0hCgnp{NGRjE-H_V8LFI3bJxt{8@-RfIFyqay zQ$|di(J7M!D)fyF4Gnvj)yym`%*=LS++iRTb1SR2E18ug+YiJwk@z>w&F?MxhyRI< z_(I@-!CMi-hGzqJi(5}XcNR&}M7Eu41Xw`GL`{uD;<{ngoX=M{{#Y)t;^~8%8;>Qk zp3xiyI+XCqY;C2iS8e8WSsGR$mfRdTu2^a6IpDKoy))k_Nvm9Ua~~ zEGAivt*nGXHCNa7rRGYl-4a}kFc?A6xY3fMy4;zv?2s9A)}@7;tH7N|ce5sGU69w5SrM zKv2|%vNDVZ-j$^=)?9GNsVC1K%cFCHqUu-(7{M4%!&X4pfh zT$EY7TtBnspF-luCAvz*!jE707(zwHLMo}pT|1ob(o%{cei?q;?S#>G5&cKDwy5&* zM^(ap2>1KbcJ;BbXqaed{4noY*C58De*=gpiZKQxg08f*G(yZ0ke5(?J*t`Q3s+I9 zuJ!kun_JJVQv|A}x^MR-eIh#EPdE?6F1e)~oiv2gzALB;~a{&&2v zy59LP0B+pX_e(xqS;n6V8KTg5$#4>3sk`O4y?vT}-e2>u>lAG#Wogx6$o7<( zPw-a{rRy%Pt*o$cvmPHDH?Excbv~85`xp*e6=Hwkgf#&|ncyZPfGkZ{yYlVRju=|f zW1W&R0?{gC4LeO5k~ZWe+RN{)zU0uYrKrewJ2@3A#T$v_7SU$v1eQdA*B5^OiWkA< z?F<(cg@gkX{2~%gIX42#?)bG?LMGsoD7MqUFT{Dda-^SCVVlX341FfEeWTMN2H`5q z&Wd-qL=GC`Woo09VV)4LB_!!!eH|S`UEsHFb`eaGBwz(zFG)J^Ixa4hnz~;iROv6C zaC~@JSyxi=H>?FONZojN?BnnK<1!I4_*~2^O6W#r;5_1jKDGG)tRaZrS_@<(?;V#QN6~1 zG|~F+>d|mmXz9qJrJ>y8Aq;S%0Op`Siq%|71}RST1CYLpi^Gd|f{#VUQDok$7r2Hk z0{qf4ll5q!?Thege*qhbu(B?wN+N8oh8g~~_%miKCPtQJryY-*Fb*2GOq&DAXH4G( zU-q|RQ9q)*IWX(Pv7Nj$PV@-eLikCn<_fdsVC6;n?93pK^4T^Js3k~QN zNwNIII3m61(BkW54!83D>SpX8VTJ7Ad)@8t?OFbH4|jG3u6A%$Q7^?|GIVSYISqt_ zI)#J`3=Bx~^5Sni#$S{MtQDr;r)6t2n93a9Cv->&66ce!P}dL&%)SH0Q`*Kvq%E2+ zx@5BPYZSaKYewQN&#c7B#GW*1SWGhpO#Z9o{H`=`p-p5&9$i2wWsdwTCE^6>4DECiZ+9rr60qLg zpeq*)#rGtr`(Z;vS@EekgRcK^_p!jpERdak^*CZGU!nZ-m~ChPjZ#!yT@B@0vQJR1 zEvbsRsj7~+M(4);M#hJXQs{k&$maEt?{}Sdu2?-CpZfrzh3Aa`XO;q|BeHu^>#cRt zrx+`{02#*K7K))DCZq#u?YF`Rk$^GUau5c-)Dy3q2GPDuGzn}#n8ub++eb;qp@XC# zM(oDqR`TB{YnTCH_cSxSoO?MKN-e12DXZ9A}K2=GF{gZj#)P zhXxDc8cLtokrII)^^2xtK-n=@{;9Jj-~~d0YnauLKs;d|TvBm?MItQqMD~CifKT>W zGhc)q398EhM1EsqG4k@R@89QuFK~x@r%jsY!d6b)_{S~3+oeGLi@sX5&$Ht7Ddz)s z1INd9&@i}g!SnX!>gw8^pCoT>jXMWjp+CtcH?m=LI^csEur)W~xQphzXDC~D$?mqX**W9EK+7vBa(Jw@BKXSwy2$ zIxsEy&K&)brBX2_DW-&&m+TfFE|pAdOWzlf3JsH|goxE2ms1}#-3(qnFXAPxg2+S# z^vL*Cpu~+v47q$S9!uXCN;^RU8EReOs-#hZ$PZ;GI+HuT$ZCv!PR0qh&V)F(Qq|aq zEkp%|7x)(U#Qf&(tKY{IX(1*icK%&FV9G%P7l!IL3##{q|`=ZZK@h^f*mX&V^i z<>bIlZR!~q=;D5&aY7aV=70IVaq1Mrx8*T)qJ8@8h%5`3H zzu&toW#0?z4w@5hn(tCshH{p&8pTd2DCnu7;rI|1`k?f3x8pZB$y47oN`KS9SWcW% z7lI1J_cgar(dSlc8yM3%ouBAc;UhJ+#%ML-DS^hj;dzKszXoo*l*c{@L)(#HjR1_y3cdaoXM$4;R z#`#?w2X>Nt9jT_~E-1l8eDa!D=87zJ{f_SiYR3mn<$ zay44>AD2pb(qu}q5&56D5aU2^^p%9=b^>UOQanZ8Op(Qd*17I@{ivhm?&9JrL2-id zY7EN~KSzs&M&hOO2M{`oe zd1vUv_f74R5;c6mI-fmV$orAhq?;vBkWA)+n%s3p>Ru}0N^45&om`{5N%(NnXuY^z z!nB~{Q7?H(^-yUMTt3vWpWnqVuztAE5iT8&U~&i@x1 zoB9u1l@PvV>X|>soY~XF(KVwV7KTjV8$rY)T+aZ#vjF`U* zmO}^)*80;p_~n>h^CL2A7~`Mo2eS?dmC&zbBs%O0~hvA0)h$#FNrYq5u0akiVl zru)pnJE*|6tf=oF#DTXb?tCO77*SgiN^8G}Z%T|LU1Zk^VgnQM?knr5FDDVq%A2TCn&>%sinz1r0x>vys?Ol~Z?BjQ@UIU#c`5|~x7 zH-SLJm&uB;+s70wZ^_(#TCAKP27Tj!zvp$r9}B;bCEV(0i|g zR2r~7d}R<-DSBC(T3VnE*594U74JV+8Aglp96ZXpQF=e6k`7#2*f={rv-%XVZg>|R zGc}s6wPScbpE#L*>F_P}elmybof9Z!)R)vN*jd@)yA-k?e;G}%vMy<30wBR%mi99? zE#rszp$x7PW2%wb)JjSAaPrcI4b`oJI~0sOM4YwAh%%^>5T#nT4@xDnHsoPm#i~o3 zwYL6N=`6DIQC@RvA5^JPqzy1a=PXj)V&V-WuvYpQk&h&7jnTt5@*`O;s-V2tMMW;+ z)y5A#QaXoD)Pg7073!Qm#ckuq%XLv-=#BzO)nK~~!Z}03zK(7*jWQx_{&eo>PcJ2h8^6z z`LzWO8sSnthY@;m-rSahRWo9aU9! z`ju?Tso5G)is%Tij=S}2z$K#wPXfsckEbxkVBii5`>U9gvqp5wg?Y%N25sFnsDP2- z^9;QS4sboAAWsf1bhM4U4XaX8=7Ldm5O~S+Rs(t4E+CbjxOZrY_tVH(dfxig8zpV* zl3aB1C7k7LG1$t1gybE(g3ofP5ezZ-wD*jr0kRrY9>X6rK1)$SF+%yvOL1b_9cIE*fi~_(TC~@_?t%9u0_1omWo{p|A z7BV{27cCN%6%W>6Nc-6S{71Qa{txr1ibb zS-^WQ@vy5M1J6mL>*I-nfETvzmif~zu%=_6)X;#?>s>f`xSl{w+jfglpgrPhMY!Yh zif2y#WxADHRLVr)Ygu=i@6wUs6zBQVgKb2h@ayl2K;H-A7X`0zMB(ezvWe#g13ojXY&ew~dG28@?mx(hQP|WUtE^U3WcfJVYcs-51we zyR4x|PRLf+RA0)vF0XybAAZ{DPH+1Rq8i>8Glh?^`JY>*XLO$O*lCNzKRsQ(-e_;c zWaX<)3K>0(dJg(ObP*d~Eo%wmU_{0HpP$Yh8S-^p{0w|3J3udZnIV?gXxpzr90G+j z?;oxNUcOmq$@5^@4n`ykT0Ct#s__k(jDXf~%+HK$pZi$S4Gw+O`Y6Yc2(?9>tXgbH z#u52sQ2~`4=9xiKmtoSmpgO^8v=MOfjWE_~p+q01S_%ngg>~Q5D!E*+pe!vTN1|Nn zSjvo~(Lm(AhO4oQPlqUsCh(Dyr75t9CuHwn5z`U7udab?9;jdEVUHqtaS$d$I_e8j$#qS_+Y$QQA=jc4!;7}-W+ z3+dgwxVZS;*Vp&dF|@67X|VirPYr)KJ|3KeeH%pVS)SZ3nh&K>*FMJc*l8%fXUG2d zefPs^3uH}T{X9NG*>8(g>`q?!L8zv)mhr0gF6NcBu+)auZWY%xnI3JFv++?Iq386p_vUqWM(B5AZVeyyw~R&iicWOc!_kX?J|G>zzL` zmE>vrjMtDs->_|fCnRZdU5I+sWpWFa?GGa=Hml#=1Cz*|I+*LsE5RZCkM}k{Xyd@w z`||qs^`|n*S!X_J$AzZUK9k{NCKE%lMUWBfqB_a#Y8chZ`%SRj105Cnhjeu6|G9I+{Y!GRm;@U~ z#TO96;QKKmKE4P!>-axoY5?>H$cC0_e3Gtg4QUr@Ey(+uS$UWal_4z|;2f4#jJO=+ zU#CG!v~E^T6C8~zTJl(Q#)MpWJ_x19UlroIh~GYlbXD)})G|&`6-g#JCz~ z3L4%eizCDT-u1x5z?{a=deDD_@7mEZ@qbiY(G^E*g@g~Uxr)OJvFy)791~-c>)f7jeM%4uwL$NcywPsu~H!U zm+_AR5|xEE9(j>6X%0{0LvV+)2+xjJR~OCj6M=l&=d8abu;JD8YMWM02Gj9UvXFxi zbcH883xqtz$pVNZ!Q)tb;_MPweuaeMDW7A=?&(nsusM)v+9k;!qW zE}CX>Va$9~kON9J1S{bBrRIWDT#=l91kc%&3h`QVFd_|DLCL+{YqCS_;zh0@z80@R z%4@w^w~}DdUCit(B3z)n6`(@5G??TAIl)SRs+a4)yh7a`+V}MzKj5cH;tV=? zxj4jdWm85t-|;hkC0sNetNEKx_V$Y^j79Dv@3=!b7pjICTv$88y1dE$nglDnp|1u3 z;U}gwM+K{Q9|f*1$9KDRTq(A6f{k7ll=qRLMHw$70jz76E#xoU1mjTL`ZJ~ z4|Qdb5f<_vhdS>N_pHdDmiLFqo+ku^53NR+#9Fr|y0L`smM0UQ&$&4yO6CJJ2QmJLtLr+U91t*PcAbqHyLZW~-K|N8yh{B`n7^Qw`q;1CiNQn0NBd7_mABomgo>oQ!InE+3*VE& zoVN4Gy_T-ePG2vKCQ;CauU1_=yCI{#gTfAa{xKAOr&9aylmt5XaC*N*h9)Wv)mEX} zOJr=h7S9qM{B{54$O*3IW!UB*-Z9`$&h7KqW5AiCHra0A%WXKOQHjvFY5>(YYhKjg z{ely&xs^xaNnbMBmZZ_mYb9kxMej19m1sD)Z??i4fx>qZer~}0R#XnBa8sYef zi3Uok-8MQ_)PY7A)~Fr;ZYbF=tiqr)xc8s2G0D(W5#Rjmby59_iz!T>UGa`q9)C+S zq#ctkO)L6pD9FyjA{=Oq_H+1LBPEcZUQXJE(wa&Y*-UXj)9Fp@@HA@ji}BU|{(eP> zL^$9VJ&ErG1xyM#t(&9QwkYi^Vpe8r0{$P&Va#Ib%FQVQrWKd^hk4Pt^01IxWR++P z1OUt}H0RBkclC%qozU{E_6Lgi009eYYvWa6&!gqsJD2xZC%t*e6L5&8C;LQRzWPZw6v_OthCZItgI}1roJRIYZdLOP_LpQ z$wx#))GN+R^%T}5g$ESQNni@i(tJLCNkGJ|92LdiKcBrl#rH;}H8J=TcLuUt_qZKB zd#1F6e`4AWfh-qc?0r*B7?c)k-F6RrUBWMRG<xgp`3583_bT0<{i)@4Q{In3XG5gDQ=@FK%FZBm#!0 z;9<^wv?51DwjK%f7rYs=1A%Bq`uq6VGbCYocOxvun-aOO$Wa6yf=>UO6uW zH?!21$b^zx7UJuzj6TC$cKLHHvJpf!lcn4!M=eV z5Jfe-YeeK;6sA{`5oS|->!skukLuT4Rwmxiy6%5vr2EF*=+Vl zn!Oc@46^g^@QiWS1Sc@P`6Ws}SLv62jt6e)>?Ad1uSdl(qvR!tZ$LoV!xTJ5Uzu*g>48n|Tyd3;Evwcly$zREN z{#9j&8nk)6pp8tWo&P$q5_WXfy0v!uG^AJ1%=0)>cM*1sfK4SxENL(e1fs53yEX+bhf zc-Cm;qx(g);cInoobkb15g()(G%WP1tJ`20n>Nt&V8oo-T?u2Ey$a^B56R`s z&p6uBRrKcQ)0xF$=5>}H&9h%ZY-y|jQ1rpXIP#{(#m-FyitA>7p`VCs4i*KN`6$p` zB1iu&$It{miLsZCIw=+t`&CNe@&k^pynaB-%o`gA9(}3QAdKhbTT{fIiE>vVQ)Hwn zOV684qO?Q`tdUW-p#?HSQ z@Dr|$d?LD9wn5Ck7HK^iUlH+9_xBO#Dw*QqBEgz9PnjNwm$SgdDM~x+TJ`p5rWQDq zR?QmDaD3PGK)Au=x5L9KVoNkp`K{cEzZ1Q@4MV)=J;83u+0~snew~afv^vN1r-_Z7 zUGj-W7B)3(>97zUzVrh9$~T0_>JJ+#wHk9YzuUoa2U|WgL~N`SVeBDMvIc7gr@_JN zFHm%3y(XWm&j0NalJ=s}lXOKul+3-L$eUxZ|5FvsACw{EU!S2V`^*WoXXiOs!+H%` zr#T3Yg2*9S;O+uevM?lsUz#NPlhH@(R7kO3;RnWG88Lr$T8TF#Boes17loae@s)4m z)!@_W%!5og0s-$JswzB;j-+NUkOwn7FhyFqc~4c?AM#&RSi~iE5Bue7Z}0s@A-cRJ zG~eObKD(22_zwgWnn;Q*kDl*g%9`8SIs^oGo0xbwIQaPZm;`iD2){5keP$8I5;;Cw1qwt}2~Nnk58hJw}?j*2fWElq^!%F&PuM@6DDFXCPOOm0XH>AF6CuyT04 zlP|dID|Y;jDUlc;cR1+6Q z-)l4L-b}p0taxJS-`+GbrIMfD_C4o1vbf9Gj)g!Ey=T(e=WUFYS)TswC!JH6mYI{& zvm@BhEiBLSN@IS8xoB>Fs4M#*q2Qj(B}uN&4I37-F|}#>IY)sptn7e!dP>Vt&D#<- zHxV!PeBuqMp$<>bH-+{0)8f1rF!X*On?rJX83ppN{-R{$5mtk=Nu?X8W3+;!;BMRi z5@pThz4GJEszOjaUtY?-hTI_G`zJW&a)`23PYMM-cuJ})O(xnBI8pjLVS6MxSC%5p zg(j@CPFGn#Lor{QPuUC~=dbc`R(#`7m@jzw;XS;o{s~R=aXc2<52^u(o_br^2n;S{`t&}a32SFl7T}-&)hM8H znEU)J1R#8PfY!I+=}a30kEARLJVjUiiJ!gA=cypz&p?=hBVzwLBrp2y10|_0SS<~M zt2b>;un)>`6(nhT3)3607a_ zqjc#d!i=b+AhxWVV$Qvj>f1*_(fXN2nI@>jLh9-%+xSC0mh6x4mKGx4BC{;4XSH>S zexixFYUNDZ%`TK{S`}exlZm3Cc2&<^N3mg{+tJaF170W3-m)-PSI;*$L+iF>R*Nd3 zwcE>Qx#22+xQ}n_a3&ce7iMumXgoSk-#;RkXsRHz7;UwShE&mg<++jCbRDze$#c4e zBcWA^uH6*flxKt)-ZmM{sti*Im_^Yj=7hb|vP))BMGnlLW<|J~I_E_=rMPC14xr}> zANUi-NLo@Rbq&NB+`m+eCJBKaD1qX*#_Y0>Jbi%|RAlgW@7M(eIe8CEPcR+>n`XuB z6o5RZ3Xb#YAI#?mw<#e2Gm(Y2B^Sog^9u`Bf`$>u9qTa(Ld|UrD7=6wgnPeWdu*NI z7J^2M_WJ(iSqCnH9Ct3RN(~=RfhHVzs~)oiwi?u!BVGGyF}(%t+UYr4G+o8KuQ!V( z^XrBV0(nbHXFasd>V$WQ*_q7zdO2c7wW?LA(L1L%H%h$8`jEHWeR@m!!UW4mkvv0e z`U9!3-}OtVmFkW35{8YKuKC{<#hPdlu9gsXP~5*k3Ut;2B31SnQzrM+@Y2tHf5uDz zur3q~zY;iugo9#2=mhxyFQcAL`~t6t)S;VzJo1y(;4yrYs2=>Ssa_b34nR_>{Dcy1 z2y;0|KYLUSqBZyh8y*46o1lyRqFoH?dQuBt$aI~gn%N8U5lbM0t$eQ3H%7FWkT74&J(stU= zTq&XWq%J1VW%$C(_+22>*9gk>Q14Q482pr{QU3+~k8yx)lwJb@uT8TI?0MackD%|lTj$;{|%d~7sY0(rx56wV> z5W5H{s9zkY^=aU~kEL2s!xb5^k7-ACxwHhuao)rU#DlDAUNfIt7+PCviKqpT@{lSA$`!^7;U2! zj1lh8z>666dko%6y~Wq2201~+CJkCU)7}huCp)k@G^eUfuC3S*srIn4WeGPs*h)y3 zoJq6!Ryw?XSEl0OOGsO55!znD3m(+NfmWc zd`G-r9fs=o>kVFrZ=C(LJ+0Evt@T~!%n!YMtAI`&ebN>(|20ex2k-npPa1b-!q<<6 z(=IjQH_kkl(X|6)q}DIuRu3&?!>doZ^BYakEY9Nf0^K6tbT)qpy=#z0CrHC+qHOUQ9_)qY)O&z$JJ{Y1 zttME!~5KaguU`71Nrj6 zvL#`tH+M7XyY5sQ5NGx1T>kYCH58ih$lrwWOccZIGufyk{vye@KT$9+tG!Un8J1yV z5A<~M^DGLXk{}eNd*Jc|Au?isPRb$idkNksmRJPR?#T}9ZCH2W$F7q%)jawR2(DcR zwy&;3+^bJKTDY%4Sm43^rY=9Or<*^^-FMYro(T5pDGvfHQ{~azlhd^ z6Ig2-#)OTkQjA;5`^vOWo0}%(YDex7+6*HJq+xvqbz~_Z#1c(!$z?eo{5)4a&~n-( zqbtxE6fX)2?L`iT1w3L5^`k0a2HgUO5CVNxR@M;^H@x@r*t~jCr!;%Az>QcAeUF>s zJzz=;kP||AScTmHCxx}dQ~_8GXd01jA=4Lw0`Jme4PR7xN>$q15k{NnW`N22l_2Vq5Sx87pS=3PTYA|GmQkKEJc1HU8aCg4R4`a1y^I6-z66 z!}OCa70*mrbMH_>()X?uUjsgTw2g+n#12Z3bGI1}keHD|}WU&vJ9Y zqSl@)S+!N_T=VoOjG9*8Q9{2qU9Zh4z))eedhaOt`^tar>}a*`zv7aUP~^l8uk1|hw?ld+*Vdd@3qQyS3Nc`9ti6Qg+plVR<(sTiDwSF( zzOT%w3d!BwU^EVaJB#eW{}nDJY_SA@DF^O7%PiMB1nfbLa`~w5lSYOxFpvA*<+FG^h6b2STV{oR%rh1h| zX*6mbolU#DIZ$jnv6D$V$ApvB zo~iXLb%Df{b>L30Pf=PFi1qnTfky;)4%Q#N3j~p%Fhon>yum@v%*+f84T1Y%9c?!@ z;7B+j_$^|(!E5a5)85_=r-Dm^&*SRt&9&eBx6ON`pRfDOZyEIa<$#ynYJQ1H!Jqs)kM8tbrMCy-U)`#C#TD9$$T07@ z5T7tMysUZmOB1=9p4QmTp@Bjue&=`7=WjH<+j06B;c+W8z@rY9(d+e!OAtL{7cZ`^ ztUx#*Mh429*qNjtHf2mlJ(`*egibgpf)%&Of$eq;3E)-1LlB_ zV4DX_OVFMayh_-oh_Av>04+(IpWIT@LQ}~qO^HhIE5BfmD3G{@ke8EtL~M1;UyE;b z%zu3<1fcSg1`kv&IbJRSF1oh5I=8SeKRfGz2w{3U9NrWzrxw=M)OPpwj*JxdIvN}t zd_qwRCfP<_likpSj8hbMeIl;Dd(F#=pEq{fh^q|8J{sheE*kl}-;U(@tvd;Z_P8~>qi`>UI+&v}kvAeZ~e&l5jP3(vYn|16!btx{t-(Z2+b zwB{Pq<<`GebIWz&Bkj=t_Tg)5mF_E=+~T*s^STnO)S|gjNI$ri6&$K3(fun@3&ouk zCnhGQr>4=+h~>iqCJE|wb$y+!JzdtW4hvg!&}P!8A#TV6VqoDjlN|WLthhKqVBRig ztgUNqHo*HVk|`9xpv1OQu|$f+^vQH6vW;g}DHVDQ=m9#gn7$4hAtchf@f2VSaOas= za-W>2R5WNAyl89DgZI^IwKX+I7;0^8E&Ma@_snG!Nao;+pkX->xtszif*8@$*Qiz5 zTsD!~B|resCzlsDgHS8sfEImym(_@T$qKC+boI5)ZZrHVDgd$g*0!G&CSq%W*ph#1 zE1m|Q@bjPj{Lx=LLKMi(uFiqML9q#BFMtLJUdyL3_PZWYH5z>w?Y7X>)pZaHfp4rU zTuy=HTP{+|9q^0bGT~R`B|z9ZJUk4F;W`VL4R8tg6RL{uz(?S0{00!Xy)XK(Qco}0 zMuGQ*5I`?1ED*NfLBpYq1S*eGOG`^nPtQRrm2RWJV~Z6)()-(xN-9T{7Y!cTkihMB z6HJkOR?=XbD3B;?Yip$x$O?=Eq!upB&CSovO-@ZM!XS$oK6OoPKD)Slq78zHVz@Pg{4Vt+`nTmW-8*1rZPIu^%E7$g=eb z@EHVS+f$fczv zz8xViJb$xvl=}Mmj;)eLqp^rW={LSZqR;1phfFBf+7jN8w0`2dOJTE(YOqC_LTJf8 zUi`X-_4Re!>j=L-jAuHT46`lJ0t@0^M+Z?0hlYn;18!%(^GQc7JPU#QJ~}!o6A_LK z5mF6mqX@fO>XqvK;$OxWedB-b>{k<*S?A`L!X_GLElWYQln;#L9 zA|}4ktPpkuks4n3$xQkuR8hFR#=Uo$v(5*%70N859h_Znfr3idOXXAWXr1<%;o&?U z@gB@H?sYWdof#h=pPQN4Uwo_rPmNxuwnk~t*BbN?kTp1a>@H`g$<%DNm~Cd0rjCVx zVqQQ{s`d&6w#Y3nR?@|qf;yjr@Ip}LSp`C=%!v&SL~xJ;(4b6+;9}4*_bF&IK zbay8nOGgu_*mg3WOhva-IT4!Fh>H<)b+x;DS%{~1_gLVv5!>F$X4AXbM0!`R(-?Gh z8i;8?pW<-rQy5OhnPr8H{d9t)kkP2qHq_N-b^*|&cXpXd!3Z3Vm9<#O3(lc~G2v(M=q zaJwPG>+I}2Mz5PvdKy3ha2xaU^AILFolb}s$t>bV*f6yqbcPqjI?jHN1Pp=!F~FoX z8jYveq=AEXN=Zz=x3`BXt*)*DVkrA5lgR|gsimdmEL5VPzoVmruNR<7Fi>Sb1yEpc za1d0&^7d(MxkM@v+QZ%?b8~YOEy||&d zEX8D`R(ti;SIgTt9T_61a)oU1#ihTEPcnQkaNhW*gEi~poA0`K8KFSUAVuMq6D;45 zQx*N+ZaDGxKT2;lY2Wjl2Hc7(;A3UTW}D_&^+K&d^K_RMGp%Af5+pZBbwX59xXezf z+;&BN;Y>R{6(SiyZ&9BGy!`gJzg-O%0cr;F)Gy8%#uFQ86-L9CciGpwXzE zuFm1XZg*d2e}6|`Uq@qOeJYjmt*(cH;dOt&za9cJlFhRF($J{0+pQL}$=nM6TAGap z#vEYKBCp7^mj0~JAc%>&hiY*oZ6C?qSk(AS{@z~q@Nlo#o}s6^ySa+;Fi%f|(f5ceR$$J6oA2-M2k%w7P_VQ? zFNW;6h7df^#>NJ}db8}_5GP^&SF`?*vIuZwI2;Ct4GvF2GC0W|suKOFOhYvYTFXkC zb-`=e_yCW=HH4IAI2D)7k}C@fb7E5hzyv(CFfXEhzz6kpHMUlRUawOKS(tFat?h6m z1rIbMw66Of{QmcGNrKgC9XWSyU~s_cbi@Au1N}M|7vRpyT!bS-guMeYyvBM~Tv%RB zem#`^s!wuI;r@rCzfA3Ze+!-~}nvA3-bT>`_XliFuzm#d(ULy zkFG(f%KeIlEov$L}T1rq$|FMs(gvFsL10SzCzU2GXopGkg?_)EisHO`rf9xO=09y1L1p{uRpL8S!DpGvV?~G}$fsHcPW!rzue>zaEbHgR#|6bag$pyuOu6W&Lam>cIEE``!Jd zqq^Ve8a+1(_QJ`wR(3X>*{0aCJT)MKqNSlA(hr3?mJgt`ztB5cKeC)0-`M%8pcpYI z$7A{2rN^W&zPvNe3J~hoJ-dnAw!u~-EW@K)d$YOtkk>T8i(E9e_ec^84Lkp`l>f>L z8?Jd)^J~5zziTW1!6>oW zR{BD@++spl*5)(t01Nr8y+SmSt4}D?IdMh*!Q%Nv!Y`=b*?A^;3gm*Z4Ut(BW0oYC znwXgOc(COQPc3ZF>xSK3Lqk1IcbB`*(bwCqsnba8FGC3X&EmlKG6I^|t3V-^_~DN= zN~P6qvD&Q)F&6-DWimVKYr#+`914V1R{b9DTt;k|2q(9<*;-qg;h11(GZ@@Ri%9}- z2By~L_ICRfR}Pt)n_F6%H5zpRISe^mGA#m_9ELQ7z1*H4u8+s%*KiE{U98b!<$~b{ zlSbQOEHDP7n77!=n@xAPHk*eW%6Ps0A0U ztt~o|LXLx7N8&WpYry?$N-2=3%x)|tr9c9RQ7IM4H2f)@Ev{uyHRx)a8nqqfCQL#c zHT?iz!qsJle?+A0A zg?I>tIueOYPEJDfkIi>yMWO0`dwV;-|6%2bAJ-7#>IQ^36kCHY3fSfeX z384KCiCQQj9AMf0p#2Y}c1o=Vm0DU__-4`sH~<(eE-vzG8K~O<@-52lgju?ACBc+x z77^g`xn|D4@)SrAo&w3QPym(SW-ZRovn0Xn?9|j0C|{%&a=ktcjoMCIQ-`&w&0?^d z8SACOdLIJ8?H0fg%}?8Z2k^9y?UEW_4@MW)HrF?{clWX|PXLAF_c3UbLGN_-TP!U% z|Hf@@x4Wmir$$rzly!J&bw@|XQ*0&YnaZJw!9psPQ)<+8m;7t)2ls~mIiY;h3tMi| z3aVNu-UsKLsZ;G^hU^3PYYNbwk z9(G-Lc5CXC6cp^YR&0H}xni+4m)}#dPwnjHHSDy7Oioc(5g*`+$L4|NPhE8;&jwhc zAO7G6Km6ejJ(JU56?j4)6%h@_#+SeNSvOpN&gJYhn~eu0lLac^ix44S$P2}WvIYE$ zm`7k>LF952M9fe?w+tp>b8`!D!1{W~Gd;Vux<=_%rBap46}4(Ln;>enw3?clSvxqT zLMd_=SfM~f1lha@2H1Mpy(~K^+pZ*or0SyD7vCAc~m=t;S|-1V0TvRi^<6#M(0`_Xi|*d12y&eVjn6 z)Xr{F%n*d*sYpC|>Es;qv97Mx-rNYVpkC}4aqL|y52-!vX4f}jzCdi*zqPy`32tm> zu&TmsgsoDm`dzMPJ^R_jlt2yZD?W4}UNY&+$!oXk`I-O>7_tf0e91BnOGx z84IUZv#$n`;G#!rFL>0I6vr#9&^}&(+vaCy=N1;$R#$@oCh*{h(@D&;VsNik*;^aC z+SuOcZ7fO9RHr%pwfmq_a5KKRwgqs(w;u6_Sz`;8h-;~H8fewo)j4wR9BY>(E_`@` z^n8=$i3t(P*az%>_y;d*z5Z~hjd()PXw}0Fh4qb`AN-}Q@hi`%Ki2fme&e3ayVJ_w ze^Ki*8&7Wxwv+$!8;OYq?LWU*-*Psi{J;YbfF-)_y6Z5vIXyi+D{g`^J;@}M#9RWi z7Z@>X>S{&?dqzh3ySwcJ&aQr^qoHEM!EdjVBH@KtOs%3 znyyi2vs$cnv(;j;+03ox7OWxeL~;Y-1|cuzqzgF_B8aOZ*kAG@`+@x@o!N;-;*r?)R%|=Eos7nk$Wf@R zsWCLx8$?=zURSRZyC^1DRU)-rEKg*1MdjgZ!ZEmh5?3nLGNu@_ZVVw6r2QY2`;D9q zf)0DxTq1p`;{tVqW&})Zw@|D&)PZA8W-iqxwv(CkZgC5PVs{6|fnX&D?a3&Rpb{fs zrgw@oOmUMcR7oi)GCNtY?2%~N7uw#~+#VPj{Eb^~0pIw|d+*)a+=4N;w%G;;2KxH@ z8KI%C4?x4IZ}*2Nfl~Ak$795d{TK)zU_zq$HH0S`w99)eZf$L$O1PB~I79l?Xf#q4 z;ItZIURFT#`xnH91aot9(^FHctE)&Y6Os?K%korQVBQt8k9VD~w<82ZmFyH>e%5}4P? z@d>t&(K|CSKDNBLgm$F1MvX~*cx|_tMuvOc?k=~h%jtBqx0y@r8aU^Tjm>~R=wA_@@1aR{fo7rZw*z8t#VYgXy4O;QOGf*KGBMRJn5a)z~G27QxSy$HJI-D>R-q<7x zqz%MkYK4ETMq@LxuyBf8ZVy2Nd^jr>8WciqcQ>~ciEeCehBqRco6+!AG$|qvl@h|u z2BSgWWY9G?HZS15qH#eRjQF@5Pa3I|ajt4|w9Ho@XAQM%hgg>5yE0x8*6qxuX7 zTpg6J-$&PnBe|`>Z7oYkn|32B9GueU(ay>lzeF#qdB^zpJy= z*r?als+0vVd7l+&z;jPVxn8;PMn$0$=$!u;lx3+*bu}D0)u@MS};rNYk z6jf@}H?+1GO)X8P7K72yY|z(>R-Ub)U{}cj2*~Ed;sslPnP==tBsQ?+m_<$U1?=X) z)^Li|3ZbwaPsNhpSyQnD+j1IQY_TvQu9!f7UoS3tj3+JyhkjZ;^G`@S;qR4(BnzHNvfe19s+;>(7@#3_D8)0WQ#q) z*hB&}3=d6G>=T;U#};^o;(QYiE=#$sI$e|xY{vZn7hqDYN0$82WIBr`NF^w;M1gd< zMn*;eF}U2$&h9RY=!2X$z@{rF6>ho1mP0Ff&QZ?uB;Onv7k`c-P>JSTpPPE zF*!ApNvBIM1cue^>Kz_-15Bx{Rf!&740FJaDj2;o$4HKF=`34msS z{aBG(WJP9kSvWNukrfG%gj-v>NJ~ z>b1IhO=f2=vYp;er4y-3F@1v=iWziT2+OpZ8l_m7C_WBl_q0SLp*Z~RuvSr6eJJJ< z_`nV`y<%cRBpE>1m*3wATc=|xH9>SJrVtK_h5;X}?b>z=wYHjIy((SJgc0-DEY^%C zccSrBU~@aZor%UXiNsDc2D%g}kivdxrdCti-`_tlG=!T?^!D`B>vYuGOd$xTYc+6V z2y9Y>-4RN~Y&JU_4!hlc3_7}EU+qKn2b8d~v@|2OG4@VRd%a#H<{iVbEC+H%P}EBr^r9^H^#(o=TxsSl39zcM|E{L~>^{l8PnL zN`)HJDp;EU^x)|19KGU7H$x0Azzx)D^YIV29(w4Z8*aFP@7yJe3=w|Ca@N~8VJkh{ z&T)Eja(r^43xTjx{`F8W5M->$K#(YqR-4&kZMB+Bt!9(O+@h&f z=d(gy$ckY%t0Ul=Nw%s|q(id5u|h<4XJ>bFGq$-EW&a|v%}8l~EY5m5F$&~PF@MXJH8OIdXz2A~7f1!J1W{bdyD0b3 z0}mZQ#bjzHdWr4GZvdesIs#a8RXLZ>YUD_P-2XW4dx_Jh_m9J6zE!bl_K%(RgnUHLR%_xv|t9x+J+27yO%l5VG=;$~J z@erFpm-a}&h6I$lpbiauWr5#D0oM>7TazNSaDIMnc6NS#etKeJb!|;TEmSIm*5(F> zy@{c!|z3wS(hUSHlPd)K^1SS65|Hp-59LGF30pQ~^GU zC#s4@r!kJ423u7^o(U(r>armS@w3b{>{Yd`qrv{YjJgB$sf*SaJzZ75QmyW4-5_r zjf}AFUaaXy|Kme}l(`5pMEG@t2&EDZho>ec#O)rvQ{&@{i;KkuEH&!FJ_XWhGo2gm z9T@0#Ivp-&r`=|XL}DyGu+MgkY_Z;sDwP^Sf1BN6w_CwaFt%f3JryDp0-36UXj_=w zRfxriVp;-wGhpkwWYWJD3EO%32IjE#-;^>z7dv2~LmE~Q{AJ91gkzwJ{QMBq`( zNr>^1B45~LJ5;5ki6m?5#LWFA3MA_S$;>ee78&1AsZtc!D$eB2P81_2wpaE3PSy%B zZ?Rt|ZaBfBhKdwOO_S{km8Qv%TWZ#3u`t1JuD#88YCD+>r_w$ks9q&jeh$a|p_or> z&#-)n0tq9pA_`{nTue`6wqcXF4rn`r^yGNsC1{;Qj zVHqTY)dB`$4J{^t02!t=%!Dn5VJmjb7MTzuTY)fvV5DV+=^Zqjb1*$e_jGr4Wo6}^ zS$V~Mx`)Rd;d<}?-6JC_v###yqk76aJ1a6WBGMz`kNf0jllOZLO0KQiZS6b34g584f()WYrE-CF<%Ha2&6 z??^2ikE@6Y!k17B?*cf^qdl7mi%I{Ge5d_JP{P68X{r>-y|%K%T_}*0se_dUfDUdK z4j3~gydB7P9Gck~U})PN&4VOdN%BjA%Z+11kc61rerrE8u8E0jIJ!tCFdq%iD)<+y!5kr zr%6i(nLi|@1lB6*k{#Z`umjw{&~b&nStyosxk5IbJw8t5a(N0$009I;0iJi}a|KFj zlVm9p0RRyQhXbKt!0$s!TECA94TPJ3DX7`+m<)vn*p@&msy^W;^hmL@XVQs@K9yy# zjI2l*6mQvem=3%}7q>{r-l|4j)9YHJRj;?~`mGCsH0m-CQ=Wmw^~E9Jg}BXQ^R7;dI;OmCkdoNAOb#sP>+$EF*%mAUO|S1 zR}U@_855$ef^`B!3>?o>suOM<9F`BTHiLVh3+@Xa$>U7v@F=x&E4#aw-rPB?lnt_+ zSYlLd&2z;Q@#*Qw4}JKf^9xA;4G+br8g1JmwA zFc#AR(*9l!r!;e@#6YSSx~9`kL^KwLjXsmfQng3;yYYA|9t#J8{z%9l3J2Y8H&I)F z@YE$}gGJVYNell3AecP{1sS>~Dl&BG)mWLpGDDZ*0)iQc9R_+uYjP+ugl&a8Sq>ZaXUy{P>VhjE0qw zs1K0AR4gD0t~W$rs^70Q&S(VZ<_`hBIT0cZ)Wjhqt5iq){?x?Jp#i$?&*1}mjoJJQ zItC0YQ#Tr9hz7Ajxn_B=K@b-`?nblKwSV+`C7&dEWl>cmuPOqFAtfYu3=-{8Yt4b5 z0hZx-mq|P$VEvCvrBNo&$mM-0j`#B>%N#;+_dF98fCga$yOuYm#yu=U!tYbz@&08bwWrgsuV zFe~MbX03WhDD-g6mipytA5y?hpOs`zego!v-~2|yYXH}Whlkr_XafGfe(n0D6v*i* zN`ai3PmU+&CStMR{X8;b6CSmyj(YKg+>lOXa@issiS!5khyW7Ncq|f)MS?*;LrM^^ zixi6GY&w_C=2K~uenM#=(j@_`5RXP8v0x+=3WkF|pUlvbfJuu7w69=EJ23Y0X~mkmb{ASMayZAB)DnM1dXukZFHzIkQzx_ z(ey6XE|0}q7okA9vD#`95o&e_BbcV+e0Rn!&Re@YfD)ZJRMmzIAUtv?G5vjQ{lwiq zwL9ErQ3Mh%%{b>7G3a5-vIQEHyHX(UU9xW2@;etiDOB|E;vwpkD)qyRag?cKvZV$o z;1dNN_RI)7nOt04oF--yfS4sodOeG_(P$hV9PAJ#!S*Hum~Co^d``8{$;G3AiMVe( zs>H*JB754sGg+#EkoJH&K)dz)YZ5GKwmOs(N?#@8KIRWmK!VtgP#FWmXtjnkzlU@+ z5bbeRL5>+>Te5u{kq>+_7;210I5c%+#SWTQxK`<{1OZvGur^dl^1|{)?hOwg4*&_I z-*5DZ|!0MM7!UjSt9phX2zFCf@}+y<{<9e8_| z&=Ht=qlH7!g*@y4nQS4O$x~@pS&>n`B_57MqJ73u){NcVlg;hJ8*6(fsXRW=&~^lu zC#R-XuCC7Gu`oBEOe7MI8x7yH5TW)(G=6H|I7bZr*q}+{&475#<}l7 zh;Ye%*KDE>HDZR%&70Vps2S9d{u~AJ%JS?AmKgvvOw3G=3{xQ6t#%GVI{<=AHg$?- zG7Umk^avgR1W0pCppH{C9(F-CFw8h7*$=UdCPEI#Y_KkLd)+J&CvyN7GN>edMu9~B zV>A>&Tg#wTW-y5gB<*(gd$87nq0SKHIk{bF(4c)OJO@ufNJ8aWdfm9@cmi-|}LlAOerwN~uEgg-M zmT-18(*3Pr`4=Uj2ASMI=tdOfs&h_owBye7{p6OkDX!Zf<2(iO-h>HyN)!;(hEIuj zQg{afQ+M^GsOa_6Ts4)|PO@k=ktXAbqfV8pDX6_c>n|hJz0U~j*ocQZGE#`};qMRs*m2<(H(bB-lfJvzIkua>{kiI9(*K9k z2oc`@Z0KK&a(0r`ceEP6{+G4Mp(`KaQ7V=2Q|k3T(rcwqC=huDl!4s1xv{siO+T3s z`KS{EgY(eh#CX)F3Y??wV7l19=N#ckXaul8B8q}eiKySN-k~vZ$)qJ~wJPje+rs#i z7>OMd!$_ZI0XO7wg;W~3kTwMpGm>aD2;j`9)iN2_o-D2dJc2*qi-dxqpbsswgML{O zSi)%NQz_~GK$xLNek5a<2ni6ScDuGJ18G`V_Sbzhq@Y!SW}~ASb)3MoJJ16Pq$+u2 z$t`(YBods
fbNk)?@w?IbwU@dkT_N1NYGTemg6j^1jwKYJq$y&2*4AI>w1rjUU zf*YQf9VyRFiKMU?CRM>LcwT#x9!?-zM0={^Z1p5lIZi>`xkLqWdU_fissJ&}&5ezW z0IuBG+uKKK;l}>H6$#5=a8@LH zcThc5_yasCG?)yFykLf8`fvfWe2$j?c?WTzckpmy>=IykzzN@sW}D0t!BNd4&Mwil zt#}nc=jb9E2?xS{y;3Wb%Gpc~K6LhIG#d&BU;_xpLh)Dx5`;j|M_Lv5ai>J30oEBL z43y7gRgV!WSku>JJF0ALA8u|RZEYW{UEke1IHhbTmy@Su1_niG4a-e3P& z;ona9|8}PS6MxgX-43eV_}8D)Vs8vYI6ORrr1l-=hSKeJF`wJs-rL!|abpdR0R?j4 zFa#g!#l@-BrRka3akwx)H}3b}8z-Ifw6vEeg$@qe(~|g9nKl*Dnww~~nyHh__3Ilq z);4N-?UK!x)w4iMv(?gS&C`78G*@ofh7RXGfspw67b6%iy*npvt4+K)?s9Ti|()BjiC0`Yc{# zDSs9IagyQzL+Hv@0l~@ejML%7K#eqJo|FI>LL#8FW{&0QeMrNA;mHg`@AM>hV|{Dw z#wIn7z3t$6=hE{0)vH(L=BKd}!H^jh0`uX|5Ea)x{S?3tJqriWXUy7dllxkJ<+AqW zzxmb|pZnU2FKymQ^HbB!Ue% zrI|`)s^uyz(MO_@x#V;LU8*9Xa8TE3rzhB%NM~{fw~jV8wi(hIk3_|cDJL|X>S7OKMQ*XJ#%Ugp`4j!z1~e@Fr{g7jN)^T z@MwG>s8^!G%N*zo3}Fb5d^`dp06c50JIw1)YdbF@Hsqxh=0*; zU{RXFXw;8&0$KEl0)X6_fy!W2Vw$?PcSIM6D0+N~L^uSpUxhqha&SBa3JyAafRPy+ z3Z$(75AB4ok97pZ0~}!{Vx7S%_8^$R(a=JvoX?l?`9eCK&t$SjjduF@7!ryju^8II zRWu!2f$-VP=B{760bimdqPp5h6t=;5B8p-vE(dGZ4$nXVb6=RC)9LK(pY9!;?ra~e zukT!2+bfrJT4Cbtxm=giH8VGZ?o))`xV*aJ^?GTeVQy~jF+_NKKm-RHWSA7=_{b>x zm6M)Bb^id@{!*#6-DDO=gioo?503FdtMz|;x%OhZeyu6J-?}~12@AiR=>6WS?ap@X z)hFC{WEi;IAA27OFyr2z8o&41EIi>O0geBO_dR~=AO4{z%KJa`;rD;&ED{_Y9Z?G8 z*5=mQ_3NqAQ%!Gt>zivYzHoCuft;F*udd83%ug=NjV0%&VzJ<*djxD(x?US%JK_dJ zSx&0Y8&AaE{p3~jq=-j@;h>$;k!`1M`UAf4$x&NC+ALMHOe#a=8TR&%UVQP|fC3qd zh9gmwXF$IRRe~g{ONJ`3#(>Pn9_>Gn$^p7d8Ah#CEEh}Fe6dn0RZ10|5-JG(=&_17WLLbx4HqlYPw z>0)oq#zKR_{1}=;X2CVi&`(?{H=l+ALIS7b%cFWDlG>CC(Oj z>=UXVebQ}mN*ZYcQ30g^F~Tc*#$piY1yvI9**Q6rv<+y+5C8f7UXJBV95Qea4W&j| zYg9F(tm(T)nP!t(bvpunH5l-PgFg5~ghD|D!Xz>d9i&Ksu)u*61UR{X{}H00rq}bi zVm6=8=SqOE3;6(e0a9^*Wn8ILkvx<_?X|6q z-RHml9ojAoh63=hMYR=los9+pzM+M5#^JTQoR#gJ!_BS3t)0UgYdc#zClpK#w-o?= ztgfyuEG!@qVSZt1dg}3HNJD`xs8LCn;Yvl*Vk|8wc4#)nUmw(U;Wkd0}ABwm6_!$)3Y;U!I0|V8C}y(iIfxV z9k^UBNJmD;5>LP9-3j!r3{$C`;Ymv>(qO6XaI7^!U@0<~!H_=?@L##IK(q2rw+nC~ zP2?jp>HLc?zDkMlmI`Df7>z|DA%8FwgiJPDrYK? zqQ@)IY!z)SA=#@p+GNZf=iMRKY}qrJRAD+1^wI%$?g5+hPM!;@GJIXEMnFW&0HR43 z>91t*OrVLB8Mxu}SBLbRJWX;+p1~=3Md3kt13bqE6! zL2$e9RWdAUVby3_r-U?B!S9tO;z0lekose`%@TbgGEwM2jOZX(3hVu3R={C$$TL92 zA_6&lf$$hdHH_faT&vwKm9;{pf^MsY((c}ImrfAKQaBQdMF`0kqI@(6m>c=LxpF?2 zPiGNBQ+}dH5Teo0^wjwK-~TiM@sX&TYJCzkK-&+478opSI0xD(LMT9v<>dwXI&?do zY_5ny&Y4{LH2sZ#{5Ji#(a$vn4L+X_*73nfc6;;I`ug6hH})E&u|h_&8CoQeWNChW z;mVaOSjz-Vu&{7H12Up0KKtymZ~uwMK0s>t3=Zc=-ELP9q&Hn$=gs(gtjH2eU&h5T z)|SYaYhTU(_Q~b-(x%5j_-tmGOx*OjM?P4>ihK)oliogu$KzRj;wpUEnL**j@4WcU z=fAOjnfE;3zgn-7Rs43_6hMO6pmK2@X~uNLKkO3#cs$T}^AP62Ob8a@yWQWEsFHTzC58#6U z4_}NeU_%pV2yexTktu2EqIOA{&&kDtYCuNn+yj{nLdXls4(Gi-`=Z+oUlG5(u@Wf) zIHi20mMiPol6D#N;p4=|OBLLn*Xn=BS+I$@ZT_&wn2-#F;md#aV%MAaDrL(CoDZDU zrKbdMT-dJySdj!5EN@&+WF~+msDQRtSd5UCL=l-fKpjJ=i}Syv4&yeR6u@*=OG$jYUVsVyJRWxj`&z z^8-xU6W|yJrRh4XD~V>BdG3=q+(2-;T=vJ!Iy6nc_Uh)fmv7$KJorz4{c<{81PsTK z;>KXa5uVxD`1s1|3IKv6ae5dT9epit9LM?n{QUA-2dq4H{3s?WnHS^c5z5^iw zcVQFanyo)ae8B#fpNM?Y-}&5sEPdge84Zi4)$WompJP&XJS5k>x9s@(*T4SA4Lv^e zqtR&W?d@%EZEtUF-dMl6{_1tThTA3C@T@6z*!Yw{*duv4N3T;ibWLl+-5TAU-Sojh z_OHJD0=YfAv^2G{FqvGKN+u`fXUF^j^idx^1|crY6Rw z#B&ZRj1T#7)o5r&(`X>c;2>Sh5z!=BaH%9`1>8WT?^qid^oCv0wQ z+P6(som)vWlA{@c1a-k0Z>o{;eIHPlH2jj;{Ccx-tI|pVgAtL`%;bu>Y(AGS!S{h60j%)R(O9$9K@LGC2P^;9{vlk3 zv_6i*$*~CfszlsQ7d4hAy#gwoYJIX;d*Xl@Tzdy%0RWV}-Q&%j!=3HJ>+AdLHxGJU zIvd4NdJo_OMV4k}XP*AP_s$a&hq<}Ahhpie>-y(E|M|E7(4#p2fiS}@GK{L4&pr2# z*0t(ekY~O%sjcZ`g0KlP=8YTGbg}u>^JaBot@$S}^tAofO8_uc&$}LsR?_*x7fN4@ zs=vR`{cpe2_{1jyi<{+N$vS`Uht;viS^S&%7Mtej$q713ZEbIEZoc~JtEb1uRPY27 zpg!&Jo3c0HkB@s}BWgJAi^N6sc8%3et69yZ^jxZ%OII={S|JO8cKycw=FM9S^A$R2 zsd%N;m6_$G8EQ5$H4$UAWwh!`9Tr%*=YN@P2tYy%osmS{aZ6ba$T{^Bh9RK+8z zs*nVWv63Vc)s4{LDxJ#`vx(ikLu!W&e-|68(O?8EErWr8&*>D&h-SZIcG;e25@#x8 zF_7W`JZP76AFMHnUQgF*1r5^8ZrveQGS@d=KC&`+S@0=RA`-$7qM$C5X^m3!9VCTo zw>rAfs2G4Gu#J5yQy$dPi9Cbt)By1r#cr&vymzVoBm6kv&!KUpEgnD=euf9=>`b>mavDpj+TDh3ZtdN;=+Jz*+CzT)_U!}HIxA+b9Gn)*L zDtlr91!5k613Csw`t>Bz5?z8?vt8BESFEh*>0))~FioG1;*|qFCFt{o0$zW>=Tl^> zPT+7_Y(p$7n2>6l*mU4oOPz=aA3K;%mrx6HrCbL7J10m0t8;WD_T*Emu)O1ms6e=T z^z%Y%3Dv3&D;(|uaCvv<;M>o?cqUnvh$Tki$V@~6fuE2e&PoMCpxpilcRIHYGuyjI zTbs8wHul!m4+;gO6*~xd!IoQg%_e7;0P{c$zn52%IGnh!cxCB(+lf*6*k`|yqZjx8 zpVjC7aSbkf@_#w{`77@{h`>tl8RM*_6A5k7mOrY00s4<5^AMyx|>6bcYrQ8#1jz-Te4!#w~%*@O?oJRYKDj7$o*JURgZ z8B&{!n4^M1B6ekEDNg*XBe4+ATW2*8X@Cn3+HfU6LGXAcrpMuHFg9E&RkBpjDV^Ov zIKGVn3F%ij9EgO2s#kG4IHV?^HdNQBH;ct;zEFakE|)Ln3l%ErFuw2+p4CS~!bkeFwNIO6u zR3KE0=%{&x&sXq}GC!>!usAr19D+uTP(bt{|3k0rNrY4Y1b__S)k5__N-QL~K9Lqe z5dzEQ2#e{Q;B`b|M7M}Q4tN*JTCH5w3#DqQTv^}Vr+h=F(@A8(0?|kiElVN+wAm5H zy3^78*Z)`b4bnw;%Wa(Ah-X9un>V+JjMDY%*9-YPO%VG-OEW}4dYz75NNc%FHJ2)9j;h&ox6@+ITlF|NCZI~NU8`P?&nL~zj89FC#ffVrWJ0nm zG3Uh?2FcK{j?=KGrAa3+ZEa~f#80&u;6CtoA*#V1oy+Cn`^gF5k=%d+8IIsC4{2s5 zm#4;+knx3rfp9p8CRG7{qbF?KYJKPluOhO&F8p1h*U;~pUDRsmQiG}LCA0DwMK=gKn|uK6;Y5qt}dyKH*8)cEy53Mqg^;; z|JubE?o?`OG&?$}H0VZiP!GU#!XsANp|Di#H0#6jhsv2j_Ct1{7!(YeL;#z@5p7sV z%7ePvJ+wJE=YNPW2>lO5>VF6e0<&Wr`e&@1o}mH+RG1Xi21uVBUrv_D5}Bx1>^Pf0 zbYScy*O;ht>~Pd;tzxN^FIV&VB0$Mvp+W~|RG$~Hf-H);0(K3kF}ffMu~>9uBnn47 z9uCJsF5bmhOafXeptegEn}D_KG|&1bwgDS!a}EZJ{tST`hCzlDvIn=0H#YWm4^ow~ zQLfZAy+uhxw^0ih78b8uS(=|;q@GN#Q+xaMEV)O=#wqn5o*DUBWF$QExzykPSp2QY zao^IQ<>FM=?fpH2EK$Y9dTxtJxYGK+_ZQjUV;sNy&%#f6?($i8P|QK_0Y2J2@IkNr zm6w|3R(qde-XP(EFMa7tk2)72pU(ptKqdUG?Q7Sr?eFjREk!(zb`2m}c@)JLA6J4= zm*nN$0_$+r>w2frY<8IR;bAGC7Zp`h6pti}lES-Rubo}L+ie=PhEb~|c(f6Ae!FYtQe;qJb+bvsV@-lf-OdVmx-KnE9hVl%dPyn*G|L<$3lL;vnQ{l1ty-we9o9GgI33SOLhE+YwY{HUyB#jEI&S28{ zOj_#4A~>0}WX-2kYW0)BIPoNTGuH<}n0HKWmK8*LoFu%2W<@jz}4xPb;^2yWz& z?l@`r+B_}cH5EzWog)H2aG}C5v_#)*)>T)!(df|`Lae>Y9%127yClwdU5J)*`zO|$TnBmvn2lAy|x*DJbQyn~Jy;QXPbX-q{5 zu@AuE!~uQQ5TZzrfFYBRwqQLM`N|(}5&;{o$a$RPp$Teg6r3Jj*c@HAB?O{KDig1@a<}8Q=!f zw0BaHnYG$&YHW?N4X4>uI%DY8G*>hpNzPl$hIl;c@wnkNEEI~^o5D>Cwo#)Fq z{Ob!(2jYv_)6JK9zDOt#h8$6rNJRkY3uLu+AsY9{Km?9e0s!a|yNF&J6G8Z?*JgWG zodLG&a-~`>>!nJiRIZe?dYh<^IapJ6w^dIkF1Mm;&tWzMcfZjzJ))pB+?k4_*{x^u z+N};xBZMUIUQtv;K@kWc(ajGcP0#lG=FSru2m$^Q+;C_ALo|R0dZo!&fFJ<(M!L5& z;^f($Zd)OopCPnt6y!TwBXSfd4WR*(;v2i^j^f!^r7`a~e<%qdpFBMh!udn5#5=JS z&}sGHHZ{~KGAerGI8&ru20?K9kv-t``IJyV^~w?tKn6B5;)P615P3ig9JU^iO<+n4r?i&M;YU6E}zd?f&>5}|4kiMhvKq3;4q4s$^8sU+?O1)Qag94W>c2q6g-#gjZIojF2b$xyR zrcEux8CsiK==b|qR#p}k7n7uGFgrW@P^g99%g5dy{i_dr26;%Ie(vCZTv6Y`GkI(V z{bn5B{N^_ymt0+4eS4lBtbvo`lb!7?^j{#r_}_+fNX|*s*<)Skc{OJXbvclE6dX>S7ztt#^#fg)06RwDv*^* zHI+gsr%Wnyno7eaPBmcyp}+`i$s@72tqDUW#i<=OL&nZb!bLzn0YmT>+^yAYrcQHT zf1$uJjaq3Zo6XUA3SxvEjYUGCNH`h|27>{&lkZ!d1gpY8(SpP5SG8I?moF5`gMe{F_6l?gn2jbu)Q?;L#1gBr3*TGqfxc_2j~3{ zEr#I5`NK=4lNj4Zf%;2n!=ejT8v@}18R)<^#QA`S^Mge3*Q~d?x?$+V^`KgB*6Twy z8InhpMTJNmh?1Kq2oYrsqC-Gjj#vkELv~=KC)_}XR&P|wI=uMB3ZSuSjR+3HDft3w zBp3*V{Gm`V5(#(}g%lRZ!(j&j0yR%u5x91zo6i^W*%G|(SrjfD2oiXrQJkhh!;yF- z5s$dsHWim;2I_?LUFOK(CG8QEO639HkWz8!;tYj@BZ>H6ar*u0@XOw5cWxbJwssD; zw+=Tp_O7oV6bZGE6jUr~As|Em0auon=NAZyO+idmeb}x!*wdFOs($D<*bM0>L7d{pG)JJgt zX|{S^$)y=>Cl62Glm$nv(dQ_?&EYK8TqT2R_dT_?v(|K)Bp(%AILoIH&;YTSPWlnQ zsAhL~{*bf@e4 zoJ#aRBqBvPanm=61~Fk7QWQWy0qdX~Lk{JN7~*<>OaWqZY;vpR0jH;e|Lfo!&z&E_lR3aO%UVN@{+V*I8f1D59*OTAAh zEFg@(vq9d0P=Q_AIdeQ>Y}2DoyFCyrN}Z-*MNx7Ljt)#`hz`Pn zw)_~GVTVTML7@YZhMLW$p<@q%))I)*v|UTU1_VHXR;^}e)n>z>y$Rmsq&x=Es|vE> z5k!`IXe~O(#Q~`_Nf)D5Eo-?{qgv|JYi&bs*R_7HYZqo2DjUb~j=7nUt4}0XuFTCR zCuV0x6-B!HQ?`q_*5{5^dj}k`e$V{#&#%Rz%CjGwBKx{YZpKhwOF$A3=Qq~3uf1|( zYip<1yTtNQ5V)}*!*^4&(YD*k>Wyxp(uoCK9;YK;>AbRCT}{SBb+XzGRXQQY8R@c^ zkJf6nU;DLRgFo^we!%z9_k>UrGl~uadaaWwwkP7^r4RM4q#E(N06OgDrE1%kuX6p% zHWCyC3VBCDDgdit>886+S`tuYHan(=X9q(H_nJRs==@>V>=&xFR8h;8wEku11gA6- z@r^=uuZpOp2rn&0R0l(K2S^;|cn9sy;{^v{zH*#pY=CD^g^4&KY3L%qXK7WyL2Cko z`9rck;g_fB?D`G#I-+BTw?7MxUs#xV;$15XOLIIyz$|OY7NWiur2t!$30v5BsO>fE zf5_a`%vV{L=C=8YCv?-a=~O8(3WXjArpFNB?Q(qK3txCM>592rZf6UR&8@AqSFi8w?NJ=S@jQz45N@07 zRfA*G!Niy^KI#j{q(B%K0~w!#7-`h1bxp%|Kuv3tTp4yNKnsH66(mK#c7W(~disNy zX9p|_9jKq%FmC8|It`kal`(t(%*b__s4!{ z#qamfaS5YQ&!+QK+@5$+WGTau`dr5nsEzMc{B5C0ffESb2}Z)c2^O3qtS;a z(d{yV$I)!{dyKPX28@nWZMikW)M{LY(MwkOjd~|3lNl1B3Yzw%zFwazlf< zPYsPk;{2gc@+h(-xm~qpr)Jd4wYpXt$WQS;ujogYBgKbCN3vURvs9~qj2i$< zAiV*T;}8w>S(8`=!O0+gu?!BVp(52VVwrBQlP_qwTp^z;!21I4PNR-1mI@NYW05Gl zeX(%0s>82v1UH?f;^I!HGX}pxt%4Yef5*d$B%9}<0CV5|hp;eDPIKGaN1I!>;A?Gd zcR(#1RxO;EoLpX6O(y3OqtU0HeqSPycn5FA)W+#ipesIx2#>1>59z4a>-%WRytB2r zxxRMe#?AGbPEF4^lA986;B-aCCZm(Hq1dP|F&2s@oF2jKQ&K$f48WE)V_G6UrZv7t zE_6EGMzyR%goeI377J@q9 z0Bf#6RxV{Y-n$6V>%oHqR=_d?ME6>ao)V=%N)XrKl+IHid%a#80SaL@=l~0}9vvv) zIXDwZ_PS+KpO6*Deaxm>6v%u=&!@}T6D@NB4@+a$z-SJlMlw0Ex;&jsPR=LC7v{zT zLEl{lB&q6A_i31NjfrQ*^ovRp-M0g z)9m(9IiS|88t71^8I7|ULeg~b5;Z3opaa@$T9YGiU#-#q+Z&DlY|-PFiP?aOG(*(f z>h+Blk{sz!V)fkoA*vR_`A};EL4Pm+s9xbY7w06SibTqQ)CMf4L;?{^`ct)9%K{+Cm$2iL&6kQLIu{!V22hp| zEl0!Acm#!pNVCB5WVYuI;YF*}>gh~2bDGU$;JpJ>k?oQt?NzCs)I!pw3Lv#`VPSr8A(@L7ppupJNd~|#!IzAN}8JGQG>QIQZwm#m9SOfG> z=a0m*9+3j>nq-Ea>h|@Ct0BX7A-eRbJu)_a`z+JIf;?o1x?ZVZgl;q_fdIn4%Pn*O z4%itvr1hfgB}D?6Pzyz>81v9ymTs$sH3maBG!4Rkt6rxk;1&d@N9?v5&AL_Kb&H}s zNg=x>+2s*l=j^3jlRye&HJ{c{1@c(SUrvEsUYcH6CMu9~$c<7@y7C6i8PnAp2#9lhYqk+#)X}V&?pPiVnlGcHmE`ftq9OH;2^1 z`Gxs~@fr@&$j||rSdENYjh0V%m(wjuon~{mj3Ihe z51}%=<}${;>l~)37jwnq0~C$UrEBF}yJ3+nAZ}3xA4FAAbca-Nd_4B#dp{z{-j94B zF)|YKcs%#)N(?@~wx^}VX((44FJDUoIFLox>QZEGCg8%N2xjI)^1!TCbkxWr;*!TF zsZy~_AIR&KAgDCzP5NVEB#x}QNFWpphJ!w*+sRmymUN!7Py8rh#dHbVlHh|bth6?5 z7{H1mE?Ka&`V5tOG_6{dU7W(Dg#UN@tya5QYgB5Ds)3n3Ei?2P2dpNC+3xl%5du{f zeF~`)ND=@%r<2YGas&`yL!fUGH3P!BCEC6?ihy+;o+ojdAwq`)Dd7AeM+Xs2YJTLP zbvKSUBmv;-Ws5}|G02rt5TrACtMVZu#-&XGIKq+8=vV^K0K99lco;yZ?LqEfsrV3W ziCFpr)`TG?NZ4q=ydMq$9PqJPTi<#4yEoT2_V)H6O(^I_i_{~KSxEr_Tz0x#@pwEr zKmYD0pZws5Ka@-+A5#m5k4IyoVd(gopZS@OfBfU0{`9BcsuOr@Klo-Gxm=D?n(v*A zb~*)0zD3?y9(qT+_z+xyo5H&|H|W8Q@e38&Yp*RgDX0tq!jm^ecKfJM}BR3K!60RjLF z0XG|rP?mF<0U1J+@stFK)D=YOwNW4kvJKeF7?y4Dc*6^^aoH;f0;)OHG`(D?9&c8P z5jnnWbhEbF*W^6v#VSPSC#&!TQ>b^ebyA zQFJ}?zR8*C0LM87la^#q(X5s#fDEX$1Vp}asX_rqFocHJ?N)ox6whVzRtkZgc|H;e z0-7=Hqu1{;CKY4o5u|`sC?eTJG@a0hf}s|d#DQY4&hQS5$=GWQD+={av(o5R>L_SP z&8X<}QUo{Wk~|JxYc#0jqGmLRS0_3YusrW`$%5NMrwmAG03`<;IBdYu`T>Jt0}iBv zSQJDjks;#AxFWeg8V8heK==;S^2mhHn=2G^xqJ>Cj{qhV=qaHfK_UjwBb~|7Rze|P zM5{~!!Qp!>&Zs_>+Jcc51o9^=4gt&9HXpXM;k|%?MJ?Pp+S)q2abx$!#sM`%9@M2! zS&8Q$zwEItvsH)X$B@Z|qvPYF!^6M%>%VsVHaj*xe)Wl~#4dSZZa$evBpyo5?9n}7 zK^`9;w_2@7<%IwEkN^0)-~H}e2oWAv5#EgBE_B6QHoJqP21qWvaeZxXZ;y7eojl(q zLb{N91>>>l#jE3UixYDTV^hi4*aQ)3wIUOlnj;rUFo10rwts*N=vSCZWmBiMT8*Um zTr7dfPAD1!>=2BE+-?uaLCqco2z@I*gg}R$0a@4w^QC;gR4ULSfm`tS{6WR`wWBjZdXL1Nka%9-vI(HWZpDai5wWL&zdcH8X+WnYrJ*KOGb&h3&UFU1^` z?Rcj&4xWyV+6?K0*SR<|@dy9w?>9&{1f>kAGc?0Q!|KXPa%pjLHaW2{H$FZdyOaW% z%4%PGeqXP(-@Q8Wu9Y}|1JpKdHS_6w3aO6pg`7ugN>dV0d~YO*`ELxh7TivkCD@Ec z*!4^b?JiM-Cz~J0`bx5dH^)iKa3~xI1pM$<5F*$T4JZwb8qq}Pq1)|~_1HyqNb+QG zS(}|!yI9rAC9MpYv#OOUHQI4^I-Nc*N)f2C1h1STy8sV7_wB;Rp9+RlzS}d=X+mpi zhEdVsLY*`<7?;Z#@F@YG*ROg*0oCvG!ZkGFJ4kbZalpsOL9%Ph{E#7%iHrpi(EJDx zFlt!AO3xKC*+Mp(8x|yp!|Q{_2H}x-#N~2P+zO9?GlZD}dVpmtQ_zNC`FP=Ln~1~{ zal$u@h=`ld%^zNh3n;Y^(7@)_t*!0D>(_UWPcoz%a>i~!?FWBIjgNc7ac?B9hU0?Q zH&jS#>xE1OR#Yxk$(>Zwsb0r|6!7QhBe*@DrKP2nm1Qb~JUu(>^?JXjw&F*Nu6T5G zG%+y&DA2G6z8*t_cjhthXrRuA7|62`Fsw?=TA;(Nkf#Sk?>)T}nyg90CqLD55MQ zERY_iMuJU&thFHI*K22g6e*C3Bzqz9!`sv_j5;Am(q;-dB{&(1auBI-PS=Be0>_zR zgK=d{380yl%V>pEC6m%J$Cpwd=jO(rSe~AnpF#>`a?u~I8ls+y+LZOrHMhJyZZC=d?& zQO?@0I#AM>r(Fa}*QivgIfTB246OHTVIW8VxCdtqhy)?LN`N~EZ{S=wKR179OA*i) zP^;?jfG9kWMr5ALRc7cr-Ad{p@Fd{^x%lE*u^nLVoZVBD`adMx*hSzyJF${^b|H`Vap= z_xcO(10(wb&wk=ZKlrg9np(JW-^-o34LX?iAUKi_NQ2)&hZF4Evgk=zx_RxDSFgQ% za(H;@!$zX9C!TyNxxAuyy;jh-nh*8_1St{IO{PzZ$p`{S5rU+XCUFt4fdkwd^GmEe zn_a?*=vjU0UXSqjAm6RmOSyD0eX3U~m!1-2_Myb6FC2Ee#X$#RFdN=S78t`^n6!Ld zsIJx2O2uO4v{o)(dIPs01mh#VaMUe|_gT8Q^bpNG; zexHn-K|)pNb}eG8Y4&WE0tR4C__ye*%;>y z#eA_bH4;}))I1Il;UVrq@HzuZ(DT`9Ayqy(EN4%;%?3RO6kwoUtUNz6GyB97SLc#* z3kxWy91I5ENn0@_Y1gh@TUl9A6y@!Iwm*7o}Pjh*eCx>Z}oVKd6G6C`PN`CU^B%i}Z2_{4O4VoH*g`-KRDH`8wG zx0=mN>NG=&2ieopbn2u*IPHQU#70J<$eT|@V{r%1pB^1%NN*yOKBbKS-pR)jqlwWG z*hEncE*x<=d5q~cgRxH?gt|RC0|5YlwZTJ|wr5HGphszvgz1LAYPTwtie4#c_`RxY zW!lK#olaybcp+t1;DUo?u+pGw*qhMxZpU&Ugk)V-eI7y`@W?XHJNp;b^to5*KJ=X+ zY%~pn^b2(OTTMeBB4Apw4RjuojD6BcPOZ~w({_nSD3GMHfc*vjL8izersiQfN9^qz zF*T{8gPnDvR}H7sYd3n$Mz7oIHfv_n_`y$n+#d*h>5I=D9_-Wp4po6%U7nerpPHY? z-b6eRzMu9p1qW6vv;&|?{-gIct=^9{%xIEXm^@+KZ*A3>CI3j3- z932epa2>o60HF%SYA#ni*gxFZ*rm?e7fwl7URj)(nZy~wP>>2BF+>%NvIPcmOvC;K zXL=0GeQ6S8v!(5w!!6V#IJmyHyMK_fR397;i(*WQ1RmMPc|_hLIz`2e{V7Gnc@ay4 z-0_eSdL-f)gtcRXo8a%$jsY+Tk$ms-IU;mLQ_8EYB}2%q5dE zGc$Lh(>`uAJlq4|vm{CIYP(#n4}IuEfAJT8@fad}FCIrnN7Pbzb7OODZEawV;DE>n z+ayWd0VT{VUY(p<7)>sWPbWjs_?*lLTpd>SypDP%41{RA>$S`UvzW3j|Yg1~}! zBH{H1EID90FJ~u2BH?A>0kQYjU&){N!mO0hs28SqCHuUGa56jk+leUjpJxjkJ}rXdPWOc!k- z$UeoA)1Nr5hY`3IBf(4%^MfK#K|X%@zS_ z5Mu;Uq_Pc{IznBt^Ac1+=?HL2!xTu$khnVqk~8}gOuod(Wkzf_ECS|5ld6F{6a)_^ z*`Rr|mtZOmv%ghr=F%B7o5;e~Nyp9$2S(U#H@~njxw^4_ z5=80fP$(1*NgfyA1Tv_LtiN8bgCsoiXY<9{XaDSlpZ?J&M-qOxhP7-FkU(H!^S~sP z8;4%ibNNy(kL<#Wf&{U6G)lhv{oX>coXzAjq+OCqXDVf4J%FE!NIVgZ#}O)r<6+gS zoVP+|hP4at^tr3oo4b1_TRXS5HV@a=_byTk@#(wW-blh98ATdFB(8*FyvuU^Xaj5~ zJR1s6VIfeM>lOhgAk_w&Ym(v;g!@!XvUxUGwJ;2=OAtTHIpEpe z%P+rd7{*)D19}V*-d+bJrkk4^+dDg38=E&bHg2x1QL+LV;jTWJVepiI{*Z)!4c}V5PNBuXND+{R7BG0_5l8alTpn2 zw2%Ml+EKAmy~uV%{^n(;1i)g1DYJ~3W_)e-+^*3!^eUl1>bZ0&eXN(VwhH7~hdUfr zmzU?3m!{^D6Z5lU6BF@Ex1MghlgSm*r&ub-@97Lx^~Z)nJUW7|LTDifUv8I+Ju?%s z!)YHS9D1m4Y}SwhnX^DcCO4o!%8G;@MbQu%6F^2E@Nqmq23()ny!P+^!&iR(pMPjH z5wI+k9cHuHK|qkhegRSoGw?Xn&rpONpZFOf*#g!hZ;@0iHG;wXp;Z)NQQIJ$&I95> z8Z6Bg1^46_uYkQ}cQ47UD$R8UAGyurJ8;T86 z3-1}@n?&S;E?4;8CFCJ^6>y>2FEEWTSfb(Hny*%{eH-6(cKJ%H+ zBoc|Io_gv}|MXA4@r`eM-~%6c3=tk57hrFxynbVCduyAHJRBU{YLjh|=XffFi0`7) z1$$6pd}?BTY2oUVSDtv%t3H5#=*1;KO$cpK7m6ULjDZzqTFplKG0ZyK$9GVwfgpt*ttDVn z!JQ0&KgptGr$sGfEmXt~ zq@$UK!fBv;eS@e{mh;(*r}XR-Gw}V|i4LbkN(J&g*^Y3}1XFe~-BTuT8$P(~1bRlP zfS#6x3~ce0%yF}JDFt$Lb$NDdH0t+Bf}4Z01wc43t_+2P7&S4^jt#s4Zxd;-Pywkr z*sjnljmaz`IufM&R6)q>b^FwZFrCe2Q#mq2NST!u1rlPsEUPznOHZwiwis zz^nRt3|Fsras_P%wF{3fQVSsf`=VpMXhH!@5RS{i2cs6=Be3E4j7|q|>eb4?(1bt) zlk#d2-=GYM&ut@7o_|%QpjHKd%y4d78e(j z^GU!B6O$8f9|~lv)jBvh7#|;h3&n`;^LX;fC+FwqUwY}KAN;`|{Oo5x`%Ay{OTYP> zzxfyMEn=^vl}R`%qiQZ3W0h2=O(XM-OmXBH-xRwicWC*~GMr)Je) z=zbu=ZL~-8tU!MT7pmnl4pp8Wr|2wQCQUQ)Krjf&S0Eg&mP#kbN0oA!1YI_YmE3qB z7>ZyeIu5(JHRwPlIw|4N7IVb--z5VO*rV?CC?T?IQ6#AlB-Mw;5qyT)R5MHiM=2`= z9B4J9FX+}tq~MVy%-x&K2H=LqnF^%nf$Jp+QY#dYc4Pgv$J$i>hXD~ffT0Lwf!J8< z!v+u{iakr6W~<*a{`0GoFKr$lWJ*o}PDgRWDai_81-B^Ni2@lht1{CBe9&SaECA44 zvxc<2<7zfluN2#c)^6yu%s>LG#ddYMxzUmELULktHTj+=my+`n7u(MlbezsLCQR#9 zWCuT*RMUXK1#(~0s$5aT*=c7|x$Ui;S6*4C6BD=ZQ!FzzJ$3boE0dFB;c$R)P~S<* zhS33MKCnh+sguK*Me=$7L*|~QN1b+O|5j>abN{86H*T!&@9muq+@c32Uhq)7AiE^R zC96s>s>Vi@Kv0&wScrPq;gB@NYIKgKPSz5=-VISsQqar8&^m-*L}@V|%84Pp3FpJ% z4Gi8aoavw$0@mbE%v1-&P%Guyb-k@uTTPvz+ATzolb9UZ2??(3=tk54}8>WwauFw)Yd@LWI2aK0<$0z-zEjqFY0MIkY~8Nr{%x^qKOVzILSFMfUqmW7L#B&e)!CK zfYCP$!61{L!?Toxm8nqSYAVk_`_^!mAfsm)wZ`6K>xWYUL_lmZ?&e7WkK8i!Y9XT? zZD_?pIiEK!Gr}Gpi>@xuEG$eXlj95XlZklfE+y;RI1K~oXy*K+WwX`Frt?{%F^ncv znJg8D_6VL>ETX8P?_4iF^WM>Rqnb(QA*UZ0VJG6TXd;>*ZH{2bPoEIQ>1l{ZRMH6ZusE*Dkp_t?k!a8hF4j{1s8)$x0 zwCAzAS8hRkpz{7OO?B9R1eUjGJ*+~TV#9`Ka4)OFMT!mZ2o~S=+`VL2;de$bw~IG8 z=*O95@szAC1}t(oC7oJ7@J=TZfV?Vvd_=ETmK2`no9(uiKdod=OSx1jeOykTFxD6j zM~9*q94GOvuC6XFEzU1srQyw_Kt3uE;d7t++>ihGj{`Dz=9y;zB3!+C^{0O7rwWBa zAP{&A5gs3}_c%H_+95uVo0~|1JUu?XNP&z_OeGgqCz6XJbMsTv$v`YYtHwoKKXAbx2wt4Dq%uwpOI(>5p0q?`9<7=>K1m~DIE6n^ zEavG(L(31L7!n#{kvL>!sPE9X+<*WjR4U~{E>p;53%Oh&o2l4Sh^o)$LuNxj^#>I| z2BL%n$6l|GYQufI2!T40DB?sNCkR~VS#s27rwxg8#Xv14&Cs-F-RPfDAW@_lHhV!) zJRWJF0?C@x$r>vcE!(7OU;yC}MGxs0(C)8GxEl@|HA`K_kzvoZs3`?<(1#wTK*l10 z@0*R~>So@Qg!2^0fw{I#dDEIkeK^+~1PQkw-YZ0P^g@=JO+bQJ&7QO_qd?9tOs!r4 z#4xciH!+tSzq=7Og)D^vni^1xsbSNBa3q9UL-82W2;x!I=Y<86%~k%*zy18L{NfKz zjE5=GMQJ0XGGx=INFC6swCUg^zKBtBcO3GR<$Ih-z24l}J>J?r+}=K1ySaDs<{hbp zz9?!EsNuLb9J^-&h?b;4eM5N>HVDX1g^(?h*q z+J_(_4757IpzvRho(=I8BHazRZQtQANx#D)XTpBf)T=czE`g&HT7~L5QwpS8lzE;b zTc_T)vnbrYi8>@@klnv{GjI0BnL?gX^}E&s1|g(fH?Brq-EQx1U);2OjIdFnuui@; zd`dO}lLi1dtJkI{J$wN2&JBppEIw4uSXP` z@SYJoaW*R?+e64$c2aoaVL_%#h*Sk?RC1K4#Gzm%T43<-OP(lPv#itMuv{?--4uW2 z;CkJ5DRZ1XJ)^F{pY90sw{aiK)cc*hioJ&}=gKuqcp^3SBW6 z4F2rT{_OAk&hJo&@VmeJyH~DUdCz;^^M`-cREbj9M{GqVR=_GUoVoznW7>N=zRbJ>(N@RyL zCi)aRP~>2f9_ZE7RRAS>@Y$oh6M7MueN<)EG!5WFxl|=nqcn?h@Eon*(rnBZiol-k z7A5#{a=7ErNlW%Vlo)82;gAXU?n8D7&Q|SIf_(dxR6Un3)yik51TWKot>*H0yrD3e zHlZ%I{@S=%eBw+ z-uuk9Y?j){9DJIwW=w&BK*;5A4-SrX^$raWO*tICU?dTZWyx+UsfApDP^LC0 z3}&^lT4|}3YIH}DS~xqk04O0A1!vTtpS)f)W%77@0ze69kSf(;lIf91ct^>7bmluo zXq&}CCJ9M`NH7rcxM=p$!NK8jHAb^StrklaV!4z9X40$z7fKIYHWzD1;g(Y#hg5mk zIK>3>Klz8pB`u>o`~Zssn1MFX#`@TxfQ21jxv&FvJQA{x4UP2mj1BZSMh1dDcPXKP z)vHP>kR2Tzt*x!iEzM2M%^z6>@^evW=!c35trTR zLYM$6H@M4Pno5PqTxBv_ur8okZP25OkKgBaPEWa^(-M>(2n7<8%ymYKMGqqQMxEX$ zmWe51Ac!$T*=>RrW*~adzXZIfhUj%D@rw$hEDrUCn93;Q(bgc6IzdXq^a;1%-ObUYMrJI4Ea!+tOROkr=tIvgFWp~;E`otlY5 zl}@Momw^cP+;h*5fBfTkJkICy%MfAn=FKZstU&0Yy}g}*2uys+K`4-e&}cc(+tV{2 z1+sqOqWad3n);@ire;(1g4q;E^tJc6TxgCbI!+GzH0fL8^LZfHV5u@$023I^X0b#< zIxP#hvw(D3mi#8@l|%*zZcbuo=>~ZQdm0nm2nA9PE<;A0&ZySud3+u?5*O)y$Re>X z#(fgmY$g!!2f@M5?f3fvUN5;6qKlnesX{9!xk4$ED`ZL)3+;q7Xp&!;!cgwC#D9V; z1Oh#AY$TD4gyRQOAjPusRsH}`5eyb79%YG0*&~G)cBBa+9*^X4Z3SIc1-Oj8 zq*f#1aVCn&!$}OF(SlMWUb)VqKuRl=bEIYIoGRFHd|}Zve0s{3Z%;&y5sKWZ~6Y}1vUE0ox5EA z!GST`5ReJFx(CO`U2{?kRmLj0!J^QcWm1qE_aA0csYHnaS&8;a6i6cV0UQ@tyC29=l_aB~qZAE^ zIFrQ^mHsBcoRvxB7!x48CYK9%d=}9}0yAwE2iEN9+g;>xImA#Ko!g0UBpMD!!of%o z8=iC!#MMsA#!dUJqOl z!dPmZ%j4?w2GDo~*0b4AWkF!2Y@}UoWR1n5j*+2>VcX;=`s{lrhWc~(l&%z|RVtKi z9c|EQi7Akcjg50+(9eYc^SS4qi&h-3z4jWqU4{q<=}D#1U;gr!x7>0I0}+_`%*E8? z)F9L)25q+ft}al4M6)jD9Px66EU|Ae)zq148`LHXU#ut;Siwlt=k?Gnkvgpz06~?> zY&MuJ8m+c`)jrTzU!2)#NmZIuVR_sQDngPT&uSb~q5060(-PviNlLIqL={7Q5(R3saF2wp?_X?^@?ONF$jjpW4(Q2z4NFR zD)kmjEd*@f zi*UY5ECaNM&ek$5vD^|#s4614oIq8PSWH6-Fo`AUe_SQND}PKT!0J>i7N5(;Wdd9f zz?*{UG)(=RIKsj~Unm#|_^eA+J73wt-Muj+%B;z{u{PFy`;n zVdig*G)1vn{jox94a2~^3WeY}Zf7dyS-}K7?+ji+x=!?EM<^F&c;ONlejTU*aa4}{ zIcz5ZPFmaH%;*yV=Ec=lnNh{W>K2k@;P z$=H&{nA?xGxL}X*CSrz*X)nBP{v8zpg6*LsQ479=)Y+r8Y3jMfkL6%3HE zMN>@yFu1ax#o-(49?w|}x>*meX0Db;k<r(U>)@t(#+zc=N`SA{6BNCSa@k}fA&$B|2>k0A@5yliB1m?hYIVN9AXPb zhDap>W=PBmO&go*ad#(vDKVJX;;D?F6z5^N>Ql@QV1z=|52nchsTrcjQwin}821Xa z7*KS656#`k4d=?G)BTJ$r;*2!PoHN$W>wB<8?|iGn};Sj#l#yP-ZBeaoGGb(2X#2= z^1glzgiIbh8mBADgwyZ(%+)c zPKIM~T)2iisl)w>eTY#Aj1qMn5CPhG!PGPI^-&XW=51Zwir^z)N!z-Ad}T}pFrd2( z5x<3-!RN3Xjl)x;99cw%jK8&k*f~QrYPAL&QxS5nwxWZX=SteP4RhI_G7bhtZ4QRS!!UaiW_lWDI z7S&#la5U?7!TC}BC-E(~T?L_I(ezP^_5^4x+2FAvJ`!wh z2GoD4j701$uia1#;;;Q2u>tV%X+;uLz`*W6W&L36w^55(>f>Z)wUB2y>=y|tRg%x& z+bQ~C9J+w~Tle1Ge!XlE!E6Q$AiYX@N)x_p2p!;Mx;~yIYr< zCG$B|uymA}o+ltnAtjc#Al&JJBF};7;Fd_hbWE;F%gm4m@W&Js6>0{x!SeInc_kpgiaW^@X-MW% zzZwl0zy#|KT&<p{*toE(X5+1}qq-j@q96$|%HgMF8vLh2v$5Q>oi3-Ir>^r?R{fh;2G<6(oxIaPgSK>E_gGrlG z^!uk}5fNebNIx0G5wC}MjC)PjgW~|aZvEopqa%=wjmhn*&i|~9H>hm{ZU9D?R$m|rv5G-|#)1YTxu*u8M9pU%*aEFG5F;ymx zLX$*yrl!3*W4OL-Uq25t;~)%!`8MH>1~0XT6H_Y-k~aHUv=Y~-v3eJyGEO~dSfH?v z6oo|`MKn|}GMm|KP10OcPf#*=UjJDUPtNt6i%3Z@S-p6{u0^n!JA^mFo^|W-IlyiI z;fIJ{yigPq^U+O}hD{1dtYM7?{Q^pjOy7PXlb$?XR)mb?m6Yb0q2SM-W3UOMQuj2v z%v%x-;>MieaX8UH+(bx~*`7;&^PJ-QOJ5pR&Wkua&dWUb41-#jzc-idU@j6aLn1{G zz^L0cB&t9|JLN~2IH@KdNF&@HOrKC%doX!33wtJOHO56O^O<*$??gN;9&-eqtz$XjkF^-Z2YdA`BpGq4*5p!}H8b zULQt>WFeRol7voy=8s}XV$;S$fl{p5ve`d;GW3t!1E@t^HjybNJ?1H-nSaQ##YQ& zMX<^VL%T&$E6hlO+ZdBYocmUU(V~G=p$rLX@DVaQGve5vY!I5;_imo{X+^VE>*;AY z3e&C?jN($0U}c&9M4}|6sRBQ_V$#Hqz^WGjf5>Tc+Y=%NmqE1J=RH1e-)Ngod)IYqQV_p*vJXz zDOKW(VbiINURChxr6V0aec?_Hkm9^)FUAsw&W2zjr1p=5ks^M*?g#?%t-i&XhzJp8 z@f;L>gnAA^Ftr3_8CJWmo?&jiJAZozAbSb`rzBGf+r<2-eOO1AG?uPZ23@G&M`#H^ z@=z?wl5`RWFQZPBUr4e)U>w6HtfBwi*`RKfBQ++}P(DQII&qb)?%Skw1&R85tF+%2ZWV4W8~Wd4lOcWlWF?4u%a5 zZhdzU5+x$1P$;wm@#aQby)_hgw_8tVvlXJQ1f@MdF!G6)or8I_jl^IM-ss8_x{sUX zS3atVOsiCld+De&YpO7qOhcGSwgwO$3mn*s-Pk1r=L(-ORgXrdS}KWGjusa*oFPY7 z8VQuik`%&=F5NPT97D6XVVnIEPXuF{WG;9TPk5sdn}`F2or@$+@cl?kpBAT_tR72? zmsP1`$1FKuT>i7mvl(mt_yH#bO)FnPXIa5XV#l)qyQn7fzu+Cy==P15{b1l`xdL0n zF5TTJmNKH^mfBy*b_`ITrK!+@sVP{p!1LKE-~cFPdC+hCt5CcOdVLa=llHAwPT_EsDW06rfBHdgex`Cb$doyq%W#T?k64o{dpYzeX-||k zWrdTmD0eB5!OGJ)WCS^gM|cXfMZh_BZ4DNnRFa(KQIphiXbMgMJWlMEd~WV`{j*Px z9G$GDXgwS>UEk061Amlgk{hQlP@r%%LMZw^XrI1eB^Uzi&-~&FLw!(vu&iVS&V`uO z3DU9?g`*anG>*`;G;jwcv)pXtkzw)<)QK_HoX6ZRftZ4+(}bSF7}7$1U)j}UV82Ix zAtxa&AiN-=%q44$EzW=6Xn3!k==Y65qC|oV8jdDtX>Iw^z{rJ?D0gRLSaI@g`RS#) zh47ce#rng+rWmiN_@>rVdq;lobNU!H`}In!DPVbXNtUdtv&;LSMEp-nXV_xg%YnP1 zxu%0}Q(@Z&J$>%Nxs!1rbEaxI;Pj_$4MNR23V&~GK;WF{IZQcp zg5Qmn8bCRXQSCd-4}@fm@|{Nhp|LDT1A9~Ot_Z_)vlm!^*7q}(K7GMTewmzP7FAwE z*grq@Sthf6UJupZpYC9cXcFb{6)Fv>;FB3?RcU~lWL{M8!nh;UdU;eNGN>;=cz6xq z-ZTPcV|BPp zX20nKAy$Oqerm1U?vE_oDD25Ijnp5t{EmH7%2*M~FFUi==u~K2_c37@^~+yK(f?fN z>ELhwPO7r(-JTqc*&ujxGamn{>oXl4gmyh78RN=B1v7YC(=) zRZiovXN`Bt0OwZ0FNTGZw`4#l*yW!;)dH2uHT&FY0-$`V%8+iMl$ih?F zGX^GLn=g#DMVF`-ON>cz4p8VFJ~NjdLQvf8WHVo|Z|3miYEXdB^c9{ zFV{xXnHFL{1B3&FSSno^&u_bYzNz+|UO)dj;>&6afw@Rmu_3)5GQ)GCpjCj+V()t> z`?;W25ak+Igyfqo0ICtMBUk##PAy+hi6Ab;P27Kwj7XnAok(;?9C-(0LNoB=U+^8J zqE&FiidAq1TA*(g4c8=s822AMIc8D*@Ebs43=Q5WF;?N3MZ{;V0(Tu8Sh1S~B>2Xk zW|?u*W#TY#+sQ>ju?R;oUKIMI><9x3X*UV=A5<`KeI(f9UrmLN$oF*aD1%@b5(%h@ zSu)NT1fc^69vjr?anOL0RBHdwUbxyB0@(0OJ#e}ahN5DS25v%pptDga%9b62&d_~# zkkFx8X3izI7Eaw0bxX7=p|CQPWS$%rNzrIdozy<4wAI<^H!T_(SI`cSU?tjTFSG$T zSu<_F;Zgv}m48fmkrk`|f#~@;IQa!Q*&zw!-zI;bWt|*pmU$5OIZ(5srL?m0cvllO z{%h&>1{*6B3Jm#U9L-0!-^Lz6Cjx*zfK|{-w8NLF1c4ku zk>*4YR1*llqqZ_&LRi{W^+H3s(M53~K>pmP-MK z6V-T@3N6AQH28CS=2(FuqpMFLDz~Q=6(ESMQlaDSS8418w@DF4Au-X=LC%auAZ97$q9y!l+hyfEkRA*^|9?; z@s|oi>2So!QbUIbics_}?K*o)a_a_^&Q{$cu(zkk(THNgWev-Z$U^r*anWZTkPrFdyoDWWH_MO744B?nK1JEH)KHW z_UlC#rtdZQSZYsw=FqxDADaYZ2RkVnf{casg7lE|zl|>@emFjs_>0ul+tuam{ivaY>b?O{Z4ly*oM+R0>>&B!0V>m)!I-3+TOLMkl9qm&q%nBC z1b>-w%Lcu&s!8?KCnO0pfEj4v%%$X5Nr-m835PhLla5NeQVRjM+0ajzH1s(nQjgXa z2K)19Q45!TQn(a!x(IQ$YPnn~kM0B4FlVmwFT#FQd zt63y~m@b?jO0QiN$X)bm|9bl7YCgFO{@hDN?i;rdaGv4lU;Wh7G;ZLqT)+L-t`1^w z$0dpvf=sYg(XS41O!3Q}JQz#~`3gztmBz2HG8PtS!f0 z!UlI2dD^g1ER4*fD|@bI7!z)-2?37V9^Qtm6bpuPrE3&y81*JnvtrytLy44IbMXEOABfk2X4wtxhWFMN? zJbm>T$fpnl=OTxRWe58`RgSS=3pSjz4WZp=s*xuPtYOJJS9K^D94KD>X@ON~$o!!p zvGVKca=pXaBA;lqe#EzN%f?XDReb`kg^tSh6zt~J- zn9?-k{kjga!ojg!4r3qoqV$pYk-$8kn=!GsV^xR_M8D?Y*X@*@z5U(mTQWp*$B$Er zOXS;wbiKH=w6r5$0R2{5RVB%H=jB_9fe0x?nC{@BO9s+lXp4xff0DXY17xofG`j|% z?7>tQmVFZ)rHldnbPzqMX?-Wc|qSmrf-j-_xlf)PVZmE|1g~0Qu~N6Erpt;sU=#VYTC;imnjo8*r*ov;g9c9c~Ftyfs`Z} z=$A`&sfxI1%Uu42m}JC%=WLK<)E`aN2FO>L$j}gi4Ly-m718EriaWgk@}eY2UWQADx&FjAZKWR za$p3!UU>MYLOJ?~0wS9`St*SwZpIp!VsNFae(n??@sHedK#?12{RcGOX5=ppREh3{ zk;D6-I%vVf9Q+_S!D3{VKlfHyV$sG-EYq~g*mV&pZ1PhRh2PT%VfiTBYKCub_KH%@{EHTYI}ORi(y}xB|i$mAd6a- z{pAMp5#Pu4@GTg@O4hEkMpDOL&d)ddj=!#dJNn&bn|!=1Z993QAO>OJ;^HC+7HoDT zWswO=&xCiI_QSxD44GYTzCZB6(Ve+>i36UrjQ^`j@z=uEfJS6S5S-`Wq97_Zz8(Mt zFwjC>`+gD~Rfrii3y%?95fBC31$7)`K4-GfhXQV-iiN210 zY-CKA#W2m${ecY)>mBaSW(D+D;HMR{K_eA0C zUSL&5gek-_l}wu?jwqFfsXIEnh-V(c*#qc{LY+p()QM(@FfwV2`VpDmc5gKSq15#j zG;~pVmzikD+ma1hQ8NK@wNN7FnK{#k4WLG-Y$A#s7?J47Vp61zl2j}s0Rb}62g!kd zQW)qI^<6gfTc|I-(09QBSxZujcSz^Q=ybvT6k? z6cqSq_yaAfcypIgUeRUQicr(L95Hd0v!gSRgAvkOxQ?Ba`R-xS*UPzBHTt_{^Z0e| z%WjA{XCKehp{npTFobl5l>hKI5(m~1yQpX!EAYrAqyY9S@7YSzVF<3ue}xGppBL=t z;regfLFla;8^+m_GLYIL0{u)gEIo5IIJKvzvaqz+VQe-nj#e^qZzeSI+Q?u>LiP2} z_`&Y_3+T-b|7gn9io*|r^FQ`xfhlBl@j?xCzklAP2ofPw>${N zN~IE80h;O<8DM(>*?t&7ykz^H1hel}^GJG#y@9DL5q$@6onN{4Zo_=O6-lvwhY&q~ zEp%*}aXK{Uar$?Nny{9g00ilZpPyIuOn7s-0Y#x?1RR1eBcBMs)O`jp|N8#|_3Drg z3F)hv5gBn%est$mf)jf#YCU~0^kKut8(Ldinp-j_w2?ljGBon`270_kT29%4_KNTiOHVZJ9!m+1tk<*pK`!D{GB=u(Ct_w={e6qmaO_ z3}*5IV#2@n@o)O0pgK~a6eWD{$iDrgs=DWO{W8zx4@0VfAX(fSKNjb5xA)`B3>I{> zRg*xff{`m&8dKzMW@LAh9V-x-F7C^6c{w5iqDN2f_vxND)>l0J#q`+v$Xn*ldJ-0% z`}1f!l59IjZIM*}&Ir|6JaZcg&4U?* z51^+)tk#&#fLem*Z*IdDM|t^LAs;{s4 zQ)n2N=w_eJ-g|oTYV!mb5?U5R(QC*T(4k1?ZSRMsVp*(BnCB>}EKVs-a@Rg6daV*i zcHQ{C7d|7cF_)L4aOCIcVxf2*D@~Edc$)pt zjUu!dyYaCRPGwL?6;4D`{>ZG)|E%pK-Dt*}i`EJ6!h;zF_-W6X754 zB@X=qi%y1-ST!KRjRr3oSX5~Gv&1UaI8LJ`kn+r}B!O{Rm?FIbXD2>QxeC+pNT*=b zh+Sn!B-UPq8}HiNNHiUl8OsQ+q2CkVHkCLXO+2B`Oy&uy5ks1Dm2gan3^^1Fi^g5{ z==)gMiJqZ`YOqQWw4|PV zZxW{O>G~-%=D-CnXfz2HKh;n$i?u@CBz&M)cNz)Hn>=IM<>&4?G2G95LleR*2bxF z<(7#cgOv|m#BMyI=70g*m?TfDVu#rdJ!Z1_;T=8r#xp^qRvDU|Fqp~|?a>3nVjo|lM7BSH zDVix6Y*^=`E-o;6L2sC)oS|^9l#-J{!Li5?>c*3@Nl%)ffz|YOxj-)R6wx&vnna74 z1OqX6J3uU=TQHf(>FQayMJ3+KRit%$<|Gy;63!aKG=If)arZkS#M8vfd%d>tl`u;r zLO2oH{&#>rJr>H?q2>cmg%aAtihqQ09p*V+SGoY1`_i3jdrBZwC-niTWMjV>K_qSM z@mOVIp!`pL{=ZB3eP(7&m7(OhnqLtRWq!_ZxrQ zle$u`wt3#bAe#j3U-QrR5ZhD9NG(BJtcgvV$andt^*P_JBI7Q#T25|PP!(xC3!6iL za?dUZ0})@&^fxqFgHTy;50t!=(@-OsiNtD(j?3128zai-51W0*PCiVu<;~t?Vlt8h5 za+15H(jw3sddnDAp~DRf;5)j0`bANOzsePC z3w5gD#b^Hhjp2~+m4cOG`A6Sy`1rGw&pddf$1#H+QGC$Bk;#ZeMtN2Gg2y$tscUSww;UJ7`YoHGP(G7TQe$Uw(5#hz#%d4xi z6IpG`^!uj)s&=1Ak`9eyq;iPd$Bs0s`h*0IQYR9)X~ZqBF@Yp4r; zFkzmQ8*)Mt#3}wdYSWeD-Zsb~AR1>S(b%F<`p1gXlG8}rfkhuN*p)j73E`8z25u8_ z5Zcv8C^Ze13vHW1AFAF5hiXnWihxf(fkTn$dl6`EoLc<{#5pS@1fs@?4=cu2BZ&wL zaxJG!*Du&p8WCuqQ7%g!-8WUIN{;R?m1Ko0hpn3bE`InA%w&1{WQaz%jQ6voVHdju z-7_FlZ+S963VJ&rwh%@FN1O}J1x{JWbhyYlA29~2(0w;UW{!(ESh7-lH9SbdMc0vC z-`1|+4z@djE>sdyd&M!Z(8+Yt7lv4A;)Lk)^VnyT5tES~5udNC8WJ<1C;l+>vokmy zcxX*KuwrWEGld{*hTk9YEnA3qv_2)DpC@@4JKq?eZR{9MrfQc}1wr3j_{mx!MWpuAKvj(DA8CVP#*tg^FvN!)rkjZuzkmCLWUa8Rn%`ucjL_{P+_4k-} zt{$aHW7R!B?nzILNt@Br7!tg`yZNpb!7H=yD6>F-6{u4Ghp$9a-FWM!&1x{gT-rnO z0#7U=F3mO{3^gkrUV|Gkl5tV?n7N8o1a{vfJi(+JZl1PjP6W^e{|JvE z)izV6Sf{E(n8IC|Rh}?y7NvwZ5Vcd9y`zX!dVrY*16eNtaCYzc>svgoYm^~|&>QRZ zvsZHD-b4TCs6ByVsdQ)f%(jcr`rI@6CfxZPD8hR&3tBJ=NoV z9q&H6aK|AQfA!bhtYV@ZuzI10i`;i%tq;*O%3wHurgM zZe4BN{oq<9YTIU3&X&Bs?HhJxdIVVL`tnBHWX7(gUDj%bj4IO&&TYz4eW{~sS4`_f z_|qRKOe{@$%i|<6snh#2C}XHi1-Sp%$=xN#4^8pqy0JU|@pu(477#|$mUIT>(j47L zav;i#fYpd}_C!_tAkL4%iKY?1EClq=t9Ud@HEPxV%riplw-Gud6GQWKEcSOe>ds+n z+>lkPOoO8+iD+^ENHbEvmX4}n8OFgtH`dFXZlmLDDlC-BSRG^mP}D0|97K z1t8TULGa@UR$O(QP+hp&mmknkq)NH;#Z$p>MG4LZOf3^ zSQTStg!dUcx|eAz9F31z2uo5#U_<;I8cwC~-ff3C?{X}`K8<_;9dGPL!R)b?tr}TM z^*l&ER9%_^Vy;OT_&!a5dX|(-tDTi0uw^~E(;%k|jRbc@=_J3(sYI;`=4cwg0-pg$X2|p~*Hx_-;>^0I!}Ur>iVdX09pF}t zVaLoMPu+&8B%k=gBaSMY6Vs4hgS`tTQq#Km5}6>2&v^{uKWZ)J&}^y*y}!RFj~1-a zQDXu2-XVnPKQYMMwJhAAnv@b4dKirdWA;dVx%9X*a@--)b%g$39!T`N)~M^@a?}5Q zL6U5wiCwrGHDc64)Xb!OnJ=zQ}FOW8L{8{3*mt-Fu`cG&fp# zLHkMDbPTk%kuYK}TcuXg1ppjC5L9_!2Cij;n{r~Kh8?&%4s6DHNKs-$)7YB)rNgUvl7{u1|X zA8h2Oa+z?tu$S_11O)E~Ps4oBgG z@*DJic6C`#=XHy=RoB%y7W9hga1O9$pCS$IgdIF|EKUj zSjA!{YH^FdchgowwP`_1l$#Gh52{%_ptCa{9|(oq=q8G>H@+ys&2Y!O`;+-qLLG=< z`Tt!rz0lQjKL{dW?L4B69_HNSJzc89go8;p@q4C%(*dWuLTr+{JT7aitEE8ZqEdw6 zgB+kwD$Btl>qfY{yG`1FK$wpDrdnViw~jVt&{^8}em5&&2I5Xm$DFb4%t&(eiV`Ud zF*89WP@^X)VI%xTWuTDVOVCx{%s|mG5~fm(@t!Vu!*rH7R=-B2P-mM{jD!Z2Dok&* zZMQUB^<{Pm-;3*;8o(ju%#ii;_T}Gl?7(SQKiD0XnyMMUFU65J3ySzkT5?ve@AnSu zaFUifwj2}(U;UUBEV+OhB734{ym1!TDT1ea(}r?zeju{{UBV#Un!@(0wY9Y(Dgh11 zrn0sc@>Jz_)vr72pH8=F&Y!p?ruWhaT^Ni0?^Njxr?D86m6g?Yo>V>4A>1u38GE1q zN8f`$86H2f#_az#+nAY|L2$jS#eR~qb(pM7-(2J7;^yY&+?*8Ihm{(@E=!*j3sljj z!^1n?66VPqha5kLA+(H=ZuuUOg6njzOwghdZi&Dsu2iU3t5APbt&k|koc!X8ZO7eL z(fFemaq<#Fm=E>|;I~4?Dr?Ptf-aK_2DT^QF!W*cP9NTP`p(#G-SCrJ&PnECj1y%` zw9lCGR?d?|5s>naeqb%h>V;p30V9SkZ%wzMJ-1oA2IIfL0Bmj8lg=U(Dkly#B+|`o zU7bqm?CcBJ_y}9-Te`a)s65H3&?aVO(|)EiwM=?)(o4L#ou_dqkJ%x2`MIZ4|P6pysr;^7X}fJI6T zF*iJD{#c4EIp4?^-g3J9xA51aGI$^B|2}p;Ye(nj5JumluJeTPn7I;&v)bw)wQA_T zVyRH-GKFr)N;rTBqV<9Ryy>>d5#(mCJczLcoaT7HvSTlo2nPXjs9e~uS)^6NrI~ss zb!AOOhv1gZhA%ZjW^r#Zc4$<(MaX=~^4Jd4NBBc|OGs$y8SSQ=M?=Vjx|>IL@UX^? z9d5}P-$?6QA-d8}v!TG>87cS`pZ2g4kY0V0KLsZjSU}VSOCmg+?5kK`N;MYdS@_@X zG_wu#vwtc>0)dHe(W=mXxm)sTTX*L3Frnwj{{O=+FM&Ne)1t4;Sz0=^h60BOb8~a2 zi#0;$&2xf6LWgUnAka}w+XiR$)0Q3yA%TO?vq}~hx~HxLT%){wYmVI2Zhs@D-{M~{I54H`~INmA@Ms z(39auI*Lt(tkx=LyC|QO+%Y=_Ba3RcL#%KwJ$(uPw_CDezeh%v>P$ZN+5A`7bxnk_ zBJ&{$WVi9hFq@yVO4h)|dY8w=+RED6FQ4Zd)$z}HA#=wxcydKBUmyxf`5&QX64q6= zAOo${WkcA4!cwI`rJ>yfQYXQJzIdKcIU_0R~Ah`W1xDHl)6o@x8 zb;@YHzqWj9#hs4yz*kceLF{?)g0FwiU2#xK6lys2#jyq=kl_To^L}}YhWq;1JK2u% z3e1SvpSr7p=La|wan~UQ)lcnV8{e7bW;C>ohSg9rO@ko4aO}=^nn-LtPt@@v1`vOO zvtEcZ5F}PZ2x8y+YLi@L>+!=|gI0TDGBV-kz2tP}FE?MjZ9-s>Bg6a*OiWB19Uc2H z-4`-o#^_ERqbAcB=E)*s%x-^BSE|)k)fxn(Jpni)paO@{SQ9DJT;zs}Ta7MxbDg4q zwJ$S6P+oJtC@>pjTm{ZF&5Ml>wdg1&%XYNru%kot_&+#;_1o)<&A-~&aXpdfLHJN2 zTPj?o35>F|-*C9H0y46)-Nu(WPf*HMjy=y-{A4|l5dBwz$P zY6wY;{6%~WXn$!?mr1IR4CLn)byAK~jlozBM;Hlvk@0#=*G5&}`z}Bb0Q=3{e0N~V zeaFqBMW6V;zxY2oUG#W#-(|JUv97X`BYX1uPVn*ZF)C}jcxjfvEo5{vIw`M3(+XtH z`_p&sKnCq9%ksP^zfq$CaTO&ru*`Dn#oM}jxCqYG3dZPLGc}{@sjQBOMlYI?85o%>Dw{`JN_KTc!BETU9dIk@p-Oq^K@Kr z?#S@v#3|?3Xj)_z4vVpZ5M$SMB;Z56o4U7`;2r;#ly5n%O7Vw}uaKn0vKY)?tojuM z0zsmeWZ_j1Dr*LnBNj?1@3%D~G=ypX-57{(_wLc>rgN|F6pMYaVH_sIFk5bl+Mz5y81%^6t$9-{Vz#Z6A8 zgNU~}zLd{#eCEQtjgMdM}A`HQufLJ&)gbD>Kqu^1NtsY%j^v zf-YKT6MY_f5iz!zghUtL`$hqp@b1grn>{ASbJZw2AyuQ>RMeX0hCktA*XHpK7joru z-j5gSz5cyp7Wyr=`1#Y}mrm4y6cPY&8k`!#j>euIKbfAdkR4%7uP!b&hvZ6V$=_t? zwX2d<1>oP<9pQ0DxQk$o;%g~4j>j|8+}~euF1!uMvhd6E%CE#e{z6%{v?3xKXsjaF(*R3_yVk$A~_Rc?1KC+$f z@b#@*zI9tXu&Xs}-YOWEa``wAsq2Lo5qbex2#?`9{JkNoyNGtXE?>G>wY>1TGB}U) z^V1rij>_)Y79d|nIar(_d9-5y2Y6V4?6`Ta#^<(>Hnf=@9aLvrYTTW6qIa7c+C|}Mm7sq=u>7KU%II-q z{K~Sc9j~@n?e|dnkNo42TiU3X$K`{#Q6Rq}u-M1V@wzN*Hg=fO-2S%b_hFtlD;Y+9 zK=7oMclQS5>+hGq2ycR9c+$}X+SCD_!ab1vet-9C(f5UT<&eb69MF6Xid3bAF)(R* zw?SL4NOCIQ6}Z`A>HYP-xJR&l-g;x@;WzR!hlub-Sj*}s)%`vt+p~c#FhCbYQuOid z>Cil#rIOw!R_uB!@^to=e7?>I@84~v!bqN`<3`xSR=N|<(~Rc_PwVT4%Ws3w*%NZH zZ$<>ac1vLQ$L5#Q>--$-jyGt<^cddP#g@`M{I*Y!S6XRRpBYW&A^+h)_8u%|_&z~y zL5f@&IZcNDL2BY=2y*@A*|EFL@Xyeeq!s()zQ<8R8badAB(8hF3Qn@V%wcs1-Na*{ zpv^T7kKPihr`(rQ(p>GfhR+PPxes$@zmu*%ja?9}{Citfl}0j^ZFLFvtsgwidr0nT z{XEmnc8N53J2VRM;X8@K3gvs9R6=BZm)9edn_V7` zjHy*?%y=jc>z((3h!mbr+u;!Q_~u#odk~}$P)^VQuI_cOJAe#Y43lD&KC z@IQ?&8lRZD_ta(khFmB#wOM@b=!57GkLkR*-by2EZbtf7=Jg5KK;(NO(|p~X-Ycjq z<4G#~*uZCH=qLG>-simOT)6u1c>NC63^OXU5GM3{l5vgTd)OU6xZA}n7JKt_%n^ns zzkc)v7vN0qV%z%nV#b!t+|vDu8j+29&(oZVwKMj`q-5>hD1(q@@1wo|-&5`|Dtc2Z_x3`@_Z~ba3xgmyofdMha(} zvyimIrTf1hUz8*3gjRyxpWZI>RKJI1_2xwx=HQNnnDWI4Sd&#**&tH{4sp|5(R^n6sH9!R8X< zmYdakHM#`0Z~9XAn+8S;tP{UB$xG-LJ^XyG@h8oq{+xw%CGBgUc~E2m<3IMp=A2dX zny&5`ZG)A&MqRLA1qeMIQG6d+df#-SQ;LM=)Uey14sO$!X547Ff-bgD6&FqxNR^9& z-!4DiYn=SsU`2`&ohwp2y5n!`4E(-Ree+6UZa*V?Fxf1!Qu~g|dZ-gM%UZ>wrezQJ zaB1Q-HAje3%CnvN;p=>EJW^Z!{;Usp>Tl(jc3zzv*tz5Oiu%aG-!zFqz&HO4M%te? z?v+C(q;GFGs!CUJTnoFU9;@YRJBw|EgO-z4I~In3Uw*6paFRvO;eS;c%#!g_W=j@e zT{T&C;a|Rgg?K{e+*V54*4@JzJ7=lrEyCHLFZ<+~up;3M8M&8m?S_6XgGpDZB&ib% zA}RY}YIMe}njmBvHwk+9AS+=zM#uWMJEWJ>D10U&XiB<_rSs(MDAvnb3B>=1*E`ZTp|3Q5coM zvKOa_aeLY|^)OjvFrLnj!_7F=*0T#t--0Yw;8AexFgKm2N+Q(s_-)`KAW!x zf6-H}t8X2qQpX@F!QQv+!01twjgISDvDi#ne3sra_@kw4kvJ2#ErQ~s2h_cC8$JPl zt|i=9oQJFbmXSJreC7OMYz$&8kgZZ~-k=8^{e}z&6Fuzma$K&ftIMSzs>FVsiPDOe z2HW*JNGltgC3i`zhjjf-G|L0_Q(XZ=>!6Yc2g2GBt9JawL0dtzv~X%+@52LPp7?F; z(^*!qy-IO%{m(|_9bos7_jn9bTko!SQDe7{q~@~DTmhbX4aLe?+-+dj|!gYaTc)NX%I zhTDE!{fqr<9e!ct^}asO)^i;l#iBHBVyI%&c`(qmplY(Bwf3)?$5CyuTrf6_mhxdJ zUZhnDF@6O1zu=rceW+LpA@3vEp*#DJo+07an#)$DRYTQx=6>ilJ%*bbJx&^zHnYN=X& zQ@tzf+I*RcMD(x@-E1p7ul~DW&$#c4ih|2i!yN{wt{hq=btk>w_NKfD9+04~U%DLr zf&E=1&HMflTH|?9Qurdp;|(wROu}}dsK)=_Dxs2YGkw@g?Ro&h+*4^ChjKhbah#C* zICC|ZR9)A8kb`*jX193pcFGvCQq0v_e2$V*{$70AVJFD;s_>Zr{>ytXVct`JzX|3- zy2-{zxPRB(>mgeQ{zaY}#N?|sKzK7pb>c#@?YXr4Mr>pG05b#)!YhpVEJKdz50u-n z;*ZSd4abL?Rop>AjL) zx@De>IWy(#M6vLGgcFTDN@ZFnfDpmZYE(&ipZ?EsrPWf6=&RU<*ZJf6r#9F4r<$;8 zhG{{@n_Th-*~dc$h4=2#HL=>)EtX$h<2~2=uPOo&C*s5Aue(q}CmmYg?a)8N8j53% z#?3ofIwyQ@Y_+TJ)Y3I)YMSfNlmDlvYmbI{`{GJhxry6FqZ+2GBI*9f`#txDNX4RG zgkexpiV?Y8u^ZRnw`u)zI=d5+s zK6~x8KWp#LK6_^^XRi>nzG&l9*rf5q^9(O%oc_^_FOKUZX|C@|G#8%dzA-qfAlcI? zhel2cB_0DU&$abdWNm=Y;bm(UFI+;eB^!Vg=uB|Bhekf)QMdu2hxoqh@J$)W7GQiv z8bFor8pL!Mf?mf}RyoCpMHdI;U@9Xe5(4PwIf@f7ZOO0-{yqTz^^`jAwfW^e&XnzV1|y%RK@%z~ zpRjDwyARS@7{4c*dg4unsE0bUp0!RDXgi-iiJ3TeEK}BssR-Q|!29V8O4<5k>}o%j!9D>Il&55s zkL`v3Vd*#ET4Eom%lEAV(ic>KFaif;{CYRWf4F>$i@%1blOiV8 zyh8?T=TYTb#BWgAHmkl3!FV6PbRT`hE+AUpzCoAz|AU>Z$UmEVwjnF$VBwNlh=$f{ zUDahy1e4jWRT(6j`#7#K9gM1r1zHP{G_Mzr;PpyU#L~TI)~5ft5a`q4r0~Z&Y-Dsb zvqraxciuW+zWDVO_H3AX*y3$%*MhBwL=(Y-xAkEFf1qh~(_Cl=xi4t1;*91M2wu;m zWFBgGbwIaRen&t+4F2G`6P%}~Ov9JD9LLwYpppZk;~LFM$e||tH&OR95o=RgY)mYX z{xuwZ?mgOY*nf%(wo|_1xOPBY5B7y0X@>MixSv&`PHpHO5Au z*Omf*JA~fimh{#dH$sG;FMfrv;;h5oi0GQd*C-v@)uy7=s#iwZEOIGn|; zcSY||(bpI5*0DyF*T`70Vh$YHO3?q(Zi^#f=>sCSY^O#~QiZp>w6WO`YCcqZ;u?>p zVm3Ph>C-%Vh9sy*OqZgsXMU2##7_2?}yOuJ5(L;7l~LcKU?X?ZTcwgvYp&XQ4}09a?+iV6T$e(A}z z5*-6$@4C1r6NOQ$N5VHnz<82m4K9?EWJlV%ULKl8F>RE_wP`spDPk+E$J`jILp9$|sa(Fs4kwvz zrb=cpK+~Fme8)_e!6>fiJ9PyV7uj*=0@h{DD7fOpUoXUkN#5Xf|}wcgnh{!@(fyoM#C9|@LUE

ox=$CCJuh+oLuv^%F97>SCWk)4!CSlCc4SIP2%d$G`A z9ECA*7->~DPbG^OxR`ti>XR3|aiK=D&=aAjBcZob&2tOd3Y53qYo;yWaq%!pvMx2c zfjnYqRyUu0)RTPgec!)}evBIqLVJfT9e_9;? zK9QZJIf>Ti&3aKPhbH1mHbN9s7n&tHQ4mL{-0|1oNNWFCJYHXq zBq3L%s)Y2>oVvp4qWGF?QirD5X$L2Ce=r7Pb;HoWyw5x-wOc}ag z(_-Ul?~8BHC|~sp+}ReRj5JVoR0iwM1_SED;iY|7(_f?d8AFuttcZxMpoVEn&*AC# zZ}*6;!}UTe#>^nj`Oe;jKkGI?h%J|BMb<}!@RRsYKuI>s_X7iPa<4#U8&5!K1H4FaP^%M1Xj!Hn?9uZ9vV(W6~70H4ecdTLrQ5C8!1QKTX%gD0qK zulwifPt}zh^wuEysMOgo~xN2 zn?61dHy)=myR(J0g@L^;p0kCyr5(F77rw5()lUQVkMDnqY4Gv>R>j_o3!m@L1-w5p z1*~ih@R+C>sPt&*=p{vc&t-qwY^D2YW93kCFb%6fCSICI8W}r5*L(CPb}gWkKVtYfVE( zO-o~8@n>Ftt8Hg5XYg;s_)lxwDY#f0(8w9sSvlD18GKYH_ zm6lCN@b7*6XKncy7?~LvSlK>4=;-KvF!D1BFbl9Tv+)bE2?#Q>{-dp^rJcR5rJljx z<(hoR{nxgv|7BZt0b2uIdn;Q7D=YKABS6O3%HGP(*vcADK%Nu^o4A#Eb#ue!t5sh$q0n_|KDc*FKzYzC#y#DF&LUZ@c0W{{$BKf!9QRB z0sfC4|JXhTmLGe@_G5E^0Dr%~y}mp@JwE)pzq`G;zPh|PKRZ1+J~}+u-`m~U-rC$) zUt3*SURqq3pPQYTo|>E(9~&JR9vU3z@9XX9?&|DlZ)p{}N?qO7E-ATK8?BP}HJibh4%V}YHlPk^q`pa}acQOb zS*JDSl)c54bLEx$6|g(oT7(iSYB=9^#GE~Ay4YTbTx@ z!m@4ay4hW-YVGQ&-E->d73l5b>*pU37!({58WtWA85JE98yBCDn3SB7nwFlCnU$TB zo0nfuSX5k6T2@|BSyf$ATUX!E*woz8+ScCD+11_C+t)uZI5a#mIyOErIW;{q8-cj6 zxU{^oy0*TtxwXBsySIOEcyxSndUk$sd9|x`3^=+!d^mX8f7yH6{k;S5MR|(Q>2Za= zA{uY9))uh6ouqPplExqKM(>eS7_P|^hOWFv$dV@^RY)!_Iujp_`NTcgyR$dUO?&BDC2Bg`H_l?I?=4U*Q&==~ z`L#{9tlqP&Z<%Y$Q)5+I%}?cBDV?~p+n){C$#-pH|3tSRFAFGA&-mqda@c~+6V>7I zay~Lv6=e0;=6-Q{lb3as34Hzi8>09d(7XTB@r3i9N#MHA!+hu}h(AUG(mmmn<^LX`Yd6SFYIAU6ad z-qiO{KULo~asP{WCz(^u*C@}#`| zkwL>mA=~4ESl8Ybg&ZTX*5cfxpQ8uaZk}rUC8?dq8L@zV^0V^#S#s}kxc$-eR4m9k%wwBzi99Z2o_;Ox7AT?%IH*SbsQNMWFYSGj|US?4->3c>| zeR!&7(b`fuX4$gsX=Yj8RJ&H$(E?hH7khsLXKLu%x?0c;HdUNj3WZ*tQxce1N23ce zlziO}u54aCfNs=o-GvM{WYbqQi+M8$+zg=|{7s%-JBrJYPCka$_eMXU;o(v{NYNB( zH}-8RoPLT6?EGeeaE!8kEPutkengxllyQy`9oJ!!XNZ$&T2lJuK1^uWlP>}G zW%HIbIwISS0Tgx1cGOgbJ#asPX7g!3$jFoJFgt9M?Z_lZ>*X|+q_bf&(d~uhXJ}q# z>q%1`_sfaX-Fp+5{hgG{rT^q_wv%BJn)cICl&-eBvAsyi>uF_R$QTix>Cnh1XTv#YvR(>)B$mHqYa$nF;XbmO%UInxq>T66N*0 zmJR|l+zjSA<@)Zn{ko3M_asT{{b-jA`bmWskvZBMGaMJ3LZs)J%GwGy9uKA|hX=*B zni&wD1uvY;kJdUJ$W*@#Yvj!LRVy!mjZzm`AfOi+5jjBMeg|QuNf4J=HW+pl4>6*c z8%yrSAHV)5e8Vv>F;EFCSowbYi`(!IP~sVep3mNZ&(Q!-WL^+!PH!AI-XZo`*+?kw zJka%FA*L78AOp%>4e!Sc8>%vu9#{0vFWZ&QbhFXJrONnw3nF%kvuY;(ge~p{H1@dS z>YJaF8t0b>S-y5h7E2V6E4PetUebYho+}YErBF(df7VV)U!*i4qo9ra6fK3Kj}Fu4 z{S)ghd02v&&vQTsG+i#iWnb@G8Cn^KO<4Q{qX7lXw6LGQO{gFEE>r+auQuc;;fO>L z`>&pHmO}c}Y6)-c-QIC#^6eBy_k#*!)=5gxyCAvyU6zjJDS{Ui>Qjkhx|0L|ME2** zSHe8OUyGA&xpF{|>ii+z4ClcR;%SG_RpXmdjB!6DF$I83F*`Ob0ED$Z(#79E3l@t> zh#55tVp&g6{BS06mr6hQQ~}TBWlj;MM!{M3gboVe4ZeH>SYJO`*20KpVxNm#$3c)B zV)@GN8(%C9k0%#Fu9QP9TtYQb#0jCZ=oN^Dtu#OevV6)@DmPk&pBFC@0=*cQYhBKu zdICsS8)`w!1{v_*p|$ECPnxx2 zRAx_A!Z(syUsdZ^T%|}Qx^cSHN!^`n(xC_Hog_1mXeUtEajGZZrbzddBs&IzqyR9s zFhQLSf(XRp#XSg7Nq9+2=Y_SzrNg4MTTB$H%(zg0K3N}QA1w&bA_g^B^WdB*; z3Z_-;Mr9ED#O+9*uZhBr)2`Av*jRi&b{>zcq0+d?+&4^V9qLiKyHV}j9IJ?GaMh+e zahudf#BT+HDxrZf)I8(`F^-j0;{8k>Gq|;(pe6gFC8vnV%Rfjesb#+ZQ%WWK1uY^d z4Srza5(DmuiS~gWP1iS(WDIUmEGgpIAaYbiUebdsMVDfe2Hz=Ph0`Vi0^vZeCk0RA z(iWI8_NG@B?$Y@^(SlXvON7KONJgcOMOYGlpeeQ6 zuQCvo*VX08#>OHpD*d9dxSO93?Z*dZwiN0r(1x}hgA*3UDQ)ZVjkb9Q@9ZF)3`-*I z_2)0;RyPV5-HBgqN*_B8_iI&qv$>-)GuDqtS)4X?CTcBSxH^2oFn0Y5pGwx;Ba}&a z_ppUo2cIL(!r?gEA)pwC6t$KTzr7tSR6jv2VXIU66rT+W9WQA8>WCP6h#` ztV-HZYxffDN3FE%*VOg~VU1yi-{I|(u-{H8gIpGCEO*U@HG1|XS-Vs>z5)?bcEp-o z&kEP=HekScy5WgG z)a8E_Tja3@5|yf)$94W%(0=JcxIc~5y3=y>e!0W#w$~m%XZeNWPIAj-Mz5pf3-|AP z5Vc=3>Rm4rTb&OOG+2Q8O}kkV;FE#0$CO#$&4z{biNNLib=lU=<2NK-I^Z>Mn}!F- z@1R$S?sC`U`D@8@E6HWo$;G0^WqV0p9^L2F+U0i1qbSJxVaT(-zy=Y*k^9iAw8&k@ zz!8>Kb%ez8smMoE*sJKne=vFHJUG2SdXXplZXjzz$$Zgt@C88o_8oohGcbj8_Qn=* zm~6eJ~FkxcY_%=OK=E~YBt@H(XBl4)^rZU zNDicY@-{p6MECW8&~ay4c2d&8I3N~F1-Hy%6pLdtpMtaq^A{OY5}&(u&rz_P`6=GB z8067Rk+x6ea%|qJPtgl0diKTAOGMn+I3&SXBuPXCR)=!%(2P^X?=uF_d12az);Y9T z#9v@IuIj|cR4i1LCh`D zr;pUHXW4%aPfbi}i<4-8EBFX+zz zHhE>C2o$oInd8s!C(&j_kr*v8SR)K*E?!_KG0-WokeE?8P0<2{fy2D~vQEV$wOqj76MJ6;b@l83vD0Z?~r9+vVVi!@i zc=C`~iWM>`RbLL$1ToRLXQKp-<^*KY2#%3>K~?%=hlC-B7~_&K4b>!Cn1rS2u8 z1S^RQBc21z{`8_z3L}Xt-O)xNkt8lj@}iM?BM9^)K@S0jQL4#aEeLWd0NUVqr-fus z(c~c!l@L)^+m!@0lhjB);k1#IxPufs)o4f2Bqvdoaow;;msAHBKq;F;7+G2;Oj@{V z%D#w-g>G6XS^73qbbw<_5?S={bL!Yi%yvTrgR$9<6B%$`r1p`dA0tK!CY)-<;l)a+ zH8ANvRDRAj81X|Jq~7>XhNL-_s2mfeXvvE>1ykJR25rv*E$1IBr-?(h94*^-6<`NN z-(0AUe$uq*i?o5#M6gosCYpzmiodK-L7fKwE(v)O6$M?j77jHYv;K)l$ zU6DUqQ9N78-Av%?f3}-fH8T~;Tggr*A5CXC%q2?A!~34`OEi;P&1AU%VR;0JlU-F* zEuX1W!#pN4m?2MUG@oM?A^2IJ0v1QmG()3REe11R4mLntEe|d`wG>jHOH5sSwE#sR z4GFW*@gW!AMyzZklO4-gF}0AQxd=iq+loEe8LOBXOOuTV*-XsXv9u_Jy%3ea$>u4B zf27!#y+GQ@(I&Jomc2MttOSC;S@09S{a{G z+9_7#!d`ykTG(G&nYdT^Io)qVK5hhqv|&nBQ!^~!*ccODY5}p`98Vr zQ)>;dl#{;c)9PupN+>d-Vkr`~A1Zbw2}Ld9w!$DrEt*-i|Mvh{k~(3c3g)(2y0O~G zQ6<{4S^_gfdZSu)@iGp#dS0{K&-+EU-ocxVz~G55IkooGQf(qiY{3)0G+Vb>D5g0H z%~`mxIdX6f=St=ZZdsaURA?`h_dgp`SgEB%0fR6ZYbi+T%Qe$0nNuOD8<^?)(J4U# zWrgH{`^YsOqD`!0wF0YEeCo|Mq>0zhY1|Gq7pu)4XH7w4O@X4(<;nniRtQs*l1q+HV^gMN|&}~ zindmY7I)#g8nbrsXEjD_uaUFXp4XHqj@DsyL@+$fu2=Adw2pT5+6s=&fwOk~mc${m z=x+H!SU~X+MXNP>$9`K=5l2^@S=Sr~u(P|aBQvbBy{)aBsPn0;^+mlC5Z-a9{_Xs% z>%^@!iMR{wtt%G02f@92Da_ZuziVR*d@HT{TD+A^tm6^R?cS{CilV&=KfqSJnjkzK zS)vD8qYJXUok*h3h7Ew&&?7e8gBYGZ%jC^K*-ORQ|BRjZIlGrqqrcasrb)Svzr0^i zqFZQO4iT+cp}UVbyfX;1ml=LQma<10e(;1e0EV_k+dYN!RG$yNk1l=STloNn1_+|H zm=Yy~%KAX>u>wrnp!?8})cD|Ilb+Ns4du5Xc^9!x5DH^ zNrGDU%rfaXC=Gh-(PZrB+L+(d7=bB>KIKSixU)Z;f-7Z}$Qa+;+u(k9Z*VAxU;9Lydk^Ba%+Byc1W24$>)L&6>%li_n;Ddz+<=V7Q8xNwq|-Ni6178agnRW1hCuBQnv z7D#XxojFrbw-wka!KE~3JfG)yJr)%vraxKC8AdFYzqW~Q%yUI_;z%yhaV-*TOgnol z6M2w+iJpMiUSf&p)u~vr_CP?AoC}nkNeN$`3jyJn=<(7_w&hyVwOB#{nGLB}5#buZ z@Sc&pUQDr=f~dy0bV=WpnZxFrPkvv?wV1)lo{hKwucVqf5A&VI`O@t1nJHtnm20_u z0%TTkh@*Xd_6sF=9QSh^CeiZZR|tLUuC*my4MGv8Rvb~kTZ&+6w4 zDL4;lz3qD~8D08GVHrlPK`}nPOAYEOf|R-QDRZawd04!X*dlFXCa?#DZPrF_*@O+aynj)`8{Z@z043 z(2cGc$sFN+bc_%A^WUN-J4 zFZQv|&N8oNBd^{%ubV6{(2XYFY~e+?NqjGZs`Jy{> zw*WuC0&l?KCvtEnu{aPVI+IwU4sJ^BzT+JU>jWWQ?l$dP4%;?%D%FxpQ4&Pvpu1Ah zPf|*UIy7e$>7aLE)x0quDi(rt~DGvVwbvBn54oyk~pW-_tz`FRSa*%RsD;qrS#?M>-9|_@X4M1t9^fs%iJ@->}3!8 zWr-4$0{1p7E79>aE@eY*5y8-EWulx1KYXw_Xap?sJoYdQtSLRYyb>~%Ode_^DSLuP*i!a%42--s$ zZQz@)Dp8WM<gOSZx)Z|8+)SSyQw-XooQmO-W5@8J>Ozf|$f$PgiNV03747TCH*pRavEq#_ zp3>G){MR{pPC0CT_|ex`HxL=${Brx8HUSWQInEW7WlDGp`1W3Q98C$Tp9((?^2_X# z>&pZB%q2(ij|pXqRTD z#3JFlzY{Vh(qbFBW1yaPr=nS!4!d|8N&C=wWj3qz=q(kYh(ywb(jUwtLa2kji!GF3 z)Z!*SsLPjlFIGIdw}y{Siu!;$fURIAVMr(zSfk(iSEn9+4IJ+OywmB4y_bR$ z0kboe7!xT%d21U+k)v2g)mCl4zY>4Ix4XWws@?1@s*uUM>JT6IO|FP5MdR7_a3X=E zxf!e8e$F>&=?ku`705IWp&P&9gK?{m9{S31UoC z+UNIgFl3q)=Gt5TTb;VG$~rkPFd@1OalB5-9`?H?#sPKtE@rOeSTWVjc^w|8^L4AS z>z{deEho+W&@r<(h-R*a6(exhmvm#JT3KLR% zn(?vgSP6cJoF@uBAvHo=^?n28vkHnz7Oe?NDnAesCWP;I;TBlUHx__PS{xXqDl8oe z;>xGSV+l#d7V?Rerf2DiJYvT%O3Q4u2lpyw0WZg^N(KXr8oVa-=u3_n4e|5RdJ!xE z>5jJ#Yfc3lNvoElXz1z;^Bj+=gWZ}9Tj!?-3A%dX33|EiR(#DriGRa1Z*#xTJ8QMj zJEH45b9pB38~mumBXJ`h9Q+yo{tGHO37xr&)yD{OYTpKzJLM?Dp>xG3y|5(6;A`*z z+YSM@tcqqf$7Iz}k-!%$Qx~p*7t=5LIRnQy(UqyEC1g76CP_;Tshc&=Ol>9w-y;P+ zAGiO0Id9N4{2oHIdWdaNQ>TP|9e7o!dL8Rg+>g+D=D2o=dT+@IwDr4T);JyY>f|); z%@9ieJb>N>az3$T=mQB#h~&0kOt-{-y$ChMX|b$Lk`qe^0C3q4nKZqD&&hs!=a_Uc z+Hlx2;`wd88x%+gLuPlS`?&80lqA{K1Gcf8D{5;w9u(1hb-6Js(vJekj{5y_S!ZQP z^Q&jc{nyjd(O1u_l5gLDSJK7%Np~|*ldrevoyanyp6A%xZ=figAeU1p0M| zq`gq7(f%ao-;qh6VN9#9Kg*EM#zi~h;hY$UK!bjcNi@#Z1`=kA5~M~4!V>1=5FPW& zGa{qb850nlK=XekCx{3KA3)Bj2{Dz}#rQ$^gLbwiQhR(Cb!B+~cO!;3K056aHeTz+ zPIWZOa^EH`bYJgGRM02XT%=DJ{oj;qV+G>-j#NZMgjcPDP(^xAFiHf(ev<{|bLbOT z9goOy%f(U|ZwiBtj3}1g#-U{UfKn%qraQzYMAzq25U`EwV9h3dCe_w8Bw} zzMo^}c+5K{akV)p8uK_s++(6ru7h(apapk0p~se4AN={;EAx{dS?EE8lz{vN!eem;tnX((;*(G; zikYOz6=D|S5ZsbWSjk}Ld{+fO&)lCd_7uz}(<>HX50Hzel`2{cfTXifol4z#*XSXl z@sKfBtRM>qljFmZn}Kvxl!m<6XWdRKFw@;V)+g+lgM6ypI< zUq9l!wjxMzm1+XgtD$6^VzRokj!%`h=C2e65A;oC9M+pwK4vq}Pr~CnOpY~7aQ=cqY192e_mwUg$KW)r zYu09ddEY9`^%?L-Ya1OKwGnjH(pJZ+4IRp#$G{d2u~u)n8x<(7&zv8zH=YuiyQ?xT zE!?+P2yhv8`^X|Leam{@nS2iH5nr+rPCUKqZEgv?W2eQI_?2fS4FuIxt zq$_QG%G9?u8)=ghTCUxs*Y_6*d$m@9bVf0E?ML6Un5P#^jW}uEKJzC%{Rok{$d_+F zAk}6Yv-o;lXf%H$zf^(9X=xu=gtMu*ME^;Q`?^RR_gtUmbtxnAmy`DU`BkG`he_mp z1BE8oTc^wFhSp<~!21yv59^T4w0Wfy*Qr}mD`aw}Q{$`V71LGQ%5&yZxB6W#rR^auI)AiYyrz5^gMCmdD*APdT#aNzGC6A$CKMF=C-28)*u0g)AJ1~0a*zo>@`^MuxjG8fW8%hs^{{EX|y0~+4- zw%5gR+eOIM%}m}+q}t5^+cb{Sc}`EocIQ0>*0syQwZlhq(c3+7N{wmU0hi7_D^3xW zo#O=81Mkmw1lKhL)_z;Ygcz1RA3TZZn>vVX>ldEb4whWd@M_tSmPMs4R=ANK@1 zzd;Om$|t@9Q|iy_G{gMV6TTEsPvpe=e3bK5h$`(E?)-2R0w?@^l>LP0-JHan?Bs-f zEH}kq7=8>2eSkK8s=7XGcOMX1T9!9{F3M86b%8ry0SbveTE;F&T3i1@3H{XmNHTrz*b<}$%EF+l;!1R?u=;{HDQ`Yh4#J_-1K5&IwV z?R`0z-YD&zs`h*%us;Ob2iPfoki7MS*nvdN^3hNZ>g-cyG<)ls52z6esd5UEjSNWH z3u>YMFzNS}@gIzt9aO;?u+Sg;!aJyFo@0AH;FQvDb>3qQF7zW_SOFefQ$ffS=f|u1 zpqia9ZT^spgpUUQkUhAFI%U3wDW4_ykjL9lV7(yK6NI`zj}59Y#tVdO?yxiEu*vwa z=Z6R^5np=|zw>;yb)=|ys(6i|$niu7jId~T!2oyRfEBQC1!3FvkW% z(F9Hgvh`tOc(Fit5gb-+jil&{y4&Xv z1{b#b3+JHrA`BOdUUy>Run+8u#!8GD;!*btilyKAY2UMtq)SA?OYpfT5l$0@P`3Av zOE9PO`R})XdXvb*5uHxQ0=W)G>z3%{6oV=r$z31oxu2L`FWRuL%o3Dbk4Nnamt2;Z z+#H{vU>x^19o>DKxbr4nM3vaiA2{rnN*@QT5{|B=OKrlZhLua)v`bwGPK~el&A!z} z$4_3AivW0~fGdpBUX)V@oKs_T5_kaVCwIxia;ca8sW%*%8F=X_Jw6ru$$15-ksQ@CGPq?zs0kVgv zI9K(PJA$&12{VhTQ>4-3NT;$m7P0{6X%q)(y!Yw%6lt(uQ$X_>^aTbDVcexns z7OeXz;G}#!EfrY5zxcPXF<8;=hH`N(@&zmk#lCucNVWw8J8{yK1^kv6D7qR&G~QNt z0?l7B#5H;Br37H=Q!FUk zE(pj>gtskm$`*-m)V;zk*6$WUb{Pqisny)QCzsn}F_(^kk@cF1yd zEU)m-MO&!Iy(#-wsIb1H`BkVSZY;w-1u$AHCHzteLLm$nuVCXZN2KL{unR1Mbb z0CIMy#>^;XObaGwsCr+hAPEcF{l5aJk#%Rlc0!cn; zKX~M65GiUe#5@!%+&Cc9U@g|~YkwgdD@l*0T^Rk%RI6aHcrw9yQO75_<`?WXZWO>R zLB#*VWAhXA9BT#(q*TY=LF0mo7-+LMjMg{`v+layCOo7cG__hY!RDZVF1+RTX$cg# z>L#9oE^gsGl0PU&uuf@51h2<-@!dR@C1mx49HHS3>U|li)W^8}D~NWHEjRIrSOCZeAOSGt;4obt#neh#|)X#Ft`2Tj(Y`DYW#e*0#|PcXrBjU>A1? zn3?bfs81bs8T!P zkd698;j`zuWbZ3DhkK0z2l2r=5Z!yIo4RnDdnk|xD(Y&ikq6}AJ3pxPnFsedZh{3X z^#zCx8SG$1gu+C>>SInCsA(M-PGT|&sj58aBU2k{@b4Y?>53U1N_!eI-AU!(u49+w{coyTSV}#3w2Y{!74lRE-?Nft$YC{DbpmC z*(ibAR~>OJdoj}S@Fx`UDI20lRJI1m+DREAyJN6U+QmUd$mE>^!P_hC8$zs}qRu12 zHYDcuTbQDTq&AoD7Ff0sro0(2K)n7-Omm`m<8SR+@UbppK!xK$lhzq2|Kcy)T1`l; zGfmBucZ7+B5J|0~{*5{P0%J%U$>Fa@g%78ezrl(J%?&S4&3+$zeljV{(9M9fxXdum zG1$nUyCB0@+j^Io{CePjKfb)UG8J*Y8kx2BWw0{>eN)PGWs!e7(Y)Q`a`6IUPRVbb zSd&u2d(rV=M@apM`117K@^CRrU26YJ{pC87AjtLR!57Qx0#o31q4_bQmGbNnb|B3J zap_B?@$;pnrKQ!)@2hQM;;~Nix5KORz^#hLwcnmrfFsM*NGp$@CcWKe1(BBkZEC#5 zQ^CyLsfQ~l7V8s7Uv+BhjUSZYB=8SHR&LMMPl4CySF#6{LFr#^+($2=JI$RJETSV# z_BXXaXp&zB&9I!T(XRrqmrP$Ht>J?vA)#*ZgKkN(re88`en8)3wcMa8-@j0;6&AWaE6dGU zq%B)l9C-Il2OfYSs-jx%j!XJR5PcU{S%x=BgKy~W*>D`lv=v4_g#4Sh06Jusa0$lM z5t8NT#{B+<7wT?H<_^5b8bairVaPty0q*Vv%0{E-F;$-TI?E%H#M(X^ei*DnGv*nU9`%4STRnzhY$d~2F*z}y;*2$@n#l67m`TN6BBa$2N{*}D`wcF?| zTI!9v@U@=z z$fK$0G$a50F43(*+dU`JP0`E9yuxkm==tc^i;=+Zd7yi}sizJN-_$pcA+MVwC)YM@ z&zH|zUPk9F=6S73ior(&*GtGZQDV1NPa#J5z+XW;1Bgnm8BR||W7PaWBL3I$uD7%( zS7__88Plr_XT6CoaNo@31RNKol2ZWH;xL2e8cXIG2a?fmSP|WlU=lqTGPy|q@89cS z9E4=&&lus#ZJjr1Si|kOn^fu+hnNa<&$d)?ou<^S#<-RPLtcOLAgFH2Xv*%)=*sQJ zZs($6<*#S%7?irY8K>@?iHe)>=l`k7UQZCo1aS%kQbc@8C_DTmziCd z(CpG&Qm02#(i2-;liHQok)M@b(OxkU)mt>&G#K1EZP_~AJ=wW1{%Uz(*0SMf(_*fE zfokSTZm#!y;b!Kd5Vv{=oD9qNIo_n&K!TgdX_WQ(^ATqnuFoVYmfXH<9#hDs;K{ua zTqdVSsk<5)`C^%xs@lfstl4Cxc8ejA8~>?Pso_$j1$JZkTDC-5uLqn`rAnLmuTWlf zIg9mNyEsIxRCFuN&d^U=Xzt54KZlLp*}>aYZnXwe=%5PMlJ5+r(tbF7eMx479!-FP z6*Og~H=QVe$%;f!b2Of-cJMmX6;A{xOFN`h8jt44!a|Q$ex%qn#uItnH;P0WV_#s58&iJ8ZrOo(ZRIN|= z;dG;{1QATD&IFNcr_BUWTrW=q(R{FMgfTy`TnJ-D$y*5HB-x({<7LIzh!PalT!<1? zOwtekHj-Qjr9g7%x3&K60eRRK{+=@qBM@gB4p`$6BeO=~FArwYw`JF{ZpHgNqU zFrS(T&d=gku{8?xCWnOqn0nB;2hsb4N1(&0g))T1MkYqaho%H2Wq7A~WV>eOTjyF9 zSrn9MmuOaMl-G(@t2YSOwNNz0#WuHg#v80yT_LYlyBci0lOhE!@k?FexL^5C2SCN zdV?gs@ZS^KOm7FVz^SEf`Cp)f-J0tt*^JW3@Y7 zAE_&v%Hs8d#TBbBp2-u5Bi9_QFPSTn$rH;EYbaePQ>ioE7;Pw9s?zBT#T9QXU#T;m zE7crptXONZ-W$yjZ>rpAbG|#>7;CE9>hcDI`zp~~z0((rLZLO@T(dV6O(32r(NcRb zmds$bIo?utG?gt7_EoaA{$x%M+f*i^wc%{3T5l{RWA@NMlo)O`r^L<+t8nk=5`P}x)ruCg@WP|}2P7kO(a^H3Hn+-M3*`SYrvg#Dj zo6Onqho7`80EX)W4&MU(;iDbFA`_Fo#Kp(x6D4OwrW)jCWEcA6JEco!7FAl8NYw~c zR5gm#1(ZoOGY4zZksgxqVP$dVYC*eR>1Fo{xYr;BP|sfogw(_ov+{3Gl{ZPZz1l9SFl< zFkSy(NDM{cy$Xclh}Pzh#QpDrgNZz{beYz~|1CIdMXgA0LjN-!2L2-+q{8acjnyK} zDJm@~r&hYxoh#4mKNvGQ1C11y{vUW?!xRY~B=r-mP*V@-&;HJ&)wOL+4C3urv|FD_ zCPGRITIVEL^=cmB$4jiWf=Azo1&fwHw92G zOf$}Mn$n^GJ{U7Q8_RSCV1F1hr#wa+Qb>);!bn_4p3 z+LfD{yDB^T6nX{~hezalD#k^?X6NP?7N=zkmj6>q*Y(Zq-G~2reEKk0Z|}c>05Dh_ zk?QOoKWG$kjp6E?z93`*v43x{lK%G@tU!rv{eN;U@*mCx;jgjAALk-B{>QoecjO98P2&*S=mVW)+O#7$wg)6)nidQ*^LeT@(<^-^jBT6DJBgh_VmI!5d*2gkR}9oIlIN7@0a*@Ikd?la|qQ z7`reC+0rZ%r*`UPz5k#&w~?GGY7BU;jo6(p*kA2E61lj0`YU`;ObHMI!o`CKqu|3L z;(24(LShrrv{I5o;?i?zl45f5ij6W0ODb>*Qi>|;P^+`+n;Xh9TRIxO5ga-y0APQp zmLmhB6Qh02aCE)X3z)NuE27J*8{F%gJ9OK-2jBJ&Pq2$so6AZ|JNpMhdxt-dPjt@C|7V)4`Tvt9 zkrV)op#SD4bwFeQvH;q@?MENsf1*CGd;gbOqzEfUMWvFo1`GV4KAS@Mf)Slj*;T33 zy@+QcW0}#s%(2Go9r)zEi)=R$I1oE|X{aKAqQd%{`Zxw?If22T!dRO{`bBH{BLHCa zlJR|s!lMi05|Xr13eo}%vvSJwqN=n_OFZho=MxqNbQ^`1!E^LF539F=db5w3O{)bb zs0}qW2Ows{cCySGZjZ%t?#5KjFD)PTO)bNpYn(RSOtSr2X}YU=f>%al0l;H?_(?uL zP$Y6r5fEhm}&kFyC^PT5!Dr5_}NC^UJGfIF@O36yk&`U^yNzE&; zk0?gS^3E^UhV!ecsjdInn1}>Z-2z|NrqPkz)zjNQpzht=+d84`pIkcAH>VwtyF9z9 z3A?m8zO59!>2q+X5PWiaKKTJ})sFx|`El!6@pa|B6eq2TS|=9dPxR0njr5uA9se&+ z0Hy(M04f05#~LU^kBFM#G9T@<{zifHOlL9OHA#qUZ82NwRS;u1$32ysTw}~aghts6 zrq+uNild7mH@G=@la=f{qkJv14cg3mU~6=&*{##-{vgF$0o=KvD9=Cr8w6iI1kwFX zkoJe5vJXK+uXA_-0ohA2JHcwiO{S+D4Otok%oba(>klaD5>Wck+Jf6Q3FlO@6B}`; z4Uz(iD-HJ)mP{*4PIHQ1`pW3a&M85cX@6tEimjcRd=*w4+iF;s^mLsYyfTZ%Y=b^(6c(uk zSp&dvK}<>1LQ7BG&?)_GbhwFjILxAS%e>kxvNFZxp3vQe<#5i+(ZYej&A`vqC&0!i z#GlI4BhWjFJvcrxg+)3vI)fZ8i775GoDcx^hw)!tTv1(7RZ|aE*HBFd0Q_aF&LA!y zDGJa(6k+tQV{OC1_y}e9gfsK6EhrNj)E|47B$RI}R@mbn(K0Wg(xI*TcViO4sdXnd z>(CY?RTtKn4wo-O<0&V`PJAPbvYsUxgLN&|v2c*45>A}TxM%8~OufBviAe*&0)j}$ z|025v#1#PY@dp40MHc)wmE{3k0AD~@K8pYGbm(6bCMfYHXZ}mVgw3Dwj-JwR7k{Gb zVNBXc;h8uCx-arA=te8trSqe*lM^w}7rgyU&M3a0KlRauhhynMxi#@2?@ zdEW(h<*!dkW{c2iFV9V;$>z&G(|)EhMJ-cy5l(!leL*wnDbeUlq*9MISgkaxxm_y> zH`mC9p9Z+YJzma1JVDpHn=R2uMY_LY4PpiW+J~+HBAM=%HCxt+3}%UKEes)}nODAu znl_A3bNNuYi`DE7or@ScZC^>&_%Bx0E#;>p)UmEyJFtcRvd>!q(Eu6%-iIy&uWLTG z!k#Ht=A*iZ!Ovw6xt5qy2Tv;WHe>cEr(eF${f8Xb)kkHYFuT;Rlhdg}CYI~aEhK|v z2;xf$Y-Pu3%+ny^N;D}~ u;&Zcxel3!eSw`n1%0KNjenEsah!Z#=&B=jTsMO1jS zUu;}rSW-%0LTYMyMp9OGTy9=WVRk|EU(mM?a0Sc&nEwOJcK`V%?!TRvgEfTjBQM7z zi09PO9njv>+ufGN&&xN+IV98}JOVy|I@;wUF^5mGeJoWfd{lIHXl_tCWoCX*iFcV- zAw_X!R!wRZd3|byM`j~gb8@R&k8=lUS7KjM@&L(D{D|YU!?;~b?QBZJJpN?PM(Eo5 z;#O(<4&MI3-q_K%6TjuU)eGFK@(2I>UuWGs>!rl8-FMkOdt**3W6X-X(CdTUPKfSP*G4(1f+;`QR%&x5JGQ(5JK<0mq_ou zN|h>25D@Fk{O+LRo0)g!eCPen`K|RW|HHN5e(ti%wXc0`Yr!NU>U4p;t*vmr1;wVx z=L#RcH3y^Pgi=J>!?;vfc&{~?D;pUfj%Twj8hYyWGVk&;aQ%m6xmu%M$#THxzwm0)CRu&@_`poWY8(&PjU&$fsOg`&aD;y_0GkCnRJ6h z!2!(u%MXr_|3|_oS{L=~0nAguClI9gfO@>kIA_A>1=Egi$cFLfNsU&guda?x^zQaP zww_+Je%45ffIyUam_wkm>*I)LQOAIOj6T{c(Jo0h*(pUYD;?vVrknF9<9U%~L2({k zSy{=`nhJQ`140Fe@d~P{UzK$Rb-(IGw5JV16hvW^$+4-~snIjg;LX*43cI)?*V@0OHdB(qcBT{?OE?r8tcgiFn#WeXQw4>KJrEiXeK-#h*f0)wp4 zx7|d8pN7FBM52%}u_0(ocv4WZMx1b(eqx4DR#xtX{G1fuf>Nt;BGBm`uZvX=S@GslHArF~OeF`wvOgr8ow06DHoZs(~QRj=Qdg;NCW6adI z75n-lzVTn{?xv&X(tJ?az8m4Ab75*@DVx2wVM+P*gpMq;7f`=Rr&zWBMhxVCM?mgg zt`N+dsD9(+iS+RcaY2PSMMQeUM8(C&MMq*oaLE`vGA%G8GZhn?NU}UUuuuGC-y_t& zi1Se3h1`d7tetzli}Tz$0z)X8x6LvV#d)6Y&Yl zgHQ2EgzF;AQgd=`()lg<@=8jz3*bqbWi_?eDl*mU8k^J%E}U~vZ0_m~Zx!^!^$ZO& zRs>ldgN;mekMYV;c1|zO^j)B)%v#!Lp5?Wmhef^H%b}qlA~|2zc1|(7mmg+1=K1Iy zPZuHB_k`DlqYU0Bp5dA;L^)NiC>G8&hfr5NdEs4HxNr?Ede!lk_$@AcxS$%pUVCV2 zdyJT3SBdhDaSxWowrYKxF5?zl?$lwH`$cd2(;1>{%}wdDhN(1oG+sKC^4&_*tk(Wj zLL_G_-7r={+DT+%sMOq}YWT<{%bv=kF0Y%ZpnUmSCxb7Fhs3tpU-caUayRW*gI4I& z_37gdMTXGiWdYQK8_LVwpb{~%^;zL5B3&}&l#bjL|n&#PTxMUE_2S*I?RIrn%A*O*kf zZWhgVJ9~JtyV}CN`~w($Yy(jtNb8Vr|4>Wrh*-xclbATH8OAsQ-O*bVi=Vo$N zZed=AZ+20+Z2rTtirNPywl#H)TveJ4P3^2S6hsN8KB#|axMP&_I>&2{wy_z8$oxj$nems{V#n@`lW$A-_fp7B?^w-7doxBmgg-1 zbbdtrnjt(${E>CLxhtye!JYIM+WFnDC?q1ERcq$hPkvGF?iY0Eron}7CReHD>&{(~ z8t&P=u`BK_>FWK`Q$t7exerpyPb5T`h=7oXJ_-no#N3ZVV}%p&@-bI&LMd6&X=&N{ zytx_hg3>cZ8D&*$6}akp=2|SF=|n?Zb31)&0MyX|?IV-J{UhTey^|b0(^GFw&9E=b zm4!1eEw9tBoLt-3*kpRYy}Zk~$MW@KB+2KBlcfUdauOV@%Ma`F_1~<^`sMWUr=6NI z?`i@NlyDkZ#p!3^5$8m^M+XP|dAyLT^j^b{6?C$NYc@jb7XyyR_XMWuKzedSA1?0d zW+(L`@NKi@!qWUyBV+A}QNEi%d{)*~i9F%F9$SlpXL7Zq zjO{xGUsU+XM31i6NmArzFXO76Wo<(?oV6LBxjFh6-J$i?cK0&~Km=(7BTdj@HzUHM zPQ*yX#bS;pD)>hFCnRChG@`RoJ#sU1aD_L~6c7bb?W?Y;zM-C`v8Co!YvVCkHw=M3 z)qiS;X?V16jDGO-@Z{9^?943l{Ocu#w+kz4jH?q1n{?X)@Au|5j+1=pKfEJN1hdvs;>I)g*wyIo8vf?;QZh zjY)+4q)PRS^{2Snz==)!RgA#>1t51O;$-d#U4d`40LeL&T_d_G2?88-~<1tTS zwG(j3npjzUddAgM!_3^gi`fGC#U-4D7NsD1FXykWC+NROd(~W8`;s04a%Xg%9W4WH z5Cu{0Y#c?aN=-{Gt3J4pt_mT@<>nVR;vrQ^gwy)FJy5G%Lr|)H{9R`|*8QVG8@U@q zr}4`@Pd2{GALvy?8qnU24C=Io0b+#)aY6j{v{KNDC%!dYPs!EkD9!1PXdYcdW&_%^ zZXQlWi6n>O^kZQNnvxeQ#oV-LVFxB1l?!c37e!-La>+De1~TtiJ$x~MFdfOi^C0Q= z^0Az8k8@XC10BmY4l>Np!>8Vs2^>Cw5E;-nE4Mmf#=iXYWR1DJ@DtZH((pS9DuW~- zCU6)pfH_#p`a^r}&2X$?mW=9JouE{ch_wI9cRh}-e$u)Hdlb|bt@qxCM~LcP?|pvB zLQzulpq1mIVR`SnrLWDJuha^Coi9G`BnVG(TeZ&EN+hn)^v1q)wsUoGchYC4AZpJA zL#WVDi0^a+4{4g&2THt}Pz33%;92<|^x)Xenf(7Rg2x1D!HFVxc#4$tbPD;599&v% zPL^CjVM#`jY*}ViN`*{KYRy49c%3vMIlrnALER$Nme)qtE7_maQFCRqc~oI?yy5cf z^!(_XvaamqHfq{oi3I}f!7cIas-``$PbFPrYst95(#@-~dIv0+7a|K#)RAO-%qG`Y9Or1*!sjMNG+y(fg3albq^> z#69m*N?J?esl38v+^U7VE_K_{Yt?E3VJ-9eCZ8|24xq?hQ0up=-x2PH{3>1-Io>CS z-(b8nvO{yS^1ZoP57YP}%PhusbaAZu(fZ3OWm7&|Aqal?%1y5T8(KX#m1jL-ng^4q`-4Nnej2=5XHV=U_og`S!H!mc}?X#ihDpX@Og7vOMB>#nn%X={^O=U(-wNLr)?mnFnxRG1; z=qUQ+G5IDvrC9hWS+$wxbc<@D!xJCEA}!8Mjg-@>2lFfrI)q&m8tt6*5+fGRB&B;> zW%q6Nb8lZ#ROT^RB_zMUtv>s%5m@GGHwq4v;eB6YQ&;A!IwUOpdgG&Q=T%de2jYp` z+`GSWUwNeQL`o$}nA`l#l_P2cqiJ7i-qqmGUCL%pZ_*TIU|zBvzaU1jamQ_Z7oSjK zRsB`L#zEHonYGs?A0L1IKu@5t8iYpqMTCV|LKH+DMl4Md9*;&K(*QT`=Ygk!1Lyu* zz=K9LD~~^@%-Za`$qctz7p`SBzXnXE=)r9U`YKEzC|fA=eMjZFTa(6GSZ8zH>mv2k{hd)%k>`riS$9_R7}ij-H~fklw+} ze(#~Nc!+|i5IHk3J3k8>|EUo9e^s{l`8a;^A3k=y5;;NgIM5IQ+#X`U-eO(*w`!W- zRJP9!(Gk|$h1Us5TW9&17%5or?{6{(H!TZSK9`~$(6`O1;VD-VyfYqT**(V+`Pn3; z-)d?$j%L*34ng6jUr^>H8W%fz2}&6+Zzagw&Q(wOIVCDENXt3ETlrB$pt4ay9CXA2 zhoVzYbD;~*vZ9NLMM=ZrG%OXVsh>Mh5Y;s6p@!yWM=lXDh7R`bp7t}nY=cAnqa4Gm zuURIi#>Qv+IH#ExnU>$SlU#!Ws2380PJ>U202h?CTFgwk?4tsgx^BQrV@A~Dtg4v~ z4Z(X>+x%0^*hPsMWqYz7e|SV+8^|)cLI*SPzhG-j)>LxeRovaQ8~>o*IJcu=PL@At z$^GD*UwA(Q58fqT^fzi6a|)tRs2}7X6a>Lg=0u@T4p?MNSad8#Gd>}S9g9mr;8T;* zGcZ}%F}ZmW1%+`X3B{o#3!Q~3p?A>V0Ce}sy!ONC|B<4py)ZGS`%3TT>E`gv%g@Qf z-wX1w3i1j>y9T2y!oBHYBBG+>ox`w^38vVjxHLFE#UvAsi_gw+%q)m0DmKh33$Lhr zT%D0tSFiVqHm|AqQ7fXo)2O?*&tM?4V@P|Xahy=vkUXV7@n%kUp>Sz=rfqcfz6(VV z_3npV91sU`8r!@LLZu_j+-UMwUX;H+yPs5Wn%bAfO&%#`#;&Nra9+D3qwr`e%AQWf zvxLKjGa>BEVv;J=6Ru8H(jwLt*r(~g*{6k(i2uCw{IiI)ul#z6<^;f=>+5%ZcYbN$ z>h1&g_I2}o>>uEQau3oEM%zb3hUrD4<597?2?01?EKq4o4^4fT>6Q!n^72C>oeGOe zODgTlwTm4=;rafnsOpBsyUl*BHSJoRoxOeCUEPD4{ljB-UXM;{Ot(U_x8|xB76r2y z;7spmmn&CqLKH-rz?Z$RzkS^mI(L}cc=oUtWj!0bQ1EoLFDsiw7ki;XbAXnBWuO1E zBdu`OQ<9gd96VCm&Ya;(k;*h&q>SbdAvg;Pp9zf>RU{2q#L0Rg-u*XV`@=cxL+3v1 zT9ymI_c>K@@prIpjAwMLoVoFaW9CK$yC;&sa$%fKh_Ckzt#X2Pg68`0@pIcubOb#h zmfJm7`~_}b@k1V31od$_X9n5rK?y4|gQF<$7d2 zz|Mf81!d~KzYz11i1}UbgzaM8j0zANy79uIAK-mixT5_b1Be(}EQjN5vzIbLBUNrb+aOc zOMiVUHkxoMcH=302Z?wgS-xel9%G7gF#?0ib()a(J3cG zcW)nW&j-GNLC^d(kmyi7)UB|nX!VF|F_;9oxQB_!c!4CPl#EP{G^4D%e8wE{f|63& zB8#%Btcptr%Ia5Pl?Zt4%ZBzC=zEq9D}NzQ(J^MicZPacY;^pM?gZEL%-q|13miw5 zF3qmIS6gGJeAlx5`TFi@s*hV=$bXwXbeSOQaoFYPH@!X!CNIt@ac=^CyI@cu}ey?C-0M|UrLbj@~rT?k#Xyn zD;}qG98dEMrk})IPB4|{9nMBTCV&;ncb5uEyEPVAYJRZL7)$!dQlJG;^Em-F+J8&> zYId#NY^~pdUaC*hrO-+L$4jp(*AG2d?JBvb*=t|dC_T}8Y+><*(9HWNdVwIqlR^sfy1{msNqi*eY|y0R$LeUT*sPI0ZuJMD@p;; zq8_3VC@Ab1B<(`pFrEA_bY=Ftxlt}-ac_p z!e;%o(#nlj`AV^>%|hMdmt@yusNSVIQ8G4azK^+b&P#1z@Hn-agJ$1w)HyQTtK6LU zU+UZ9&x_`?6p2%eX7%g!ourUZa?5v`Q~W8H?FmD|0{7*zJx~!qE;}G9nq)Dv;7Y!O zM8Hmc{cZz(YIjo`|HtH^KUwhUj7!{m&b7r@uN`|w7guisI8nPhfFcNm@^K9b_X~~) z4}BgT5)~g5Ym*q1knErIEESmYHEIH)%K?Kk-IyK6-KK(c6gCwFd_`!Z)|HcS1hw>A)aB z^!i=xu#(^`!IS(W&qJ|85DC#skNNQ~9ZB@n5BB3%Na)|6sIoxt|J?J_`6kMbfBnGX zZm;9&;^yfU5GX<6he8F1g!u;rgocMi$M`{!fpPJ!NjS%ZL@#_wCN3@AE<3&;CNCq! zuPD3(Xu8&fROOes)u9NsP2~+fEic*{JDhU6tb3CCQU`5@ohBm2EvMjbU^7FbbIS{h zv&-{q>!a^B&EIVAn0{FKc#Qhj-+q0xt#i8^5iDmy35yfYP{qX^0K_+E2-Hjh=><$D z53}JKg$5YqyuW?2OgR+JS(~IPZozfkKtOjjkf&IY1nE~Ln}_c0XWwPtZ;u&u*?z{M zd=Zx!w~qyB6h0i;^IsOU8mN1KF6lgGLBPG`HmJkorO;L-XXVsWX=SXxEazM~nzQB@ zImhPk^pWs@O!*{yxx4;_g;U7pNU-y52U&`mf)Y7ksYR!l=uuM6u^Rjh|2Hf2v{U5;bdu9bu&vywVE(W&3}p zyKjmh>h5Pcx_Qz=UcPibeqI63k%2Es{(dO<`>bRFe|{^o%}BVYFCsIKcePINV#+$x zzV5$ncisO?_x~=nABpb2HJ2p?QTHDMB_t(*5d^7`cVJec*?bf^`S95EyO|aRIeF!x za>bgZ=Afv>UsKz{NZrU=*}>7=+DG5sT{zU!KQ=JZ)!jSZIyf~_I5R%kxcqi;Y^7@B z-CF-5mc6mx(WobP$?J)+6*V)1;rZmZ#?wQzAQbYg|4cnEuWkKhTk{ zcbrR7;D{dzr=4-94HvL9?hf&i0sbF>HgM!nWa+$T9vfhfFP=;8k}r-uT|- zOxx}}>vPj*ndd@1XhB`uvb4g8Zb8GjVs*cpI zp4O(Op|R}t(ebg7zNzWH$v53I?TbCjwJRCW=GG?S;rkEocW7b6qRg)d7*y7H%(^?? z14YV_LOfB)0_(9+|ttL=-r?SA`?lf5-c{T>5t>&@7sC>&>Y>XJ5!k^+t7dYQI;r|I17ww4Av(yB-!dbvf8 zNoH12YFR~PE`c+@p}w@Gv8k=95Let|=F~aZ-EK9^22BXS6i+BlEpRPNbG|t}#WO4N z_Ue-07AZz9Mz#my4X za+Py`DD%Qw6;k(mK^^F?tA`3QcmanLxuE!XHe&oi8_S-`ND5LGgU#>WH*(J3Eyj0m z|8G>`N7R6rRe1nR>PUuKQf%(?T)^H;5?09_NE^w~@|kk1PZY3MJrmh$a=|e{vv}s_ zCFjJ5!A*^ty1GrohO5T~cTXRF_+{TfuYe$wUq~o_FkeKNJq)H4i-|g!5KCf0^vOO0 z_5=|Lbl8#>%&I*x*j4=P56DVj#w$y3r-i4lXE!!Gw>rIo6@UEOF}o``b#WCT#a7G? zW2##0@R(+-kA;uU^ad3dqIJP~)l8(=&U8@n`1$UqF9)QftdcX0FR~fCu(N^_2@H}B z4)&yl0Yo4ylph65NSr6hYHonlJlkIl{>S#fe19ZFz@Uy0YOMJ?-Z^rfw7lrBz<`10r@@_A6Wr6q8 z`c2T;)?Lfd$a{X5LIk<{rC| z#|PXQe?@iqaaajmeM4yzV-Y>cy3x>QNa}ClwL}gyPdzQ&RLh@8ede&&v-$O@gN+;Dps;wD zg1o}lUmxTZwy1j`uP}!X=h4oO%73sB&9p58c z@a^3%E=Lg5Tc7u+Qo@st6Fd&D94@dG#5D@joJzWWd<)lnZf^QkOJWU2{rPX#}{MHuzrg&gS(edsc8BcvI~ z1;3Q=`e#bHOqX<&QjCP`mD#cc>3bl;{h2Z}CnDDGJ)z5MPq-c(Cthy2IXA_3`TR^h z%Qx~<52Fh7sXY;_>Nzoj^DXYI3QK$rLem{lJH}c_2jNi?=5`W91FG=En{Kn!E)H(G zSC@DU9TA+RF^;22N~z;GQg1FfSg!5$`E`7CUkK;PKu>}BTMp*ZG05a!J{zj|-Ff>V zy3{n`b$++mf$&J3k{G+hxZ%YM%)ch)`8=1*jBE8|K(Km10Q>SmxYPO}ebwDULeB+; zg~3R!%0JY!`oQWm_aWo#Sx0~ep#0C%ix@i9*4)QiuWz7OVwc~9PfbuaRWv5fX?Dwg$H zr0{*XVQsJAF7ABAOWxS!{6&iC9W1~W2kRn4(Eej)#@PPrQ zJ9&0dX;DQ5tfaiMt}utZz7fhLC;1xUrWWiko1_@bEck;CkAR4D_?`WPdhgw)Kpe1V zHjee26q&n>;Nm047c|`la%`{T9$8JF2N&Nrf7#Tb+ch=b%E(E*wJF@r+(ozd>o-Yf zPYZV~T?wxMLmzRZSRh&(rRV1#8hs=DdZc(v;+42KEM62NmYkBwhD*DYmCursTTsGS zlvY}KtQ-TYs;`Nxqi&+6ZE0@rXh*bkclI@3Xs2oI?eCx;>l0~`riM>+#Dn2OC+g0x zu*$CquR!vF@88q!e*ElXk4?lk=wTw=1h!;;XB6gJ~r)HX@TVS&CALiuZ z3raPLa?7feDlDq&9gEc(V1yRoS~G+stx*TQjyDCEl#l*l z%FXjOHTF$;3m=nk!)Y}KNeQg-5+ARNcF-MTEr*SzG6liD>*@h+%f=4D$`g}fWf*c@ z6{DSR_*3(ZyU$&3+u6IDd&+xX@bwE6^hcWcqeBhDQRgG0Vgh2~9z`c&@8VGS6pTNN zPt{2(H86q)Mx03{kxg4(MPG}6Ai8?GS1qj#%w|pL3|-xQ+`aun#|MYUs>dgKCZ}J| zOpd-upI^W(Ek~}bBG)(EH@6(NNpWf%85`MAh!T7y^;RyCem;2d!+~kiMlLkCGSXy! zlg~blA|&ORPo!C{3q0AM%_Su(2&krF-+l>cO5C5#CCOpafz}A=BhKcU&KZ4tVueWm z;kSoBEGE)_etQtQ=iz& zIC*Spnho9}9+RG%_b^j4`*MD1nQCESd3B9$v3yl+LnFFAtEH*E<3wc(ytA*byG^8j zq;{}=bfRXwcyczssO1$O6)l);xUvF4Z?+!6c6JaVySvPv2?#3l%J<~S4tLp=ybc{< zntXOqE=l1$rSf6%^uwS>_dYx7=(alHvdxKc1&My{%R?08tZt(8?L~*$kLDb`Z>~(& zdi|&Zr4)43*ti>e#?qC0ApfjFlG3dhB^$ZZ$FRzH+oP)^w_Pb*I?6-}IjK0(0*b!#As<^2g0@)v$d$a;86;HnH4`&Wal|cuFra zki$;ToHli$CQSH2%;i}RmZmt-8!PtW)^7(@w8?B_OuhZ z55u4SZxo@InO!|>VV*wr)TiCq{C#!(sj1yV=+Kc-Q5;A_G$w{NBmtMmKz@mWIEgKb zFFP;W8v!d0J_nT`pcBP4wS`5Os?PAq!1vpOC_1{k`Ahp1dWKrNhKKqFCYr~3MyESo zPcDeR>0O>%ToYUAeAhO=z9YCbve&Y``<43>e0FR1{YkL~RyjLzD&AeazS#!9(@b;M z4;MZ@5U|IsJ?Vd8wk71amIOPcvW;ik3#RM5QVs&C9UlCRmClvt)5>E-mdBfXg_o-m zh8@3f9uk?jiH5>>b+RHn^V924D#Kf5S;N0H29;*&76;keXf1}Z&> zf;jXpKf9o~_zWxy;m!mB8cY=}ff*`iYpUepGfC@;?Cxsz8&K#?r5H}_ADoaGOB$Vy z-{0!E+2shp0ufn_0BsKMKAhj``Lw(D?d+%R<-HFlx#w7A4uY*-*Sk5>;CJ8+89e%E zvf>fyH<~r}7w{4&Hhp1xspCb4KA~?^v%Yb@pH&IxuC3)~q?_nMi)K$z#_o)(qdqY+ zPkws-+7sWu_v@;r$I5`NBEIG5nMl@Q#NBMu+R&GLm3fUS?jIy9)&&X;H)6XBqAXrJ zTAXi+{JM9Q1aLx-agbfuXMaTcTEBrpE?7VsBhevbyiB_D< zOLB_3Hg-eQw{F~i{uJMn)*q(n+f7@G&$FwhebUbRoZdx4c6@;2A zsH8lrLYyQvks}i$`y1}RIQW9Q`(H5j;|t=;S*Oy^5rhRnj{|%}BX!l~O=98Powy)cas(a4_wqDN%Q0Won^$%& ze$3kxUgLIlbMSJKaM!gD)b>>I57G1UMujT{E1`o_qc6w0s$gUjeUM>s5$REB*qF%6 zIE}pIM^{TrApn_iiF1|Jm%{WLn)C@*TM+Gt>TZdK*8cK=q2boLk+QLIPzvvyels|? zu-FBrC9aN7%x$b~)o)Jkyx;pU`Dt&hj${v_APzEiG9oSU_nS3;s%3lr;e8UnlTT*| z-v~)J-=1XhtJ$9nd8rv6@k;^|mN*%*^iJ-Tt!Mqf`TFBkt@Cchwf4|F-@fe+G{aCpKe2OYoK0P@#JLh7i1uiSM zxP&eLPN6JRT2p(Xyu7-uv6fH?Z)obsZK-VU?8A2#_V$lN4B~+90SEPi@z{x}g;O)y zZ~W#L*IA&=wPWoQFwjN}YuNhw?Hj^ygPb?ul3xH)^44)QKKBJxI<7GMpF$EaeGaLNv9$!Y1Q67@53a*t)D<`rcWm=>4gN@Xg_9pkHP zYKrRO2vP`0LZDNi9o7qL7`We0+l%M}-0-#(S&G3oI_+GrX_?u%)!Pf4OUqI#Ydh*2 z9GhFfRA1R+|FjHDwSA-RVfSfD+J_YfPV@M{IaEB3-$-uer)QJ{Ih#^TFv~TC=}+86 z3r9gL_gXHq$Os-KU=ZfcQ@nI2?&5P(LT2$YUm%;y9zAp?qyNYu_XE-$C7xwzst4o} zzTlXIE^1|(HtSihrIF-XsgM|%!amFqNeup6IM%ww-?F{szxz~(_{Iozn|eJA=IQS& zI$!+$R+0_598YC%jiKZ!!@`lwCo%B}!C-bO)1TJFPPPhAnZINi zsFV?miDT4vgpN_L?>}xEAsy#>{vri&oU6BoZ-9^6a|+NV5*ikU3XckhA)iG?C%`d@ zQL%AWNw|pgXncxAT4qRIes+#oVP;u+ammvPTy0`?Zhm-u!YlLU==P}A(#DKlbhl|| z6F~M&hWkdxUyl~d!l$21gf5LO7`}ZoyK1zKo!eZSd%tV&{^KY8FFW7#zEx6uQq;TT zc^~4&pp}We|Hrlcx!+$_@H;#Xu@zq6z@XTV$T=?fD=sLpk;YhJz@kM#MAZ97Wxrhl!~BdZmcPe>&~^(t|Ryq;h=n@+AsAic7@G+$$v*65uh&s5qG@lI7Tg<$N#bI{)GKIf>PoMw7VS+llMtWlz2|%&YosTfCMi&XCp+ z+?`)RmQVJTe&dc-dj0%_kDAvo12ooER5pEkjM7r51#dH&<6Bhu&N%+dRoJ4n#Pq2- zuQDD4j2LZs@yJ4e=81YB%i;k>4D+~ys~8^@gNb}VvY^Lgf@BsD8@L561wUC@5tKv( zKioghTr$g&zjMoc#xQtOD($1(^m&kq%e#Akyy{|jPX?VelKKSjY}K_k^^;l0RC^pd z^$ORJOGOi}(O-6b4c2Tw*LeGVoN#pFa5M2X^6+H!H4J(ha3)wcR6oSo)-w7*WK^ti z!u@#8a2@PDoL4Fw|13Q)Gdl@Ep37WdmsxVEEUTijG(Qtoce1*=v5A1C03uJR#a$CTzO`RB`LNj@zF5+tkto3^pjGqf2tdZ z({up>TF6D=(DRD*Cj%!M1)vyhkJTZdUG>OCg2U8b z?O~%k^;+|*dqr}jm5@G26<}_}B0=3gL{WhPbWH_r6em>#w_{pPMcGPY*9(h@#@w~f z?*?mU)Xz*F2og)V<-j52(fj&>gb{i2O@4gG0(-u;)h($JA;P`w8?_hlnZ{)|@| zE;&!LY&^#w4KqL&Mx7X)tK*7GR1q)`307Cr)>NH>8X#6!9ip+lqm%VSQ}?l!zGJ9sgd#RdpY|*UhlylwbiLi&qYUpT*(%jm=R&rfJDfQgjU~D_Aw*EoBl|+ zz}@cYqx8+vnws;w0P?({GdfEDDA?{n%l$iAxdAJeG=IYh>%HHdBeVZR=I#MV2Chyp zCpXU^51;)3;b^b$sOS*)n0O4y8db?u0R@K$qDAco2OF!@Kae4H3jB9OB-y66p-gpI zsHYqX*tFxQ@(jVKAt(+r`cbn+MsjS3474~~eAj*5wA#v~?SarAM?i7Bb^=^3%v zARrCPFGwnmDJo?sN0BV`F_|JTGJIgE|KbZ_JJ0?s6Q&VBf!Ct5F?SQu_&b3{PY%4q z*3&itcZ9GMXLptKej1sF=k2?WhL@tEK2I8Xjau?!CNq}qJhw}%mHk*rj-ZsWf2Qwi z;eX#v+m70s2Wb@;6k+p>8oa4{d||p+zbNd5Bli=dj52Wnu164$Gw|6Z=5d&GpW^BW zW{xHzAmN0 zvErMmY9uxciDm_5GG=KTc^vZ^$rTRvEG1>4S3-}0n>z(|xZJu{KD+k#Z0)PBtbd^L zdKq=>N9xy?yG8OwlIp&kNrZ`o{bG>oH-Ex_{XyVjznGc~{T&?!Zs(&l5ANNIH*}_& z#}@NxNYPU3I<{EW&sS7dNZB;*sKZ~n*uC)Z@^%w9bLMh=>L?P7(v$QHk1#P+^*^I~ zOFkMXs$w-1J!sfy5fB(%f9f18r-V4Vz66n@Rd=qawjMCivuj$~JL(!b_ea+QCVHpk zNMCn9$!+#hftaR8~B5!$z6PGgXC6K(Z;~b5UCtn#*!z z2q&y?11stGtwu1y zZR94j9~b+8xY(B#3WnUIDBvIliHZt~j*AXK%f`mz;7Q4G35n7vsWI8WdPrvFh8Gp* z7l@bUR%Mr0T&hWZm0VXZ+K6k*Ymw-P>%jog!|1-K=79?%krNSP;y)qiSDT6o| zVyv4A=e@3;5Ej>9R^EQxP7iyaCne5q|K+Sb7NKUaZiIIcXc$b@+~V z-yzvcoaa%Hz+I!@{7$Qy#=Z>$l%_U zl+6ol8)prF335-&x@T}OAr~(=9!{Ps$*=B&PpeQcxns^LTq7fFUuGE=dEMqKPh$1# zUg1NFmYt98k6k@(Iv820_=>x|bO}KEpw+#Cz10IFLZeh;LgEzz6EwpxDT=YtX_u3A zv+m|en$Y439vE}uvDu|Mv?eeD!P>f_u?4~Xs<~AK2KDy!58UZ&>lz)CE+QfzGp}do zXou%VmflV+&abV!>)u>`zazadySKaYY5MEu_4mJin+gZ=pFcYw{^4;V!Csu(-;1m* z4`6@n=7O=Ts>B!|%49|Q323GZ62Pvv>>Y;8QFAf}^N%x=xnvut^E~Gay2{;%vscmY zlON_a`t2~ndSg}8g9>grGO8p+fBI!1vuVBJHro_UYe=<_GpE7}o=48qUT$W-mM(!; z+;#1^z3<-RqRO?EIV}h2rw^vI=4|U43y80oWfR zU<(LT4NW8_rw_6wd%Mpd{+EN=w=I=F_}?Q`z(MUZfI>P+89=TFfo+jEa5I0@hhhto zsMn)008gUZt5{q5aP>@FDF&0+Ik8nU?Yf-*-qAxJ&~Tr)dj_aNzD6&D4g3ScmB^{l zAu$p0%2ct=SYL3GQq)I)7EChwMQXmZ0TpeOE6y8VP$g_gPMesN8(Q5YYLrfkd|qDG z+;jd(F@oUM0I%#FXE&!k(&0BU_IjShjCx=Q^=4uHbmtTl{bFt7!{g`6^&wqJd%rPu zo9N6vxi(qv=)En?HtRlH?RAt(#8gg>oXpRS{i?aovO9z{;Sss~P>!f;dFD0-B7_CC zMW49WK$JN>8O?4D2(6dT_F~zb$)}Ey+=(s7j!b5szXjSM#9vj2tyz@M+~M|B1u{7j zDg2UkhJ5jB{EeRsdOsvC3F>B_6(Q4A)ZBi-eC|e*;qBcNO~%1{qS{>=dGI{zH<9km zGB%%`HJ!#a?HGQGxUq8Gi4Hr&`dJaML=221?wUw?ihDox4Gt89!Xv_IA)Cm!C|C?4 zNDe~8`vMF()i+5jnmU#{rC6mcTbC;pW1{K-So>#1XJ zK<|Nvd@}cy4tAa7Pg;W=72c2RfHDLRIC?YU(TnZZ+x_!Qlrqh`2-~abFA`SQ&n-&P z3chuMJG3$-#pH9<#uB?=DG&yKRD}mKH##}b1G_nv{;z%8ET}gP;63|pf@5)G#O>g@f4qF z8Bak&X&Nn+9vupD4l0_2 zP!F@@JWimd#eOK>0jri@g|HK*F5;l{O{kEpuByG5%5fyV{Z4CsuNYL!-hC>ouRnQE zvYtFPoty?cIh6yam>qdVK7Mf-H?91%9(u!dgpvwIgMcmEQaQ8|O+iLQfB40*zJ?&b zqb%Ac6$L<%q>B47Q3sbL1V>Jq39^wP$@KU0qt>4u(Y2EkWvDD*5{KfQ7i#3|Ejih% zmbY1X5}?C3w_($!ZKD?g_-U|xZ^D%0HH`Xm$_#5?*N75q`DtO*k9LPuEwQgOKOr~r z!iVligMMhOKW4bUn!q2Vr(y3qn*vG?Nz6B3hrQ}8L+ zv>VCE**R7z`Gtmg8KAGdJge#!`4#Ho1Zs*p3-FQTZpiF6L+OBRoSS7MCLe;7&ry_5r%YyXV@G=T&x|8 zQad}h>~6l94mCt|oRS8kSz6wFx$>$#HBH@d@`rbuS_WC$Zp79eI!)Z{3 zIGl=-^5pRl`6~hM#3}g;4)>9hk#U?lv-b7^s}lN%kc84%#mUy_nYi|QXs>-GY;7p8 z*d*4L4b3E)HKZ_j=|kD!1~PXfTvXQ_yF@WWhbu!42z&%K zi_;(my~@r_5`FzcAo34C#(|spH$^NoP!{3^{~$`meTx~B7x_cLiim-Jhlqdp{qr`G zN$N2ibI406YWEEWFv1zCO!$VJ^EuZi=89_g3RE!cc=rEeoKyk+ASDE9|CAhC?OcD- z+55{Mlu}V9xqWD$M8^jm2HL1e#DyNXxYo_}PVb(}eFqZJ?+9uUm|U27dmS zM5P4{S%Wrc@;{V%iMR1z2WvA%)I|i^CFT2s{fP=JvF7*W6)_cO0-*5=6;b(YkcvA3 z`t5%&75{(bV6_?K{;H~+N<7$YdCz~E3b1qC3oGaJA58^tL}&ajOa=I<-s%RC+TB!e za%9k9@FXdL-R1b#N&kc0{D&W>0(11^*Bosl{WT>2@jv_hKbQH}-~aPJ{;S_F`Tqd} C4=G6i literal 0 HcmV?d00001 diff --git a/ros/src/vendor/grid_map/grid_map_core/doc/iterators/circle_iterator_preview.gif b/ros/src/vendor/grid_map/grid_map_core/doc/iterators/circle_iterator_preview.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b447d2c6cff19865afbcdd3b715f855d82a229c GIT binary patch literal 20228 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 literal 0 HcmV?d00001 diff --git a/ros/src/vendor/grid_map/grid_map_core/doc/iterators/ellipse_iterator.gif b/ros/src/vendor/grid_map/grid_map_core/doc/iterators/ellipse_iterator.gif new file mode 100644 index 0000000000000000000000000000000000000000..a401b30818b8c0ae6b6c25a00bf0e78ed39beee6 GIT binary patch literal 30436 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 P;d}NUjNv~j+4cVeYV>^S literal 0 HcmV?d00001 diff --git a/ros/src/vendor/grid_map/grid_map_core/doc/iterators/ellipse_iterator_preview.gif b/ros/src/vendor/grid_map/grid_map_core/doc/iterators/ellipse_iterator_preview.gif new file mode 100644 index 0000000000000000000000000000000000000000..18908ac7b3ac3f3bcc9c499b5e08d4e3eacb3e7a GIT binary patch literal 12485 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�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 literal 0 HcmV?d00001 diff --git a/ros/src/vendor/grid_map/grid_map_core/doc/iterators/line_iterator.gif b/ros/src/vendor/grid_map/grid_map_core/doc/iterators/line_iterator.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a664ab5d9f83bd6ed10bb5fed472285f23ba278 GIT binary patch literal 38873 zcmbTd18^o!yEmL{E4+CvYexrOlE0SzmkX9QGBW=WY-LaXFNf$2tSuQ_^lTWI=ouL-E&uWB zU)1&v3V{E|jQ^3^Udh!4z@PxIw|2BM0Q@B<{WtU9zWd)5{X_WI8g4l|)4zkFXCZ8D z;Ajc3a*z<_CHdPzZ)j@BEh@+%%EZLM%E-aY$j-^c#K|JeBq$=n#l$Ae$;c%t{BIfm z6R#i(D?2L-r|{nk6BCmN>n~Ozb|Efyu3y4jLc*+^|KXLevUkw4G64KrujyaC|II7( zzw&Ym*#Yz%tnHMntu6i?0l!VG9jxt5tZj&d6xoR=W%LY8t^TQ?`e%Ut%U@xDov9PR zP}I)alIUMO%x(HVSRnfA|I73L;x+vL(`yWWjbZpFJpQk6`FGXd82qRBpWy%d@SpSn zSpCfzyT8c+3jF%~cz=6+d476)xWBu-xxTu*I6pf*IX*f(*x%dT+1}dRSYKORSzcOP zn4g=SnVy=Q7#|xQ86FxO=F(<6Xm4w6X>Mw4sIRN7sjjN5C@(85DK083$j{5o z$mNlr>kh>weniH?el2oDPl2@VPj@b~le@%HlcaCdWcadvWau(z|dv9_|b zFgG(bF*X7i8tCik>S$|e{?SlZQ&mw`QdE%tEhj4@EhQ--E+#4>Ec8oIfS-?-=O;H8 zCkHzlD+@CdBLh7hEe$mlB?URz4^k3hB0>UuJX{=XEKCe^G*lF1Bt!&wI9M2HC`gF! z;NQUhPBFx<;NQVP5J71F&Nd+bOk5z~z?xBs@=nh4$#$SFWt5?5mPuKa#d((v?X-jC zwoBEu$2G7g$3~nMCwip7Zq$N1d#1!evQndZrNU|a(ye=^#zmSwefp%qZPKcJ`=-T1 zwtD^grNe9b`W@)w>*pU37!({58WtWA85JE98yBCDn3SB7nwFlCnU$TBo0nfuSX5k6 zT2@|BSyf$ATUX!E*woz8+ScCD+11_C+t)uZI5a#mIyOErIW;{qI~NIp01L9Ry0*Ro zi?F@DvA4a2uy?$;v~zxOd3bbkvUPa7cCh>SbawgidGoqPu~LOI5Q2E_>n>)S-5ahA1ffM*i3J^wBOpsMn6cdlOQP#djd+bb91Wr|jS7&k zH=0gB(}}{9Y$%b>X0pW5l3egrC=%g7@R4-v^>I{A*Y2c>H6G4n?GJ=IPbeR#)alle z`4fM!P-Eg>X8Ag0KHki_Kc|(xTp`p+ecb1G-b}om68xvt-#rL4~^E@cDpxl zHBsuKhF))in@e#ZT&=Eq(u)6BW^##Ybx4b`DPRNH#&`^sw|{bD`pFP7Pi|aEE3LVG z$2hY2o(_-me7qd8xoI7l9dnf|vEE<{@zG%~w$Z)%!j0o3MWuI{eG}i=@P2mxm|$wf zR_^k=C+SR1&Za~Aoe>3ukBxQVeMFPt8*hy3y< z5SY2V?f(r&4cBjqN<5FhAn4i z2C9agr!ko(W~F+W9&>=btmxRn;waCrg98h_P9+o5$H6AbJl{7i%FI}tF^sG)-L>eV zbiOc!!UzpX%;L+KwoP-TU({t~iK%T-<-#gdR2AMRXH+@mUTZ~_C$rpC0g>9yG}U$5 z+_Z(Q7$@g-e$24c!18Od^0@l;zSOd+L8EoT#x?!+%UWl4SSz6o(RE9!!#Zrm47CaD ztNJbKB>Jl3FLs97N0RjG_QkuOXDzgOXOtZezi1eGGEpoT`aWLXXjL_N%E zurxl(hPbFIs(Z)G@XouC+%KwIiR5VP(v}cD=6TeS56hFE8DZ@wbn&^fCzp0I>Zjbd zBJL-+>0a!n`50hxI9UDruh6fO;C6zjEgO~G5slLdgQ!U&?JE;xJ6XrC!|>CVnf@5W zO*32L7x`5o9G=gs2xn4BtnLo8x|uD9axA-Xq$cG>e^%~`8)JGM6@?Uw-1EpR8**m4 zp~{l06EiXP0FN@9uUwD8ZKiro3X-kbj&c!g-p-0pd)kh&{R!SLvWlzT&WjOaxUVYO zr`k_5)@9!>ntUuf zR?0Phtl?U^)a4m{KJ9ZLXvBL!VQl>H!FM6!9eRTVVqj2y=s_u`bRp9h2M|mUL29`$ z;T%B*kt7g9Ag?g%Ro(>h(?ZSqxd@R!Km~Ih>>}WD3Xx&V1c?n`Ma4h~<2u2G8M@~o zG@c041DS0@;o$ZmdO1ZI_-wpoKJu_JjRt6kYQiOy_HpJZMY)r1Bkdv#@bT^Xs0wPr z{tOt5tWolF)-lGoZS3QXnhc9F-^GSU6!5=M2J$Z<#Rh*6V!);jOFN;&q<|k%Fqn$V zQ!B(cUqF)O>yDCG-P!8;|DeXF8Wo_i$0y`F04Q@yrHr-|5=}IVSQ@E>sTJ;1=V%W(detXPgILlI(T=&w)nhH*>@qes zhLIvAMqUP^<1Ye^e=bYNa**F=_c|0aKc`OlFV3fbbQH0nx5@au+2#j>)ZF75%DGqQ)$-pj)Oz1k+SU@w z{CLgvSBWPmKtP-(?X!+*D7sFSmt4vWv<>}>+phGU>c+m&T{E|@uCz|o=Vo5Ku>M(_ z@x5-yeAhDS9qybPyK3BlC43S$|1%paSDh~y>jQztl}}b^D-b7Tdr7q+jQuPi1*~8D z4fCUDisxAv3a3gcnT9f(-J*?&1akJ!nPu*CO<(8xR=37g3wQ0PY6o(2c5kz| zj)e8vQai$R7h^l~=AWFrcFqDA7q(gSHLue$jy1zU95u5sq)A-eue`;)ITR|rMceA= z-1sgUnsFwIj{;96>?LG|Cesq(np3?nXzh%ra6d!X}R#_?*8 z<*>|`eeSo&T|va9N;cSA9=(dwTCz3?*&!HE+5TfnG1D=e&pY9j4R8+cw?R85hkk0> za|PG83C(>mFz^_ks|1{7)bFg}>xcRp=4&hDq|240mnTk00w7=@@ukYlmTb9hC1q77 zXz`m%bw+=Nbf4~u6NgMh1J`h7t{SU}d5;L>+*W?muxFY_9=bZWZFpHdaXZn0bSvRf z03ntdjd_}BtShQAj-GNAd9Av4-xu7xnm`E9ZmyI(e7<2i_xfMx#kjTa!gN10OF3l+ zr%#W<`aG4`-kBTar&{A;I*hSKm?99aZxJ^)j#kPXX;BcdU^ZZt@o7}M)n-k-94zecHhR6BgLlrai=8i-`Ev-?YesJB|{IcX2n_CSvT|XOe|&h)KCb`*`4wJgKajG7pu3 z>usoJrXi{ywz06Bl!`K(*2U8{yP5u?ls9V1kT=VPzcd0s-YnfJuBfuCZQ;|;kqTE z2`wR+wjS+j!GkWQyJ8_hy}mIk5s@yD>mgxGf|2T2L7O2_b7B#tB_X!TQEKuo0qCKt zP*Jxl5!pu|XIQ>Vl#v-PQMD`Hv{+&95SA2zVYh|R#Vh{rFYv$@_Y168PpD|b(ZCRq zXfxs{kH#RV(8yz`*wd51jh6`D-LOoxn7gHzq8Go8qeyTluPL=iY^vyQtH`z|q4Kj~ z^(js>j%vrvn1Umkp8^4Cf`)ufTD^e=tkC9uCcrq9ZysLpUiOf}MVKTElk<&v(=pwP zp51EuK}^+Bd_&c@>ovSqQwoBA)smEw=(PdJFx;?>*pCXv& z8$2ZYdZ;F$?J@e71YWiv8yUx%V({a%L{+=Wq8L*&nnqEZ1ow#}SGuNihLTf5N3I{n zG-1bv#@aDKGgXBK4y$EwQzep7W`w#V{xHqB!oq4e^;VfSAT}gyN2$WGtEbcE4uXqyV$}YqL5eGG4jja7MGvu){rSoxpShpIW0| zM&oKvqCZwKzCu&K?PY;+XUvLoK}aI(mFB{Q`GJS!QmDsu9p~Pw8?SKX08?`@$D-R^ zBh2Nq_g%Az+VV(o@^+9i>OwscV6x;xV$XeZV7T)M&9Xq<{K+H>D8`IyTMNX>*aUDi zpRlqy*K+u9^pVmEV9yG8+zNTA)8%o<^Cev4V!}9vu%16V><5vvOO(l5{sdc+;Vz86`8I^b(KYq zv6oZ5Mfxp=Chk|iGx=Dyf>#;UM4)mGl6g&yB|y?3Nnux9&&MmzBk#FtBl*?#_12=A zCnWppv=Y~@kyA7}yTv`L)1+&-k0wVitNX0hwNbd%h}5(FOzE$8Wm@NL&aaCdv@XrB zZ-`H+YfSMwO(`>O$S?f4j|$|CUvNR)THTjpfMEz+oDK8EPvhiwDuzGKadB-G3ZE*{4T@q=^I!|?8*D{3-Fv4kBNDB;* zvh3a~Cu?cTYj1YJZCf2_d7)@!K5e!I#0)nz_N+B_>zA@fw9^{5Gkj}r{Mpw0v(X;V z7WGyZx!x)mYgxu!;2_meVASCs+%Z_*p*Pz+<*wQ>9@iz6)`~Q-|9LQqiq8++1khJ-ZsGJJyL&OwkHm2#41V z%A=U*Le4>l)!<~JipK2ozTT^ZKPwS#&@6QVqHj@0a_kN;^PQsG`ijDqcm!4m# zJ-Cux3L7j$eHlwX6aQ4O|E_40;29L;>88Wz_cpH#V{51RXw{z0Wz!tm==~GH$WxMINSVzdr!xPWGi?Ku_~E_*EO$CFvz zKK2NaQ;XrpC<;$!j?@Ik#OR6Xc#G!1bNjD(N8Ri22@W{V6rPECy!Iiy@lws9q>c{G zxVqTK=*E)Z1=!VbIs`t$oi(i z=`5ktY_q;poLYchA_gZHr>$=d7rKnEW1B|fWFZmP1PSIP#YQ8!L7rwP3O{uD-%Me1 z#>6p@N=K;l3p7b`7A@A=jScQEvwW+3gP8A|4PH$i8f~%q*6ttqGX>~=PHQPjrN(4ZEOB+|z}=}7YdMu_i8Iz}%5Hg0a!Jc{ zY5wQp&&s7~_r{S_bDPUNt9f*xl9*7-l~?fvyG)Lu{nf}tqwGOR5zs%TxOvbQI!dZ%S4Vm>x-;KfGb$UMzO<>Af8qfNfg zjV2P{R<2C;e%%4n`xb>|xVA2u}aVZi!qS!pojSC?7jVZMj|n z*O1*u*ey@XEH5tJbo_|<>PVMw`?d^QLgp}Z^Rh7NU>CpI zqw`X&HoiP-zV-`KtAF7JvJR4_Zcq@dX$0*|mHb@Do9b75mjxDPr^hv6csrR5kwRvCR`5xzk+h zvwXRzSloL9{(Ek@dtucgzA&OR{)dX}XK}sSz!XXu^# zq=Uy{#HZ2j`*{BSnC)k8{x2tvY>VsH58W3qffr(i_jS4VP3y-Jxo3A;;3dygbQ%Ar zR2hCMA}D!iL4>@l^%my&FL{Hc+aLI-hbl4X{4TV|H;r68s?J-c;DJK=vo6BqiBdh* z`{RO^bJ*zYGZlGL1j~AWMGMS8ff_Y6xXIKAnlIl5M$F~Qfcu`3&yy=n7&N>eJo^3j zXZaEjeF~xVifFMNsY3EBq%Iw5=J^*R>vh7V_HXmJmHMoo7nB}>k@(yJ9)Cm*?4%FF zJ0jO3nWSP2WWbMjpTw!Wq_i6VM{$`&Mt6(tTVs=Dhl1vw%u}i2F}4U?k=)&`4OE{J z*&2|OPY+;aQ_F~XB8{2e;8jxetSuRE0`b3h`vRyjIJsM*e6RzMfV=7kzBcQ>xDgoJ z-c5w|1%u($Q=lX$4kJA2N*__b%k5wWv7tkt8OP^GX>TR%&ZXK26nzK50`ZYJGp@{G zGfm>blsipUmci!hlqg>ODL~)Z#mp^mp;iYNMPW>5r&|Ms+vp0!P4-o5u)FNSA6L2D z0(E>XBePMx+351WY`T1RuGa29*r4{Q@Tu9WPgss(!{e}BpK#&$Qw7J(dOT&nn&c#< z`d~6^-`z!!poGrqzv+c+u^d#^Y&`^%l|l&u3nH88@ND(;2cM_3AT5}w6oJUj8NnFL zCsQlb0*j?{Ib91keR^|G1P(oC)E9^OsMzNkfj`1SyTMy`8JN`#_5AuY+>SWi1T3SG z6L1Jv_2GpBiJ0cM#JWK2d;7ry%Ku4k;nNKb?=jtrK;=OWSp|Wn=f{FVOaBew+mG8` zbX;&-lsD=DBq4aYmnk6(EsI+rF#7^xR0K4o+F^W8R+J%3QcXJ{0@@1sc3dF~lws^r z={Si^7->6D@L*{sQ6~o_W+@6+VboE)oCuUAD!>oLan|U9`iZEPjCoL0I${NBw>=(3 z8Nu@e``=hA7Wd^G!w>Nk0+k+U<3D{bh&Uuz6ql`n$GeIX^lz$ zW(iarP?~>;14Cw1R-Tu$Y_wODv+q<6keApTRuYpRR0J+7n_E5(yFF#FNvmLcJ}sC8 zXR>FAdwyScRS#2g+wcokba@EOK&&pcKaV}Odh#(<~tBbhL8lLH%PMc<*aK6Xa)BiYZ?&fPV zuif3+;o`rlV&F8M8p1ux>?V-E?&#Of&})0FO$TCG8)=+^qf%~j!`hVi8=hiAiRIqS zwBCx5yTB0&CXa&7Z4{4ps_oo*kW6cSr?t4-f3&QE7kt3_7-Cuiw*dJB-!|3d4Lr?4 ziM^kr2p%i*V~6w#XayktxH~A-_;NukD*Zb^}o;&fIVv6k3M>0Z@g&R38#U=+ZDEB1px zo5lEJT}Y7=so^1d4fz%bP8t!dBq3DQ_`(Sjn}PZFwwcs05;(|!$uB_>Tuo_5`fMXk zVRG<884wIgX(3AN37s%8kxHWFVOA9j{Q$05hTygALDYq`-LR2zkd$s_MXA-}S!>zHHHHLl-$fiF zMLxQ5e~ajmyo2wpme+5<5QoeZk$uiKKIoti4P649%Lyfc|6`cq)re#iIXWV1!Vp)+ z6=h9uS2{{wc9+zIr$y-~5u(7&l2#%d zz({;lEq(+Ns?}h`kb4@e5p*AQG_b~6e=KD~J#V=^OMcC~B%}H@n;C+4%$4psZJbx{ z9IAB8eZMMev<7FR5@sA>Bsy)dRu9andoYGN#4?#xl{ZLz6>LHtvQb!J)70hN5OGaDFjE^%F4!c-j?n~l1w>VtYR#Hbr1m9+rtew62(?|EY@x;O7ml)@n{a*7Oa-Z= zE-D1lcb`sm!B^4s<+;1WymFv2ol5VT24@#WeW)kJ523g}v{ovB0KmxQS#kU>cT(`kPwsbSS5{QV^Axn5xAMZ_PGRt7?~1P4d|#-E8bBJDD7wa0{= z&B4_!>rvB(Qpz7X3HM+Ibt!-grZIcGNPJn+aX62kf;cJ_{M*ib zoruJBI$QfT9QpS_yuhQ}mqAt}g>oWj&|df0Sb2)XDegR-b@MweR2hLj449}`SF@$B z$e7CROU&Dkc55JdbLV%wKbPt-{GJp}sih#3GBo)>!x-9r!*>s_ zc$k-41oKQF;iAn!FF3J#&Ry!*p>KGp)ith^UAfQT);vyuwbQ|lIvX%-#ne2?klJ3~ zr?eFJM^*KmuW0i_X^wyoKUH*6T3bnJlEWQW^egJ>IHYqooH|vHe!IH$)%m#(IV{>o z5p`!B4?Rkp8Xl7c)BvP?(>&xqeodyjvd;~t-mgc394_CtUUTbN6qB@#acR3xMf*Hf zX?B}Q^|~v^)O2EumKZihcql%W+#n@-o%f4+tVG1ex4eGsKGd$uH~x7FmCZ383vox4 z0*a?`)x1?o?=s}rdG*oaK5@_YRFRBt9ng63v?A*=#7uA%#Lu%b+4Kg(7PlbWne<6$gllR|Dds^fK6?0I$>diXe8*|m~E@p*Pe$+Pawci85g zx=?uT#ij};M^U{^`A*N6q2z}QKZ!g+!8`|$~H5c$G z`3VA7TJamE2luBTssOTDNlrQ?OIa;$J1Hz}^VoY8C`>QBkT1|6K;k|U>{riW&$oAC zm<%5XB^JJ>QDnRTLY;a%IPfr)^IkL9>H*teAS&yaOD;1iY)ef9jwA~^4J*>GdLb#e zex#tEEW}u5zo0aJkz3T$OV?9Rz)@Mi3&j&ph!ZnM)YE|riQs}@Oz_{~3cQK8@156S zsr4wf!_PB)kJQb?gc6p12dBH~o^Tg{aQG>*(O-5}`Jg)x*Z1@DC!ZwjfUrf+^EaHe zRH3*0eqh&Y9K-n?L$#`KVT5Sr??=}c0UL}6OjhT9SIi>TH`T}7&O12GCvTRNEa~K7{Ws1 zrAiqruNS#}7dfIC(iI+FaOblAA?7@QYPT*Tp~Pe9F>EO`WMe31VJ_l$&@7uU&{>W5fe|D8)?FyF%FI!S|boh*QZRkHv^Rt5{IPh;%}~-#|ZC!thuAh~|NKV7hoX zPnWVoikI++<3zXTxOi5|2-wGPEbD0U#h_J%M9hQ)=W6M0XjRI_sOg1xnqg(+fOuws z1hDK)!a!*#A8jP}gEAojGtpu!@qi=QLOkb(WHFkgOTw5%uB0cNq&%Fs*Sutv$58FS zkUQ;IV8dA0!H6yRXuXG2x}j8qrc}kdq;4!}EQ%nYr6VVvw-%O>m^zVTXTuj^n3X{K4?Btl=w_|hu5H-%EHAN#AP{-r;9Q)*LGb#$`xZL$a+Y3o zl;k)T!PsBII%a&EO88q`)2%5xi9m>AU5w>2pRrm+5( zaO^uGR$BP;gCmO923>8iQ~vGE9Bybl763~!l9F@-8t^aNt`wiLgeO$-yc7kQUl6e`{b8U=M1D~2?5`UEalNXXE)rZge4fh z@@A{>N&?O1^xYMXL*|Gx6*k6aY1rmB!)HGRYTu=$?DfkT(Yu)%@dzThetrs4U&^z2 z@-DK@(TmV?PD;TEL54{6ek~}@1Qd&W%JEGq@)wekG-k2OD9}63Lv}J1Moa+1@28vd znR(dcB?|di9TgNd6$Jn@cr1*kWIxJMZ5BWpm9@1Lm8BE`pNj183(}vzO&=AEVLJ6iN(?q9m_3*Nd`^FRRQau}y!c+D z0_aF|8CX46QeRx^LS8gVRM3)Ia)DnqotR@^o#Wu0<8-9>l3vKRP<_~4l9=pq)lxBb z#JQd})~R8Kw}wu@X{dnNoGAglnz?9{n> z+PhM`DFb3BkQJz*xw!%@{cDhsg#k^7WfYainREgDJN6zV4BYzDS{{$_b5h4yAFn`3;bYOmJ#c`DM6Kte441DD;5= z__z}S#TfyYn6)1ot6iq+>@S-E4?OF>$_(v|WF%KG&o3gx8^T{ULQ=CknMx*HD3m_2sjORO8U%HT0Z8#9CC{?1kNTd{B zVw6vMRP<`ZP5LB5dtX}HNP%NyqQ1R&-Semhf}gw0Rr;qfdSJP`Y)eY?d?WEAean`< zFPG7OzqYu$wr{bvX|i@{kM@E1qmC_nf}`@%~>KoQY>Q5A#pM}u-l1B8MQ z-;N%ztsN%vVX7l)mLUVtB?B=CKyas?8!JI3&2V?^fzr@{a+3j;*P(3Gp8&BheMh70@h<#-nX=(45<4DYpX24dmQ4*wmX0OiBHcQbF$=1F)hPDO) zfR0+*3PM`R$p|N0`w}o~n`OjZVno_?1Ttl$yQ7`5AZ>I7t^0LUKdJq&`n`os`4xZ9 zPS${7#h5JXhtAgbxOr|Rsog7^E&d;)JX^EjL&H~qs59lx&diM~>0BCV(;?-)-WXoy z^1dN0mZYOUY>^ z7W*<7ld0n-Cn=nyc(}w1+m$oNVpRb#O}eVLJw#_d>KSHoI60wt&}a`m6S<)QyOej0dKU(cTdf901{VjfD}yCB)VzecOw#$#Rxu6x!83!eQU;HOlY}`0~y7V&g&bqwAz=tZ4t| zLK`rC+cmyx!+A@H>uW-5>wBY)UbwqmKD*~GMRZkYjO7c&>l!4EySVh*m#W*#_N&_= zOENiY@@-6dLPiEmOC{nv(+C;l!^X8PoAe2r*cF@gSvze5`_8-`UHwa6a&mm5%pKm) z_NmMYMF&ykpt~yLR}7d3m8;glOs-`nAXYPA9(Nzt8WeoCXdT~_e|WR(r?&CE15Wom zIwKvS|AMkTmlvyPm-yKr(b>d|=}pCB9V0UPfa62M#tpbx#!-&$@)X^KtVZ>QuAEsb zmS+0asU8Dt$I9b)Pwvx!Y+sK35F#Z!J#96=USbt;fd}BLVvgg3WH>AW@67Tz> z;j?rG1s6ntisctc_eIbk*Ro8NqjEQvY`d7HH_1U4XN0{#c5Q`{om%6SGP>tn!dF)% zcS>uiDohF2?N`O7t{H-b9DesUe!e`4w@wb%I0(DUp-5#og?r4Obk)n5MKpaeYWEF(zKLy*hRcso z3YP@y&onvbSoDY0=J!oZ*Cn~je8{g-e$ZX9ujX=3#1wZoaaT`{ljUVLUj0Ms5BpSo zw;qbmQ#y@4p!+DIn~-BVaBEuNn(*=lvE)`2*c0uJka81I{CTK9SOq3=!M8CYg0U`0=PHcL50=^S62dp5bk%fU^GAEqO>JNv4lW9Mg%n^!3l1ioh zaAne!3ILboQz~I5mQ10uFZ(b?GMx6oGa%O#Z^#|Yha&b`7-1k>DESo@n!DUv22rt< zqa?XwgiFYqJ`m|j>QupOB-u4r5C-k@;IyhN#r-R$eRp_=-aUi?J{ModZ6s zj|9p2R}uwddh_BA0fajQqprI<2jT z%hgoF=UNbJez@vZj-D8Kl(94A=pcY}c!d>pVH8mr z(OyVKBBx$BbD594sUWjSK`4_~up!j5i~=ciiTFuxx00eD&ooowoa5cmz3k?Z({IrZ zl8uMy08vRWQK|rSvh374=)+iZdTf(~6sI(Ugz%t~62D+4ND9OP-c-uenm6dP;sUEP z)A)!|GvIQSjc_ovRgBwc*>{c8*Rsl5@}KA7&12jpaji{Mr!@;@Nuv2Zca1dKHY(h` zg&Rd&X7!CQYrUxfLDW?x#VKw1O}%yQdnVeNj109QbJUhy&!Vt&_MdmuHPtIa=cHW# z`k6&kX#St4T_Atfm%2~RsBM~2lW*vuR|)VUYMk|X=*hHrP_9NU@4{*71C!izdO^)Q z&L)mO-fWeKG0$&UtJpJ`rw^+>ZuGqdG=I^n<4x+#q_yD|4Rhk=)ps3Zbi&x+vdUD= z3nh=$*8OU)J7$)ZRJR`z))~)Qh-NR87bd0xBq)3cfP-wg9#>{=xj{bu-f+YeZdRaO z)B?&&@`j?#?lOQnBbEz-Afqm8&IbM5CuJX>)ZSevX&ID@=h|fE65D{)xmkl2>$N^VAW+0Rtabs%8eX$^y9Hp8HuS>|s zc{CQEKbk3II?MMTAs5EQ`WR{Ov92XZAn>GDqcb;GhI1U@^n*3bV|%rJuH)N3|mN{UMw{4M^TT? zSt?TiAzi*GRX-hDY8hLsve7Do?roFC$YZI#L8c}2VOfNOSSSzStm{acuW zqgUpK!v>p{OcHZz?7#t8VY>Cv!TRRdC3rVSDwLahA7?AFNT*mTv^zG6ZZRBDJ794K zfYmm>30>ogzNTB9RNm->#SuU?KsPt{E2!3{8sYB>8)TQ*4F}bY(lIPDW|o9 zvm2o796rsuNQG?6V!L?X(CeL?8YqCJ$ID4MQ_fR;*?@CMR^+uA88d^#)!=4s*0lQM zpaxo6y5GlDzvrbD!E+3#P2e4H$}E*m;8fAtNr6iJC0lA1o0?|J%&&BhijIpOzt5?* zYxux&cJk5%|7d5U4Mr5Q>&Vc-n%8r#4+N#4Cec~o7%(ohlCwFuN7nK9W3O&|H6XNj zUKIRFoy=latnc*cH4!sitEy@$SdYAH9$H`V)PBYu@VueYc-@GQeb(rAyYzO)ZDnU} zX&VgGa$iqt`OqG!p_9FF4v*OE<#Wk7jJ%7r{O?6Xq{i)Maezw7w5c=4NqP&DR>-^h!GBvPT2*P|2z^sPMa61a?~+zKiBr=F6@o^ zyXidj96jevqmpmGkV4Cn2eW-@7vVZLfEh$fAZ5}GC(pW(NtXZDfDKY# zIi@ZFJCG0xq33?CKJ^^hwBz#7g9$6k#n3DJZT;D+zh>q0)@GXB-P+k6wkX6MS{iK* zU)FxhvwHt(yroZl`*j6!)bshg^%}ROdz~=zWm?J$_$7JuF@OEFoz>@(5N|EGP2$gW}U;$oFmWN1`?RJ1l}-d-LUDN@e+Z3MS(#~8;lU( z3+tl8VS_8=#HbT}v%=B$NrVgngVNTe2jmc1?tJVD!q{bjkL5sl5kbr5K!at&U+I2d z(zTl)iayN2veB)ABF3uFg+9yr2DTfxnFCR`6UMd+c1DEyrHhWC2M0lnHb*o@tQSA9 zhC)t+XqSr^m4iB^jft?^(ufyfi-J{$U^qzJ7Ltn|M~s}di=L;4aYjsVr&ryY>)*SJ zL%xfLp^rtdhyApRN}mUFq(^#1jL?*ej4&1l+{Gpm#lx@iA(7Naiz0?l*rnLgqtw?U zQqfP_-TuC!hv=4vX|zGko{X0D>wHnOIZ>Y+CyU5vd0cPrhZix)ST5bro>t=?;TH)l zgaQ8CBK?^PgJ>G1Sst_99;0kNt)D)uX#Vai7Cp(n1e<{=uR&Ss4*Qlqds-eV_a5xj z-iqn|LFztQUOs)^-iB)`PZuc@A1KY69!FFj)6+gpQ9ezbUbb((K`5z3EGeHx{;A_0 z(;F#&mH|C|0XND4mDTP}DM`zP!4Ez|fg}Syus={L1;i?(667Rg`i4uU2aq-eI9UaZ zV5HJftKtZT5@Q82d4_^>26Q=F!b$iXK*<6Qzk*cWbAB&f(Firh4*$TW-GtfZr)- ziro6C$oh-i2BO#ofx;G}*p`68j=b28p2D8J*q)EVLA2OGmcmh`*ioCp$*9=Lio)5c z*x8H1C8*dXio!Li*fop7t*F?Iw~E5Oso1@X!egk|V~WCasn~Oi!t1Em>x#nrso49A z!Uv+n2Z7QTqr{hh(vQ5vkDk(>y~Ll7GN4Ng{Qp8!DuO72xPb!xK~&!SzY&#wQTG2q zR7y=${tHpLBS!WwL}i_r=0Awahn0+fAu1I&{~{_GYiRyKR3dTxMN|%+H+#tH44uDp zY&mWJMO2b_`u;^!BKima?}$ol*pl+{vWn`0s+#)jx`yVork3`^wvO(YuActzzJcL@ zp^^y@TVE)3d*b%B$;}+q?UR$EW9)*SGhN z&o3azHyAwenw(yLC{$|Ak(%88U?ft>4Ds5$!Eh`VvyGA3{NZRKpimf|L|wsXJf&ip z=4f5vcrv5GScXJ>(PTQO{n^H7Jq4sapFa$~BrWo6zIZ&f)>uR7eDUvm$xO+{vc+<> zdb7IBBu+L9KdIeOt~@LA0Df1(fD^t`b`d}YnAzNN(LQPFQ5^s2PNY! zV-TXVVn&2*&i7D!sU)0K3jdn;N36+-*81b=9HDRmnYM=0`4Yu)?a4Ma?vWZj=MeZ+ z=*#s`+w-bV5K913yQ9<%FOLiLT91N7?}S19cU#yD(%7gHZfFogQl{q|4>3*E_56=1 z)C^|>xPAVELca7rE{LbKa4B-$U;dydXXo41$9Djj_wV95K%_5plO1267Ll$e4Xp{G z4=U71ue;LVu?9SbHm6V!&QOnDFoOq_J}gO8%db%KG#~x29~C2cQ1sLR+ssVltfb6r zT~OIkhc}d2(Z3I%45@|IR1Q#n5vU8sNwS{~M9O0HY9}a-3F;+sYlarWYgkDLC2P0! z6vP{_s~5!?6Qml&nj@@|$5_8%QAFFHsU3$q2bCUYc|4sSXZt`q$}hRog`q>{9!MQ8Rs+1So7khuSJGc$ey_`?Y%Vjd^1C-=A;N z)>lXu{=H!}V^Mv)j6CQAJmS*oJs^MdZI#fjYnYVq&u?xOiMJW+6v@_Y>=db%YnT=3 z=5Ov4n5G%)+c}rh@Bc!&F7BrVAn6`vgfT52X2mHg8$ut>cqAs_0k9zpQq$m%CaU2{ zjwXNnmmZCE+%cSt4eV8%jEv=ynhedacLWOYSv^bZiaO|^WRw*3pCRgc!=5P{|L&QQ z7CzX7vMXzm1h)zq@r;GB+y>#=?m+%O&3$D+m20#1T9h;hibx}!0xAM35=tr|NC-%G zBhn(d=&nU~cQ+y+T?XCVA&64S_kf~+u($ht_c`DB%RgOn&ogt?fX#)_?}_m4Wh_1H zEEe(>t^t_=j>_%1kZ`BaG0|(7)eAWdjOB}<-Z*x~j4u=@viV{CU>o2MnbTvHgm97i?;@zMGq~# zO7VZ8xFi=%yhhxn_~2`O`W_c(bKUhDUj5w>^<*$8unB}BQQc>meKQ+Hi62MHb-hm% zra^*a6A$;6GzpUfo?7$<5u#nMpfA}4dM9{~o8W$DCL99PYEKRG8m|PV%LL@4Xo`p> zdl!9d;5G>{c>PGQxP&Q`wWac}1ku?vE!z{Lg0e>&kZIlBU_b&2qC7LMt&d45SQ2Sb z6?`QMS;9VgYCVX@>uIcKE&J$Yaiz9E;OY$%VV~Cc9&*7Zp(iXt^7kZ)UMO#|bwN z^7~SqGMe@+A&fND5rPs(ZDCjl1tm?-?BSvxTMbKsC8;}6*vM$%NqJ_R{Dslbp!1*X z9a79BRfdp7>7+TIzFJ12W5wvpGjET}j5k|~C^DF+_VR#_b}u!}>}_i)&K`MX2a7`V zpd@Fk))kxXX=_RDM1wDxaMXj+yr~xGHQnLUI&I-XPmXF!)Wh;3eKu>uXtw6pV8fy6 z*PBreH%mTFGzQQqwpWy{&veEMM~hUJZ7lTW>yBi3aX(%jt@R)lt=g>}A9$-P9UXbc z>`Tv>T!>;M=kuNSABB5}BVVn9$qV2E_F!S_E)c?Qf?`G;P+{JH9FgY(kDkgQX zg^DMOEnrqV7krRqM)rJ~Ynn5pA$K27!puR1ktl5e3F2mMwKZVky>X zbeyuyu~4lnOK1eU%q&I3wKTVT&RjPvHKGFFy77VxU_diL+6ZNu5PTxM zOvmL}`@oW(u@OTLJHgw&9Ei4?gn92MyZ1ZL5%ZS}M#?8@!q00Mkzj7-c z0dL(1L10s~Nid_qdB;pw) zH&#h<$GNK9Dx*!-AV{=#mk*g{?R=BJmq?s^f(Zo#%UDTAYc6jZC6twlxwlD)NA&t# z6!49l-GN;naPw;Ay6*BsOFm#nVgqd~%&gBw5bZttx&sfw-m{r+IyZ_6?wwJz zJvWYNr;ozY8-sTDKJ}Or?&gNw1GsI?7?wOgo*GwAeYV&7INw~x;K>C>xhwVuFBzHu+q zQ(`dfJ*@}}e|scer>~ZMaiR3|n?#mmd3}_&$XUfn5j2}U(UD}Mmy@hw&uhg;6QxKe zTRRoS5IH4Ka8Mau)S011M!7CMXjbx2C^fNwnKm_vM6wzG`H(#xZE{qlTSO|cYZ~6O zkGcJ{X_a54Vls$I+-Hq*$NRx)^$d2zAUr-7HJ?U4R**k26TaG>Zy~jths6WVo7C`3 zq`@sAg<>s}g}t90p|F!U>EXpUIE@}D^NhPOhEUP7f{N*+(yt({z4M5z9DU@Q9sfCQ z)iACLZ$|fAmy{V(jTECibp`(Xg0B0Rd$04K}%0;W}jpJC&J zq_qA6M;0`3kP^rS zEOWed97NuDx2GO1Xbg#F2az{i=NS(oZ`2G^&WgP01p|>cH@lWgYz!RVuWar%W&x2m zST=T!P6iInu5KzW?q1&7K7Rg>Jp+P6xPzeK5jVmjV`Ax|;}VmI6Oz-?FQ#T>Cj$#w z46va6MdZz&wvK;qLBoD5DqdtuiA-C7`8Lkc`^wjNQ|;&^k##OFD^1!icB$<8rnEw| zo-ExehdX3udZBq54KakUF?0b1c19V_!Z(*3%AEVh2@}j$qN{9oK$t>4Gn}b`F+FOJ3Bif=~+o3P1f69bUS>Z(9?pB=##)kN;m?yjo*Vqj1 znpBq;8xEI(5Q#<-U$aqYeQ_7Oy4jz;k1sl7M>ZZ+KC`9>x5 zbI7=3PK#3^qp%=TDpJUG5Mrzg39BD50UDf49M-yiud>~Ira+wyFj;^sh?_SZtefs| z5rNX)q{Q1#=|h2UPy*GYFGqp&gx6ilCN<2d$Pg}TF3!=xKvE*XaoDG~h(Z9lV>Y}6HrHR9qjIL^=$(lnD488~$kF=J5#Yg6 zrbg|}iI9>>Uw%|PM8&K zW@&#JT~=CMT1RH;622iys?ET0bHbOO zu~Y6MJh)6zGA2%XmE1eINX2u>Gd|hxtNo!!=St&MeftqQpK0$ot5fyS9e$I zE)n0FbG>4?yEaU{qPa}Uf26ZK1sMSg3F+^hC6z(rFifk!srzrkwCFqr%>SJ*Eq3M1 zKM2$M_c}`$evBVxgSX=zfgRF1azZ4S;wqbrAa{b`O;i;XT&`y|4Iz36aJ>NZ(}9m> zHm*03uVsgT1zOdc@edG>Mk2zTZTj$DB8vEh)RO6j)}zeDFoSu#=d``gRck8S5vX89Itnq7LPt17hJ3=MQyLbTSDO1i3U zGkyAX1c5{_lPvY@LvQXooE0)51ZTW$Brpu4aO z6;!>ykRbaXSxDOVJIkoFE0QQt@8;U<`*g*Qs>+=&s}n8JqOYpH?rg3vjC8zuwYLXC zpdM|sgTn!!A4JL&U?E|h9d*Ry1LlznQourjtC2DWAuyXAa~W1jdTks}dM*y0IWcA2 zz4oElpc_*?^@Qj3ZmkI~w&|1!@7teeCw#aNXeNE{;b>3#2~eg^`afWun+y=+qnQen zl+vCGlF>+=3YIsUn+j2a&`d+sf)6@N>U5Z1(cE;nQ9aE}glV_-Or*v1nb6PtY`m|D zc>ttFym~+xis!Yyr=Ll2>oQTM-;?5k z+AbX6n*KKraLo&EloHaqQh}s6giD@w`$=(?KvEnU9&}^{!CEBS9BfeXG$IGUHSb$k zTfx}_NpVb;PU;|cASn*t(@PZ#l`SAV!Zlb8f&>nWOia>?R`J0=i%-tZQAjnxKv7A^ zEiDsB#a1mTe_eAcnk?g0ZBz5L-~y0Zb<4Z=M8Q>^ANu<7z1T8)2gb%RoZ2|!VVGJ%MM#dw8kY8BoKiZGYsR7ORR3+ z__3467Hbb7cuoLI9LfS&d`s7~=0k?`?NdR7tP3iGoR`+TJQ*a|N%WSZ)p=ghB;Hto zWH=_KvCEwaV$n>MpRcDqrb=~vI^+&GM6;CaOIq+qGGvL>TA~!fYeBL_MvvKIs_lXY zvW?f1Ft6Q69|ok-Uo((Pav%i`XmnL}G7Bn|C|B?UMn}oV8(vaKFm?A{oGy`pQ%dvA zHLX8~fA^}CQrQM=SB~n{Q2KIKg#Myu9-VF0=7z&1FI&(V30OalNBfYy%&;jPpKeFt z^@$2CGhRqbR&_~#v0vQgY*75FimmlCiaVNP>)U>DkN!z`5uLeR6AAC3Z1y=HQ%fKovDVJcmYC!=mW@3a799jJ-;YP6v$R*hKy$Fc zlDW_43B)6YdRwDm!3G3A=7&ZA@raM2tZXsj6M_}ffp|ogOke+8tDvM3ARdt{D&~Hr zH3lfS4v0s*7=_)`-1@e+uf`i%(bdw{KRyv=*^t>ZI=QguYKaBc71*=1@!7&CXRUke z%eTF|OtCwB7yy{hF}^h6k`v2|V~4|HBanLq(GaUkcChiI!@Wm@d%O^Wl5EMle$;3z zBsAHQ7wKqJVbr$JS_DJc`rbY$Qmbi;;JR3Pxw#(B5e)GMzGs$GT zwn9TX9<(^=RphOXO@(?)*)3_$@zc991|Dc-MxnrEEe({rj#CP+a*@ha*xi`(3Q~PE z1RynNQP-tA$Lf3+=yB?Lt}1Alk?9(+g!)9gLYNJS2$S-oRB^8cP_*^C&4F~R?if70 z=+;@tEb&KD$g21}zmQ#xK)0Avhoifg3mE$r z^IBOK7WMKw`RJAkK1k^<74~YRp9SVGESIm=)2&o|>egMU+?-BdsoMR#u<{CYj()Wo z?vmc>YecGy)f&{Bi>tMm{PZ8|E=cQre1of*@v)x3P(!hSgbXny@947j6eI>R0CWHL z025dR9yBv!$Q|aB65Zk&-K$pWOr-msPulv)No)+%nX%8N1=o96z4Uowwm(w6nYoF_ z2jr8o$yeeOO#%6&(eXX@<~IBJq&T)OIqe}pKB=awn}-jOPb%Q|G9U!VCnXOB$AZJ7 zfqYWzP&kICiK#icfqrOMXjv+GW#wLe)QZ^^HMIt=8A!UX>snf6Y$Y*@t4rIuy04*s zAT%vhe%{n0npq^?LGE zy@^nmq^SFgjcuD%b-Q^KN-RP~7mKR-2P*8mg#1@03`c7nB&WkPadTB~6K{dFcT4hm z)SReB3R`7Y@LYJP&50t_11Cw$k^P@4s7pSAVSj_G_E1ic`VyUH&#*qZM6qScB`)2j z@=Z^0BgKQa0s&imQ;h-m(NXI5!t=et`KG>=<*1Lgi>!%#1aEJxzi5sBtC8x*1Dw!< zDAB)rqx{a{V5AB%;wQDlc{-~A!P96^cKPrEG0ymkccYveWj92{JtMR6iZ)|audFA_ z6FyZhpCMN=6^`W-Bb6Jsj}XoqwSRx4`t<;D`0pi|=rzw>MzDNB=5^gTu|L_sMn)X= z;H$$O+dS=m;5X9jH07&ISJ$jq5>2Addod;ZuK0=8h+YBcO+|gv~J@3&#YlF)Ld*J zYgiNlOpq)&N3w>e!TqajI}F(aZ$6dVuC%W2*>T$f%=k@5h?_f|tB1D_sh4j+AeMg+ z)FUJ`!YMp5#yUDS!6ZI0MK?M1)U08W^w%e{hX1|w=m#^7xktzbVnUq^x=PssggV~m zvD;_HQGKzHo5Q{{H%U-(t4zgu+D`efg(iwvT1irUq$9|Bth^ z<ZnwLM_H{)KGq|GwS@Nd86%q5@IDi6aZ>Z26%C`B&aKuZoBE*yF=cg6I#7cA%k@sIWA}CEvlp(xllRx2 z?|p)&9%VWMax*5SDnZ_J1#;KPI_3@D$omK0%}uo;)3RpZT5SKGHM^WQvWAtn@K1 zk0uP{gU^eNKs*r`v&EvA=fz)-=N>YwkXzEt|OSz zueE#lp>(J_^%-loP2(M-A)k{Qh^@J@-r5_SBkfrelnkN)gO68VOuf_p_45G#RrQ@B zW35C7Q6Kq2OZc@fg$VP zI_U8I7vp`MwRFv%74c82`^iF%Rb%7wn~L>+3nfwU-i#{iZp~ z2DDbt(BWWRVJv~q*&SONHf zG{Be6E`Yze=rJ$U{m(9X*uZ)oUi7d|g!Yc?bpoMJn!#~=jx?Cp zNTywr0R5@Hd%br1cm3(H55~_aTLHf@NLZP1@IV>yqX4XtNPbgAwHk9hauDz{Yu5A3 z!$^Zb1TEQZDC)rRJg5<-}ENS zjyl%E2ml0G+yao;!u4|7j&svHz@Zw3myW=p8a!t=PcKIgZ$JO%z5r{l zzR%jr?z8p+`>g%#eb$}{VC{3R&}8Kn7UAX>mz5KiR=ldlt^$_F+vxj;YSiiv4%NK> z@I<<#>!;WcqiuZ3d~$luXm)-{b8-2j((2lV+^5f5;+xxFg?7Ke;DD)fVlW&Ku&23F z{!>{s(AUf`^LRUGy?=bobKO9-R&9SOKJP( zJ5kK+M-pGg)~g_1!WpY^$HbmUhhk6ELy35c$Sv~{nu7_I+gr7+Y2J&vi;v9k1at14 zok;w2yj5XTch(Y6)|#xq9CU4ar{NB%|d`% zTQ-t8om=a_sRnRsTVp}jOj1v9YZ?$-Nau8zQJ0HTgwZM7+8r#bx^Okp=Gx~F+Jsp< zA7or@y8sxOxtAf^A=)p)*Lvn`qvtQ_*v4nc>cpow%uM*FCjn+q(|1q@*yO5xB=!gp zbb!Q$FJRhJ?1bdb)1>R&@yg7bSIfu~(bW(5&<@S?9H{SQ@Eoba&GMKil410i$$~QG zFBYAG#JbO`9g)zffiwVagX8xXHTP>h?HByNclznn4}}xz?7|`m>(VMd=;L1*6_U-- z$sXCy+N+%NAYk(DEU}+}_qn{sC3L1yf!VFKDSsvx%vsFVd-*?rW1>iD4<&T}U{YAY zU7PTL;)k-Hf3(dZBzp>RM5CJ4@^59t+ZH&N_I45ni!fFl1 zn%QcPus1Rjo-FU6p zHbzFdu;^aod-NPz0^+R|7*yHz^ryLFevGH{ZruEFXSiby+BiNT8XX1285rOnjHk($ zf!L|$_7m=y??uP?snm3-?>7wariKsyWJbl7>~v)8tzVk$0}PPV|JHd?m)n~sS!7PR z_0Q}0fmw$|r}LxeI85abb}x4;IXpPeH0a>Wuu9_eOCoXD#^VrC695*OCe4gg8D|>{ zkVr^TzH{TP6bSVW_(&b<;|E3x_4PSF2lewJZG!rHFsDKT+_>GKfiB`Sd`HSp1EdDh z1mFIx{Cs#%%7!Zzcey-L`S-V@$=2(V`{u0cJp_-F_os+R`Eme)t{?}@S*A1Tz_~kF zR^Z&-%H-z?+w2+ug0{b8>);HrbOOv-+HSybEbr|X7$g!9{M)%ZIoPy6J9l@Y=NZ6G zPE7`7jE6!a7x9)QJ66Ni9VIr(H-ok>?5ekaBY~$k7L7``hgBv|C=@$i;{d|Q)9Q6l zq4#hm5_-Mqu1ex1zIVF_YwH~O1^-mBW#+AWQ#2v2lstL}@6lU?5%`-2p%PsWDQ*bD zC$3*>5)KpaT3xoHcuVA&L zOXH4IReyu|Oku&4T?2VeS_LMN@2MLha`fG`&pX#b$n*>s)L}o37ELOL#Nt{o%k0J8 z=jFeB-KQ%nyIu;xnl-+^h;W({Vr|Yh^2Q4G9Jvi!^mzRSiKszA0h?~uLc!(#;RFo zPn9}>crTXm%{XuRHG!iF9dZqq1S}!OQxrPyK1`u~d!fw>RmoEl3DxrVjr7reQpy#6 z!x!lcg-&pv+Mzk?=Wx6XM-xt?;vSboXsM2r928e0dnrB(o8(4!Vj68q>}QkNxNKTH z-MIWKPjq98vBDN&%8~nZV_w1FEk@UF%j!iptc5N{wZt{hLfkrv`WxNf);!jC?QwuE zxeQqKGPsNw;ATN4G-MbdGf$ye&I>{dS>?&w+shT7hA(GhZcGo%Jl{Tr&%GQrVf5I) zXopxkJqdX>9P1i^Vm+1#L2Lu2!){C?y8mEI6KY&VOfzy`L`(}}jZI7|!aMnxHjH~m z_Es^_BhU-5>WQa`$f9z@%`?U`66N*XHz`7OpfCEbE>Wt3?Cuf!dz+(@6F`H)BQQ{+ z10RG${-aBjy0HZB--0130-z4wTa~>BA zXRC2tRJ}d9_lC#Lr`k^<_+X2Drfa}*Y+{dpq@;6c8Ncz*(DIRrR-GDq>1_GLv|VOa z`k*}S&ak73{^hrsW=LagbXr#xxor2gk?5fqV>MRjWJIMU#xYQ>3%8e+>A>kJTB%d(C)C`H-3kKbby#gFwyl&gT~RO{CT9YJYpDXqKu>b0BCwz9H7O zQukEx9NWD;Qmu9fA z#Nqlzj`nbncFxv%4wlrSv%@F$j^FG1O8uL7j?1|Cy$1_Hy`2xE%sH6g2GbdYpmT8~ zNFma8_w7UBoT(Bym8P-D0?!c7X));6h-qQDpwDB3GBKq&n0r%R&_)SJi;+oeYl5UY zh9mcC+eOo+-Sdq*)ECJmWbNyV+-rp6a)U9`NQ%2TAVGK6`s1>xVCdp9H{5*oi)n6Y>*(|efBSbnyP)@}pNTg= z{h?r<4MA*=tNs~RUP8l}j^^((TVias;M-V2?<=P{nh$0+VrplwiC!0G+-JR8tRAcP=>b94*2YT=WQ|M)Of^t`%aU!X4_pTp>noY zClNSJ)=GKJFk@%k||4vd62eMZ8b3@wFVZrL!a{k>@T8i#C8d|CjQq!86R>2yY zx+dKk8ir4BX4IZZoshLQD@Hotl)=YBGVgvIw! zQ3i(ZrjH+Yj!uKH206(ju$kKjHnr+s#8R6T0zAwU$3v2q` z^+=M?1X&TfY_eAy=0+WB_r>o=r8Orz0P4hUaJA6OWY)|#Ue+j>yv;=gepU{q;M zGM*>|*x+<~RCayxCM`-)qBV+^C?SI}`6_vAT_9XSLT&td(le^uC{AZE8nPa>crbtd z<%eauH1Fj_qKDmSgD!TZC1j~wOngq4l=YOx9t}mCzAry41A4zjjRCP(FQED%zI6K_ zy7|HZyQ9db^A~&^SxZa!WhBRTl}IB&q+j6@$1$4)jry(C{^1h)b<8U^#UHP~@i|$> z`mclSFHjlV?Ls`@A}(219~wtFUA zm2-+6J!*GT;Is=p?~y~Uc*gtr-Ndnk3uLHExELf3I1Dgk#(SoMk2wr96c-{T_`{8A zQk^jo-jrfQ)`z;l2a&UAH(70eC?>xMdx3*m_Rb4g9t$}NymRp~?8xU59t& zr{cR4#nYfh+Rk<*Uv+9$PMEUao=r&&F4Kw6EK^F0PC-wePsr$>r_IWlr(H-dv@%&p zEJZG-%dN!Qq04?fo})dFpO1iqklJ#Ej)E;$3P~@qFDqv$OwlHos$}*>_=Au;pHoRo ze@8(LRo*V|4AOj!GS>3qi33+_e@zl}t>OH_-DEoryj2D|nM;uMN+!4z`X~W+>NA z`UyGQq3w}3#PlrN<4sk?Ytmm%TArOQG0MiS9VJ10K^&kvV5t+&pW0hZTSPc5YtiIT z4g1}L@vot0{sxQy2?7nh5EK?E5)l~&2^-J8aY zh7!~^)TUZm?2i1Fnh%}#QBb=Tdi!JthU7;^rN_0WrXSC0%`ZqSX|Ak_uW5YR5dEUQ zwf%6nadRhGhlE=K0mEG=r4w*HhY|7AksHS)y5mqNw>IWZxEeF>McIF1gM{S=P>a^| zZpNrwqo>bKcp#Xk;Rhufm~?W@?`VhI+1f2ARo23bzjq>AhCM-QMXBwHCS4EvQ?Ejj z!W;B17Ze+EN|cKp%VDYV*S{fc<4c6*uZmbA@u;_;UQ=DmjFVRC|AWMXwz9JoMUbFL zA&Y^Vs}GQHQT8qm+FM?zXdbI4+_`zxZI(D^L5wrf3UdjCE#lF1qJB3RSzfwhby-Wmr948-6c|~Q_t7^c<@wc$^ zz2vD`x0$)y3#XCdtk0yKVyYd*Q9nN_aTtSlLHs?G=`k;*DVINf9Rx=pO+NKe!f&BW zC&s@sSC~WGPgA7d{RoVc0P+Owflerfl&BexEQ`ghdLt45jI+m5P11RQuqOOhFpl@3 z`~YZCVc~#aKRV{bvY3UQbuC7x+RFxFIZB@e@-Bo?`)p-r~KepFvIad`;1VQ%fenq#I?S_ zGDLsU0pAS*J|l-HxDC6B{xRlHzrbY{QJ5uKOvB`|0(*MzqCwh2h4N7*4?4;hEwcq2 z(`?xzt0l>R5PRhUhi!-G0>Gs|ehHx9Jo_j(+dc}eYTy_66iX6VhVa$GqoT1RW8y>O z5|R&J1G|1+eu1}He$Jhe(oEdb{iRb6(aX}dX)#j6qyT5 zk#vv?=S&iE{3-2YAI#}e9KMEW;g@3a{r3{{eHa+-Jcsit%>TRaj9(fdecALS(F?pi zW^QyhQHIJKSBc8fzaWiN@qdG1ykc=IIEVK>aQMqkJtD*y`5o%>5cm#lHi>BvhY!6I z55G@pazEZew~=D)Q+W$BkN%>}$*6LCEyMCxxufV+UKW94_1q+)oGzsoEX#x62Xe|> zM_s_pxg~x7h3uDUj4DGQIOhbH9&I?V6kpsd+L8mkx7*#1`g{g%Pb=}`WU#GK;e9*@ zDuTvQR&)*?Ui);lX)iNsC2AboPd8>2EeXsJV_hHmZq~Svgw4XZPv){kc?`Usjqs#B z;ZtSJ2YGSt`&2PW`+WUzF|{KC>bNgQ1iljQ3lAz+4h;|9VD3u@QF1>|%Ag!vnsCZ8 zlz_lUBeDEJ>(`Tp!Pa_9HY2+CVWEE43)SxrQ#gE4>WKeL>TRm| znj{r?Q65Xd11lCNcRE%YzS!D3sM-PQ6j^6i4^L5dKxG7kx0)qusl7UAz9<}}H{Jx0tSu7U)5>6l~L`sj%*M-ea z#?ckz$EM=K7AoNAj=jyKD3??Th4YYX>K*^h`MnLtbB6P~6jqrPrzi3FUUs(gn>&w< zBn1{5aeGEwk?0`w@8^pO4$v|RkxHYX30*s>|Gfp?`)zKTocN^?`H$zO6~KPi0c558 z(cF{>*zbV3NsJ0mUFGKGU(EVn&Pqx8`87Wy%<{0VKfpQybiG;5l#@1YvT)GRFw4KJ z>+dm3fAlp!CCsuAIYmNQ_^1$A3}k&O)!lLw@jU*K_xW#8`@bE;P9UCgsHm_0e&jtl zi2c(X(r3T|V9G)*;W!wec_lc5G9F9VTw2xDzVr9ts#=(UdzpEb(W^?lvyK;+_?yha) zm4E=-(*qOPd+nN`T}r1#(}tmr^2qO4Sq_!`AaZ^;;MuC=FSj(rl9}6vD;Ok?)k6U#(yi+Kf;CT?ud zEm*vG9D^b1lDaZjYt?M zQp!t#EvF$<6LeciTR23>m&P&Z5+pSd$_l*<8}>An{Su0H4tp#=fmxz=q}SXWYNX9D z&GBg3pI@mXb6?s0n21aeC?zU5tr=!S`AvK()6^W5L6$=xerm=^GcBN@tcBw`;${cn h0|>7!;AU^ZPwPJ7W)E*E7%$>AD4kAXmxlx0`hU9K0L1_R literal 0 HcmV?d00001 diff --git a/ros/src/vendor/grid_map/grid_map_core/doc/iterators/line_iterator_preview.gif b/ros/src/vendor/grid_map/grid_map_core/doc/iterators/line_iterator_preview.gif new file mode 100644 index 0000000000000000000000000000000000000000..18e70a8208eb07fed60ccd05276bc5c54bab9483 GIT binary patch literal 10436 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 P&`mhAFty^305bmvhx{M; literal 0 HcmV?d00001 diff --git a/ros/src/vendor/grid_map/grid_map_core/doc/iterators/polygon_iterator.gif b/ros/src/vendor/grid_map/grid_map_core/doc/iterators/polygon_iterator.gif new file mode 100644 index 0000000000000000000000000000000000000000..96f20c409af93633dfec32e900abdf0b4d9b9a12 GIT binary patch literal 88369 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 literal 0 HcmV?d00001 diff --git a/ros/src/vendor/grid_map/grid_map_core/doc/iterators/polygon_iterator_preview.gif b/ros/src/vendor/grid_map/grid_map_core/doc/iterators/polygon_iterator_preview.gif new file mode 100644 index 0000000000000000000000000000000000000000..33e8d3764caa777838d1409f607a276bcd83d50b GIT binary patch literal 20229 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 NIw%^cfjyj){~xafC-eXS literal 0 HcmV?d00001 diff --git a/ros/src/vendor/grid_map/grid_map_core/doc/iterators/spiral_iterator.gif b/ros/src/vendor/grid_map/grid_map_core/doc/iterators/spiral_iterator.gif new file mode 100644 index 0000000000000000000000000000000000000000..ff287dc499ab22d531fae9af1d0c5133b5e4115f GIT binary patch literal 44166 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 literal 0 HcmV?d00001 diff --git a/ros/src/vendor/grid_map/grid_map_core/doc/iterators/submap_iterator_preview.gif b/ros/src/vendor/grid_map/grid_map_core/doc/iterators/submap_iterator_preview.gif new file mode 100644 index 0000000000000000000000000000000000000000..49784d3d6fa451da1d54087ef922c47f4d0e1ddc GIT binary patch literal 10235 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 GuKXW8Xdw^) literal 0 HcmV?d00001 diff --git a/ros/src/vendor/grid_map/grid_map_core/doc/move_method.gif b/ros/src/vendor/grid_map/grid_map_core/doc/move_method.gif new file mode 100644 index 0000000000000000000000000000000000000000..4be9d7f6a78edc986ac13f042c27f62aa7921684 GIT binary patch literal 57693 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 MU;PxsL3gtM1DTxNLI3~& literal 0 HcmV?d00001 diff --git a/ros/src/vendor/grid_map/grid_map_core/doc/setposition_method.gif b/ros/src/vendor/grid_map/grid_map_core/doc/setposition_method.gif new file mode 100644 index 0000000000000000000000000000000000000000..21b87ba906b840a694e7c5830b05e07d88da4159 GIT binary patch literal 256424 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�s1xUsi5!G^5TESsQ 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

    8O&!kw;h?NJ(FLXIc9wH+ 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 z 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 z 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 XzyutC23*AmTsR7xkPVE#5dZ)?wN9`S literal 0 HcmV?d00001 diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/BufferRegion.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/BufferRegion.hpp new file mode 100644 index 00000000000..9a2dce8f5a9 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/BufferRegion.hpp @@ -0,0 +1,63 @@ +/* + * BufferRegion.hpp + * + * Created on: Aug 19, 2015 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#pragma once + +#include "grid_map_core/TypeDefs.hpp" + +namespace grid_map { + +/*! + * This class holds information about a rectangular region + * of cells of the circular buffer. + */ +class BufferRegion +{ + public: + + /*! + * The definition of the buffer region positions. + */ + enum class Quadrant + { + Undefined, + TopLeft, + TopRight, + BottomLeft, + BottomRight + }; + + constexpr static unsigned int nQuadrants = 4; + + BufferRegion(); + BufferRegion(const Index& startIndex, const Size& size, const BufferRegion::Quadrant& quadrant); + virtual ~BufferRegion(); + + const Index& getStartIndex() const; + void setStartIndex(const Index& startIndex); + const Size& getSize() const; + void setSize(const Size& size); + BufferRegion::Quadrant getQuadrant() const; + void setQuadrant(BufferRegion::Quadrant type); + + private: + + //! Start index (typically top-left) of the buffer region. + Index staretIndex_; + + //! Size of the buffer region. + Size size_; + + //! Quadrant type of the buffer region. + Quadrant quadrant_; + + public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW +}; + +} /* namespace grid_map */ diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/GridMap.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/GridMap.hpp new file mode 100644 index 00000000000..85010951576 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/GridMap.hpp @@ -0,0 +1,528 @@ +/* + * GridMap.hpp + * + * Created on: Jul 14, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#pragma once + +#include "grid_map_core/TypeDefs.hpp" +#include "grid_map_core/SubmapGeometry.hpp" +#include "grid_map_core/BufferRegion.hpp" + +// STL +#include +#include + +// Eigen +#include + +namespace grid_map { + +class SubmapGeometry; + +/*! + * Grid map managing multiple overlaying maps holding float values. + * Data structure implemented as two-dimensional circular buffer so map + * can be moved efficiently. + * + * Data is defined with string keys. Examples are: + * - "elevation" + * - "variance" + * - "color" + * - "quality" + * - "surface_normal_x", "surface_normal_y", "surface_normal_z" + * etc. + */ +class GridMap +{ + public: + // Type traits for use with template methods/classes using GridMap as a template parameter. + typedef grid_map::DataType DataType; + typedef grid_map::Matrix Matrix; + + /*! + * Constructor. + * @param layers a vector of strings containing the definition/description of the data layer. + */ + GridMap(const std::vector& layers); + + /*! + * Emtpy constructor. + */ + GridMap(); + + /*! + * Default copy assign and copy constructors. + */ + GridMap(const GridMap&) = default; + GridMap& operator=(const GridMap&) = default; + GridMap(GridMap&&) = default; + GridMap& operator=(GridMap&&) = default; + + /*! + * Destructor. + */ + virtual ~GridMap(); + + /*! + * Set the geometry of the grid map. Clears all the data. + * @param length the side lengths in x, and y-direction of the grid map [m]. + * @param resolution the cell size in [m/cell]. + * @param position the 2d position of the grid map in the grid map frame [m]. + */ + void setGeometry(const Length& length, const double resolution, + const Position& position = Position::Zero()); + + /*! + * Set the geometry of the grid map from submap geometry information. + * @param geometry the submap geometry information. + */ + void setGeometry(const SubmapGeometry& geometry); + + /*! + * Add a new empty data layer. + * @param layer the name of the layer. + * @value value the value to initialize the cells with. + */ + void add(const std::string& layer, const double value = NAN); + + /*! + * Add a new data layer (if the layer already exists, overwrite its data, otherwise add layer and data). + * @param layer the name of the layer. + * @param data the data to be added. + */ + void add(const std::string& layer, const Matrix& data); + + /*! + * Checks if data layer exists. + * @param layer the name of the layer. + * @return true if layer exists, false otherwise. + */ + bool exists(const std::string& layer) const; + + /*! + * Returns the grid map data for a layer as matrix. + * @param layer the name of the layer to be returned. + * @return grid map data as matrix. + * @throw std::out_of_range if no map layer with name `layer` is present. + */ + const Matrix& get(const std::string& layer) const; + + /*! + * Returns the grid map data for a layer as non-const. Use this method + * with care! + * @param layer the name of the layer to be returned. + * @return grid map data. + * @throw std::out_of_range if no map layer with name `layer` is present. + */ + Matrix& get(const std::string& layer); + + /*! + * Returns the grid map data for a layer as matrix. + * @param layer the name of the layer to be returned. + * @return grid map data as matrix. + * @throw std::out_of_range if no map layer with name `layer` is present. + */ + const Matrix& operator [](const std::string& layer) const; + + /*! + * Returns the grid map data for a layer as non-const. Use this method + * with care! + * @param layer the name of the layer to be returned. + * @return grid map data. + * @throw std::out_of_range if no map layer with name `layer` is present. + */ + Matrix& operator [](const std::string& layer); + + /*! + * Removes a layer from the grid map. + * @param layer the name of the layer to be removed. + * @return true if successful. + */ + bool erase(const std::string& layer); + + /*! + * Gets the names of the layers. + * @return the names of the layers. + */ + const std::vector& getLayers() const; + + /*! + * Set the basic layers that need to be valid for a cell to be considered as valid. + * Also, the basic layers are set to NAN when clearing the cells with `clearBasic()`. + * By default the list of basic layers is empty. + * @param basicLayers the list of layers that are the basic layers of the map. + */ + void setBasicLayers(const std::vector& basicLayers); + + /*! + * Gets the names of the basic layers. + * @return the names of the basic layers. + */ + const std::vector& getBasicLayers() const; + + /*! + * True if basic layers are defined. + * @return true if basic layers are defined, false otherwise. + */ + bool hasBasicLayers() const; + + /*! + * Checks if another grid map contains the same layers as this grid map. + * The other grid map could contain more layers than the checked ones. + * Does not check the selection of basic layers. + * @param other the other grid map. + * @return true if the other grid map has the same layers, false otherwise. + */ + bool hasSameLayers(const grid_map::GridMap& other) const; + + /*! + * Get cell data at requested position. + * @param layer the name of the layer to be accessed. + * @param position the requested position. + * @return the data of the cell. + * @throw std::out_of_range if no map layer with name `layer` is present. + */ + float& atPosition(const std::string& layer, const Position& position); + + /*! + * Get cell data at requested position. Const version form above. + * @param layer the name of the layer to be accessed. + * @param position the requested position. + * @return the data of the cell. + * @throw std::out_of_range if no map layer with name `layer` is present. + * @throw std::runtime_error if the specified interpolation method is not implemented. + */ + float atPosition(const std::string& layer, const Position& position, + InterpolationMethods interpolationMethod = InterpolationMethods::INTER_NEAREST) const; + + /*! + * Get cell data for requested index. + * @param layer the name of the layer to be accessed. + * @param index the requested index. + * @return the data of the cell. + * @throw std::out_of_range if no map layer with name `layer` is present. + */ + float& at(const std::string& layer, const Index& index); + + /*! + * Get cell data for requested index. Const version form above. + * @param layer the name of the layer to be accessed. + * @param index the requested index. + * @return the data of the cell. + * @throw std::out_of_range if no map layer with name `layer` is present. + */ + float at(const std::string& layer, const Index& index) const; + + /*! + * Gets the corresponding cell index for a position. + * @param[in] position the requested position. + * @param[out] index the corresponding index. + * @return true if successful, false if position outside of map. + */ + bool getIndex(const Position& position, Index& index) const; + + /*! + * Gets the 2d position of cell specified by the index (x, y of cell position) in + * the grid map frame. + * @param[in] index the index of the requested cell. + * @param[out] position the position of the data point in the parent frame. + * @return true if successful, false if index not within range of buffer. + */ + bool getPosition(const Index& index, Position& position) const; + + /*! + * Check if position is within the map boundaries. + * @param position the position to be checked. + * @return true if position is within map, false otherwise. + */ + bool isInside(const Position& position) const; + + /*! + * Checks if the index of all layers defined as basic types are valid, + * i.e. if all basic types are finite. Returns `false` if no basic types are defined. + * @param index the index to check. + * @return true if cell is valid, false otherwise. + */ + bool isValid(const Index& index) const; + + /*! + * Checks if cell at index is a valid (finite) for a certain layer. + * @param index the index to check. + * @param layer the name of the layer to be checked for validity. + * @return true if cell is valid, false otherwise. + */ + bool isValid(const Index& index, const std::string& layer) const; + + /*! + * Checks if cell at index is a valid (finite) for certain layers. + * @param index the index to check. + * @param layers the layers to be checked for validity. + * @return true if cell is valid, false otherwise. + */ + bool isValid(const Index& index, const std::vector& layers) const; + + /*! + * Gets the 3d position of a data point (x, y of cell position & cell value as z) in + * the grid map frame. This is useful for data layers such as elevation. + * @param layer the name of the layer to be accessed. + * @param index the index of the requested cell. + * @param position the position of the data point in the parent frame. + * @return true if successful, false if no valid data available. + */ + bool getPosition3(const std::string& layer, const Index& index, Position3& position) const; + + /*! + * Gets the 3d vector of three layers with suffixes 'x', 'y', and 'z'. + * @param layerPrefix the prefix for the layer to bet get as vector. + * @param index the index of the requested cell. + * @param vector the vector with the values of the data type. + * @return true if successful, false if no valid data available. + */ + bool getVector(const std::string& layerPrefix, const Index& index, + Eigen::Vector3d& vector) const; + + /*! + * Gets a submap from the map. The requested submap is specified with the requested + * location and length. + * Note: The returned submap may not have the requested length due to the borders + * of the map and discretization. + * @param[in] position the requested position of the submap (usually the center). + * @param[in] length the requested length of the submap. + * @param[out] isSuccess true if successful, false otherwise. + * @return submap (is empty if success is false). + */ + GridMap getSubmap(const Position& position, const Length& length, bool& isSuccess) const; + + /*! + * Gets a submap from the map. The requested submap is specified with the requested + * location and length. + * Note: The returned submap may not have the requested length due to the borders + * of the map and discretization. + * @param[in] position the requested position of the submap (usually the center). + * @param[in] length the requested length of the submap. + * @param[out] indexInSubmap the index of the requested position in the submap. + * @param[out] isSuccess true if successful, false otherwise. + * @return submap (is empty if success is false). + */ + GridMap getSubmap(const Position& position, const Length& length, Index& indexInSubmap, + bool& isSuccess) const; + + /*! + * Set the position of the grid map. + * Note: This method does not change the data stored in the grid map and + * is complementary to the `move(...)` method. For a comparison between + * the `setPosition` and the `move` method, see the `move_demo_node.cpp` + * file of the `grid_map_demos` package. + * @param position the 2d position of the grid map in the grid map frame [m]. + */ + void setPosition(const Position& position); + + /*! + * Move the grid map w.r.t. to the grid map frame. Use this to move the grid map + * boundaries without moving the grid map data. Takes care of all the data handling, + * such that the grid map data is stationary in the grid map frame. + * Note: For a comparison between the `setPosition` and the `move` method, + * see the `move_demo_node.cpp` file of the `grid_map_demos` package. + * @param position the new location of the grid map in the map frame. + * @param newRegions the regions of the newly covered / previously uncovered regions of the buffer. + * @return true if map has been moved, false otherwise. + */ + bool move(const Position& position, std::vector& newRegions); + + /*! + * Move the grid map w.r.t. to the grid map frame. Use this to move the grid map + * boundaries without moving the grid map data. Takes care of all the data handling, + * such that the grid map data is stationary in the grid map frame. + * @param position the new location of the grid map in the map frame. + * @return true if map has been moved, false otherwise. + */ + bool move(const Position& position); + + /*! + * Adds data from an other grid map to this grid map + * @param other the grid map to take data from. + * @param extendMap if true the grid map is resized that the other map fits within. + * @param overwriteData if true the new data replaces the old values, else only invalid cells are updated. + * @param copyAllLayer if true all layers are used to add data. + * @param layers the layers that are copied if not all layers are used. + * @return true if successful. + */ + bool addDataFrom(const GridMap& other, bool extendMap, + bool overwriteData, bool copyAllLayers, + std::vector layers = std::vector()); + + /*! + * Extends the size of the grip map such that the other grid map fits within. + * @param other the grid map to extend the size to. + * @return true if successful. + */ + bool extendToInclude(const GridMap& other); + + /*! + * Clears all cells (set to NAN) for a layer. + * @param layer the layer to be cleared. + */ + void clear(const std::string& layer); + + /*! + * Clears all cells (set to NAN) for all basic layers. + * Header information (geometry etc.) remains valid. + */ + void clearBasic(); + + /*! + * Clears all cells of all layers. + * If basic layers are used, clearBasic() is preferred as it is more efficient. + * Header information (geometry etc.) remains valid. + */ + void clearAll(); + + /*! + * Set the timestamp of the grid map. + * @param timestamp the timestamp to set (in nanoseconds). + */ + void setTimestamp(const Time timestamp); + + /*! + * Get the timestamp of the grid map. + * @return timestamp in nanoseconds. + */ + Time getTimestamp() const; + + /*! + * Resets the timestamp of the grid map (to zero). + */ + void resetTimestamp(); + + /*! + * Set the frame id of the grid map. + * @param frameId the frame id to set. + */ + void setFrameId(const std::string& frameId); + + /*! + * Get the frameId of the grid map. + * @return frameId. + */ + const std::string& getFrameId() const; + + /*! + * Get the side length of the grid map. + * @return side length of the grid map. + */ + const Length& getLength() const; + + /*! + * Get the 2d position of the grid map in the grid map frame. + * @return position of the grid map in the grid map frame. + */ + const Position& getPosition() const; + + /*! + * Get the resolution of the grid map. + * @return resolution of the grid map in the xy plane [m/cell]. + */ + double getResolution() const; + + /*! + * Get the grid map size (rows and cols of the data structure). + * @return grid map size. + */ + const Size& getSize() const; + + /*! + * Set the start index of the circular buffer. + * Use this method with caution! + * @return buffer start index. + */ + void setStartIndex(const Index& startIndex); + + /*! + * Get the start index of the circular buffer. + * @return buffer start index. + */ + const Index& getStartIndex() const; + + /*! + * Checks if the buffer is at start index (0,0). + * @return true if buffer is at default start index. + */ + bool isDefaultStartIndex() const; + + /*! + * Rearranges data such that the buffer start index is at (0,0). + */ + void convertToDefaultStartIndex(); + + private: + + /*! + * Clear a number of columns of the grid map. + * @param index the left index for the columns to be reset. + * @param nCols the number of columns to reset. + */ + void clearCols(unsigned int index, unsigned int nCols); + + /*! + * Clear a number of rows of the grid map. + * @param index the upper index for the rows to be reset. + * @param nRows the number of rows to reset. + */ + void clearRows(unsigned int index, unsigned int nRows); + + /*! + * Get cell data at requested position, linearly interpolated from 2x2 cells. + * @param layer the name of the layer to be accessed. + * @param position the requested position. + * @param value the data of the cell. + * @return true if linear interpolation was successful. + */ + bool atPositionLinearInterpolated(const std::string& layer, const Position& position, float& value) const; + + /*! + * Resize the buffer. + * @param bufferSize the requested buffer size. + */ + void resize(const Index& bufferSize); + + //! Frame id of the grid map. + std::string frameId_; + + //! Timestamp of the grid map (nanoseconds). + Time timestamp_; + + //! Grid map data stored as layers of matrices. + std::unordered_map data_; + + //! Names of the data layers. + std::vector layers_; + + //! List of layers from `data_` that are the basic grid map layers. + //! This means that for a cell to be valid, all basic layers need to be valid. + //! Also, the basic layers are set to NAN when clearing the map with `clear()`. + std::vector basicLayers_; + + //! Side length of the map in x- and y-direction [m]. + Length length_; + + //! Map resolution in xy plane [m/cell]. + double resolution_; + + //! Map position in the grid map frame [m]. + Position position_; + + //! Size of the buffer (rows and cols of the data structure). + Size size_; + + //! Circular buffer start indeces. + Index startIndex_; + + public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW +}; + +} /* namespace */ diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/GridMapMath.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/GridMapMath.hpp new file mode 100644 index 00000000000..cb31118cbc3 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/GridMapMath.hpp @@ -0,0 +1,357 @@ +/* + * GridMapMath.hpp + * + * Created on: Dec 2, 2013 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#pragma once + +#include "grid_map_core/TypeDefs.hpp" +#include "grid_map_core/BufferRegion.hpp" + +#include +#include +#include + +namespace grid_map { + +/*! + * Gets the position of a cell specified by its index in the map frame. + * @param[out] position the position of the center of the cell in the map frame. + * @param[in] index of the cell. + * @param[in] mapLength the lengths in x and y direction. + * @param[in] mapPosition the position of the map. + * @param[in] resolution the resolution of the map. + * @param[in] bufferSize the size of the buffer (optional). + * @param[in] bufferStartIndex the index of the starting point of the circular buffer (optional). + * @return true if successful, false if index not within range of buffer. + */ +bool getPositionFromIndex(Position& position, + const Index& index, + const Length& mapLength, + const Position& mapPosition, + const double& resolution, + const Size& bufferSize, + const Index& bufferStartIndex = Index::Zero()); + +/*! + * Gets the index of the cell which contains a position in the map frame. + * @param[out] index of the cell. + * @param[in] position the position in the map frame. + * @param[in] mapLength the lengths in x and y direction. + * @param[in] mapPosition the position of the map. + * @param[in] resolution the resolution of the map. + * @param[in] bufferSize the size of the buffer (optional). + * @param[in] bufferStartIndex the index of the starting point of the circular buffer (optional). + * @return true if successful, false if position outside of map. + */ +bool getIndexFromPosition(Index& index, + const Position& position, + const Length& mapLength, + const Position& mapPosition, + const double& resolution, + const Size& bufferSize, + const Index& bufferStartIndex = Index::Zero()); + +/*! + * Checks if position is within the map boundaries. + * @param[in] position the position which is to be checked. + * @param[in] mapLength the length of the map. + * @param[in] mapPosition the position of the map. + * @return true if position is within map, false otherwise. + */ +bool checkIfPositionWithinMap(const Position& position, + const Length& mapLength, + const Position& mapPosition); + +/*! + * Gets the position of the data structure origin. + * @param[in] position the position of the map. + * @param[in] mapLength the map length. + * @param[out] positionOfOrigin the position of the data structure origin. + */ +void getPositionOfDataStructureOrigin(const Position& position, + const Length& mapLength, + Position& positionOfOrigin); + +/*! + * Computes how many cells/indeces the map is moved based on a position shift in + * the grid map frame. Use this function if you are moving the grid map + * and want to ensure that the cells match before and after. + * @param[out] indexShift the corresponding shift of the indices. + * @param[in] positionShift the desired position shift. + * @param[in] resolution the resolution of the map. + * @return true if successful. + */ +bool getIndexShiftFromPositionShift(Index& indexShift, + const Vector& positionShift, + const double& resolution); + +/*! + * Computes the corresponding position shift from a index shift. Use this function + * if you are moving the grid map and want to ensure that the cells match + * before and after. + * @param[out] positionShift the corresponding shift in position in the grid map frame. + * @param[in] indexShift the desired shift of the indeces. + * @param[in] resolution the resolution of the map. + * @return true if successful. + */ +bool getPositionShiftFromIndexShift(Vector& positionShift, + const Index& indexShift, + const double& resolution); + +/*! + * Checks if index is within range of the buffer. + * @param[in] index to check. + * @param[in] bufferSize the size of the buffer. + * @return true if index is within, and false if index is outside of the buffer. + */ +bool checkIfIndexInRange(const Index& index, const Size& bufferSize); + +/*! + * Bounds an index that runs out of the range of the buffer. + * This means that an index that overflows is stopped at the last valid index. + * This is the 2d version of boundIndexToRange(int&, const int&). + * @param[in/out] index the indeces that will be bounded to the valid region of the buffer. + * @param[in] bufferSize the size of the buffer. + */ +void boundIndexToRange(Index& index, const Size& bufferSize); + +/*! + * Bounds an index that runs out of the range of the buffer. + * This means that an index that overflows is stopped at the last valid index. + * @param[in/out] index the index that will be bounded to the valid region of the buffer. + * @param[in] bufferSize the size of the buffer. + */ +void boundIndexToRange(int& index, const int& bufferSize); + +/*! + * Wraps an index that runs out of the range of the buffer back into allowed the region. + * This means that an index that overflows is reset to zero. + * This is the 2d version of wrapIndexToRange(int&, const int&). + * @param[in/out] index the indeces that will be wrapped into the valid region of the buffer. + * @param[in] bufferSize the size of the buffer. + */ +void wrapIndexToRange(Index& index, const Size& bufferSize); + +/*! + * Wraps an index that runs out of the range of the buffer back into allowed the region. + * This means that an index that overflows is reset to zero. + * @param[in/out] index the index that will be wrapped into the valid region of the buffer. + * @param[in] bufferSize the size of the buffer. + */ +void wrapIndexToRange(int& index, const int& bufferSize); + +/*! + * Bound (cuts off) the position to lie inside the map. + * This means that an index that overflows is stopped at the last valid index. + * @param[in/out] position the position to be bounded. + * @param[in] mapLength the lengths in x and y direction. + * @param[in] mapPosition the position of the map. + */ +void boundPositionToRange(Position& position, const Length& mapLength, const Position& mapPosition); + +/*! + * Provides the alignment transformation from the buffer order (outer/inner storage) + * and the map frame (x/y-coordinate). + * @return the alignment transformation. + */ +const Eigen::Matrix2i getBufferOrderToMapFrameAlignment(); + +/*! + * Given a map and a desired submap (defined by position and size), this function computes + * various information about the submap. The returned submap might be smaller than the requested + * size as it respects the boundaries of the map. + * @param[out] submapTopLeftIndex the top left index of the returned submap. + * @param[out] submapBufferSize the buffer size of the returned submap. + * @param[out] submapPosition the position of the submap (center) in the map frame. + * @param[out] submapLength the length of the submap. + * @param[out] requestedIndexInSubmap the index in the submap that corresponds to the requested + * position of the submap. + * @param[in] requestedSubmapPosition the requested submap position (center) in the map frame. + * @param[in] requestedSubmapLength the requested submap length. + * @param[in] mapLength the lengths in x and y direction. + * @param[in] mapPosition the position of the map. + * @param[in] resolution the resolution of the map. + * @param[in] bufferSize the buffer size of the map. + * @param[in] bufferStartIndex the index of the starting point of the circular buffer (optional). + * @return true if successful. + */ +bool getSubmapInformation(Index& submapTopLeftIndex, + Size& submapBufferSize, + Position& submapPosition, + Length& submapLength, + Index& requestedIndexInSubmap, + const Position& requestedSubmapPosition, + const Length& requestedSubmapLength, + const Length& mapLength, + const Position& mapPosition, + const double& resolution, + const Size& bufferSize, + const Index& bufferStartIndex = Index::Zero()); + +/*! + * Computes the buffer size of a submap given a top left and a lower right index. + * @param topLeftIndex the top left index in the map. + * @param bottomRightIndex the bottom right index in the map. + * @return buffer size for the submap. + */ +Size getSubmapSizeFromCornerIndeces(const Index& topLeftIndex, const Index& bottomRightIndex, + const Size& bufferSize, const Index& bufferStartIndex); + +/*! + * Computes the regions in the circular buffer that make up the data for + * a requested submap. + * @param[out] submapBufferRegions the list of buffer regions that make up the submap. + * @param[in] submapIndex the index (top-left) for the requested submap. + * @param[in] submapBufferSize the size of the requested submap. + * @param[in] bufferSize the buffer size of the map. + * @param[in] bufferStartIndex the index of the starting point of the circular buffer (optional). + * @return true if successful, false if requested submap is not fully contained in the map. + */ +bool getBufferRegionsForSubmap(std::vector& submapBufferRegions, + const Index& submapIndex, + const Size& submapBufferSize, + const Size& bufferSize, + const Index& bufferStartIndex = Index::Zero()); + +/*! + * Increases the index by one to iterate through the map. + * Increments either to the neighboring index to the right or to + * the start of the lower row. Returns false if end of iterations are reached. + * @param[in/out] index the index in the map that is incremented (corrected for the circular buffer). + * @param[in] bufferSize the map buffer size. + * @param[in] bufferStartIndex the map buffer start index. + * @return true if successfully incremented indeces, false if end of iteration limits are reached. + */ +bool incrementIndex(Index& index, const Size& bufferSize, + const Index& bufferStartIndex = Index::Zero()); + +/*! + * Increases the index by one to iterate through the cells of a submap. + * Increments either to the neighboring index to the right or to + * the start of the lower row. Returns false if end of iterations are reached. + * + * Note: This function does not check if submap actually fits to the map. This needs + * to be checked before separately. + * + * @param[in/out] submapIndex the index in the submap that is incremented. + * @param[out] index the index in the map that is incremented (corrected for the circular buffer). + * @param[in] submapTopLefIndex the top left index of the submap. + * @param[in] submapBufferSize the submap buffer size. + * @param[in] bufferSize the map buffer size. + * @param[in] bufferStartIndex the map buffer start index. + * @return true if successfully incremented indeces, false if end of iteration limits are reached. + */ +bool incrementIndexForSubmap(Index& submapIndex, Index& index, const Index& submapTopLeftIndex, + const Size& submapBufferSize, const Size& bufferSize, + const Index& bufferStartIndex = Index::Zero()); + +/*! + * Retrieve the index as unwrapped index, i.e., as the corresponding index of a + * grid map with no circular buffer offset. + * @param bufferIndex the index in the circular buffer. + * @param bufferSize the map buffer size. + * @param bufferStartIndex the map buffer start index. + * @return the unwrapped index. + */ +Index getIndexFromBufferIndex(const Index& bufferIndex, const Size& bufferSize, + const Index& bufferStartIndex); + +/*! + * Retrieve the index of the buffer from a unwrapped index (reverse from function above). + * @param index the unwrapped index. + * @param bufferSize the map buffer size. + * @param bufferStartIndex the map buffer start index. + * @return the buffer index. + */ +Index getBufferIndexFromIndex(const Index& index, const Size& bufferSize, const Index& bufferStartIndex); + +/*! + * Returns the linear index (1-dim.) corresponding to the regular index (2-dim.) for either + * row- or column-major format. + * Note: Eigen is defaulting to column-major format. + * @param[in] index the regular 2d index. + * @param[in] bufferSize the map buffer size. + * @param[in] (optional) rowMajor if the linear index is generated for row-major format. + * @return the linear 1d index. + */ +size_t getLinearIndexFromIndex(const Index& index, const Size& bufferSize, const bool rowMajor = false); + +/*! + * Returns the regular index (2-dim.) corresponding to the linear index (1-dim.) for a given buffer size. + * @param[in] linearIndex the he linear 1d index. + * @param[in] bufferSize the map buffer size. + * @param[in] (optional) rowMajor if the linear index is generated for row-major format. + * @return the regular 2d index. + */ +Index getIndexFromLinearIndex(const size_t linearIndex, const Size& bufferSize, const bool rowMajor = false); + +/*! + * Generates a list of indices for a region in the map. + * @param regionIndex the region top-left index. + * @param regionSize the region size. + * @param indices the list of indices of the region. + */ +void getIndicesForRegion(const Index& regionIndex, const Size& regionSize, + std::vector indices); + +/*! + * Generates a list of indices for multiple regions in the map. + * This method makes sure every index is only once contained in the list. + * @param regionIndeces the regions' top-left index. + * @param regionSizes the regions' sizes. + * @param indices the list of indices of the regions. + */ +void getIndicesForRegions(const std::vector& regionIndeces, const Size& regionSizes, + std::vector indices); + +/*! + * Transforms an int color value (concatenated RGB values) to an int color vector (RGB from 0-255). + * @param [in] colorValue the concatenated RGB color value. + * @param [out] colorVector the color vector in RGB from 0-255. + * @return true if successful. + */ +bool colorValueToVector(const unsigned long& colorValue, Eigen::Vector3i& colorVector); + +/*! + * Transforms an int color value (concatenated RGB values) to a float color vector (RGB from 0.0-1.0). + * @param [in] colorValue the concatenated RGB color value. + * @param [out] colorVector the color vector in RGB from 0.0-1.0. + * @return true if successful. + */ +bool colorValueToVector(const unsigned long& colorValue, Eigen::Vector3f& colorVector); + +/*! + * Transforms a float color value (concatenated 3 single-byte value) to a float color vector (RGB from 0.0-1.0). + * @param [in] colorValue the concatenated RGB color value. + * @param [out] colorVector the color vector in RGB from 0.0-1.0. + * @return true if successful. + */ +bool colorValueToVector(const float& colorValue, Eigen::Vector3f& colorVector); + +/*! + * Transforms an int color vector (RGB from 0-255) to a concatenated RGB int color. + * @param [in] colorVector the color vector in RGB from 0-255. + * @param [out] colorValue the concatenated RGB color value. + * @return true if successful. + */ +bool colorVectorToValue(const Eigen::Vector3i& colorVector, unsigned long& colorValue); + +/*! + * Transforms a color vector (RGB from 0-255) to a concatenated 3 single-byte float value. + * @param [in] colorVector the color vector in RGB from 0-255. + * @param [out] colorValue the concatenated RGB color value. + */ +void colorVectorToValue(const Eigen::Vector3i& colorVector, float& colorValue); + +/*! + * Transforms a color vector (RGB from 0.0-1.0) to a concatenated 3 single-byte float value. + * @param [in] colorVector the color vector in RGB from 0.0-1.0. + * @param [out] colorValue the concatenated RGB color value. + */ +void colorVectorToValue(const Eigen::Vector3f& colorVector, float& colorValue); + +} // namespace diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/Polygon.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/Polygon.hpp new file mode 100644 index 00000000000..9fa28949f8f --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/Polygon.hpp @@ -0,0 +1,237 @@ +/* + * Polygon.hpp + * + * Created on: Nov 7, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#pragma once + +#include + +// STD +#include + +// Eigen +#include + +namespace grid_map { + +class Polygon +{ + public: + + enum class TriangulationMethods { + FAN // Fan triangulation (only for convex polygons). + }; + + /*! + * Default constructor. + */ + Polygon(); + + /*! + * Constructor with vertices. + * @param vertices the points of the polygon. + */ + Polygon(std::vector vertices); + + /*! + * Destructor. + */ + virtual ~Polygon(); + + /*! + * Check if point is inside polygon. + * @param point the point to be checked. + * @return true if inside, false otherwise. + */ + bool isInside(const Position& point) const; + + /*! + * Add a vertex to the polygon + * @param vertex the point to be added. + */ + void addVertex(const Position& vertex); + + /*! + * Get the vertex with index. + * @param index the index of the requested vertex. + * @return the requested vertex. + */ + const Position& getVertex(const size_t index) const; + + /*! + * Removes all vertices from the polygon. + */ + void removeVertices(); + + /*! + * Get vertex operator overload. + * @param index the index of the requested vertex. + * @return the requested vertex. + */ + const Position& operator [](const size_t index) const; + + /*! + * Returns the vertices of the polygon. + * @return the vertices of the polygon. + */ + const std::vector& getVertices() const; + + /*! + * Returns the number of vertices. + * @return the number of vertices. + */ + const size_t nVertices() const; + + /*! + * Set the timestamp of the polygon. + * @param timestamp the timestamp to set (in nanoseconds). + */ + void setTimestamp(const uint64_t timestamp); + + /*! + * Get the timestamp of the polygon. + * @return timestamp in nanoseconds. + */ + uint64_t getTimestamp() const; + + /*! + * Resets the timestamp of the polygon (to zero). + */ + void resetTimestamp(); + + /*! + * Set the frame id of the polygon. + * @param frameId the frame id to set. + */ + void setFrameId(const std::string& frameId); + + /*! + * Get the frameId of the polygon. + * @return frameId. + */ + const std::string& getFrameId() const; + + /*! + * Get the area of the polygon. The polygon has to be + * "simple", i.e. not crossing itself. + * @return area of the polygon. + */ + const double getArea() const; + + /*! + * Get the centroid of polygon. The polygon has to be + * "simple", i.e. not crossing itself. + * @return centroid of polygon. + */ + Position getCentroid() const; + + /*! + * Gets the bounding box of the polygon. + * @param center the center of the bounding box. + * @param length the side lengths of the bounding box. + */ + void getBoundingBox(Position& center, Length& length) const; + + /*! + * Convert polygon to inequality constraints which most tightly contain the points; i.e., + * create constraints to bound the convex hull of polygon. The inequality constraints are + * represented as A and b, a set of constraints such that A*x <= b defining the region of + * space enclosing the convex hull. + * Based on the VERT2CON MATLAB method by Michael Kleder: + * http://www.mathworks.com/matlabcentral/fileexchange/7895-vert2con-vertices-to-constraints + * @param A the A matrix in of the inequality constraint. + * @param b the b matrix in of the inequality constraint. + * @return true if conversion successful, false otherwise. + */ + bool convertToInequalityConstraints(Eigen::MatrixXd& A, + Eigen::VectorXd& b) const; + + /*! + * Offsets the polygon inward (buffering) by a margin. + * Use a negative margin to offset the polygon outward. + * @param margin the margin to offset the polygon by (in [m]). + * @return true if successful, false otherwise. + */ + bool offsetInward(const double margin); + + /*! + * If only two verices are given, this methods generates a + * `thickened` line polygon with four vertices. + * @param thickness the desired thickness of the line. + * @return true if successful, false otherwise. + */ + bool thickenLine(const double thickness); + + /*! + * Return a triangulated version of the polygon. + * @return a list of triangle polygons covering the same polygon. + */ + std::vector triangulate(const TriangulationMethods& method = TriangulationMethods::FAN) const; + + /*! + * Approximates a circle with a polygon. + * @param[in] center the center position of the circle. + * @param[in] radius radius of the circle. + * @param[in] nVertices number of vertices of the approximation polygon. Default = 20. + * @return circle as polygon. + */ + static Polygon fromCircle(const Position center, const double radius, + const int nVertices = 20); + + /*! + * Approximates two circles with a convex hull and returns it as polygon. + * @param[in] center1 the center position of the first circle. + * @param[in] center2 the center position of the second circle. + * @param[in] radius radius of the circles. + * @param[in] nVertices number of vertices of the approximation polygon. Default = 20. + * @return convex hull of the two circles as polygon. + */ + static Polygon convexHullOfTwoCircles(const Position center1, + const Position center2, + const double radius, + const int nVertices = 20); + + /*! + * Computes the convex hull of two polygons and returns it as polygon. + * @param[in] polygon1 the first input polygon. + * @param[in] polygon2 the second input polygon. + * @return convex hull as polygon. + */ + static Polygon convexHull(Polygon& polygon1, Polygon& polygon2); + + protected: + + /*! + * Returns true if the vector1 and vector2 are sorted lexicographically. + * @param[in] vector1 the first input vector. + * @param[in] vector2 the second input vector. + */ + static bool sortVertices(const Eigen::Vector2d& vector1, + const Eigen::Vector2d& vector2); + + /*! + * Returns the 2D cross product of vector1 and vector2. + * @param[in] vector1 the first input vector. + * @param[in] vector2 the second input vector. + */ + static double computeCrossProduct2D(const Eigen::Vector2d& vector1, + const Eigen::Vector2d& vector2); + + //! Frame id of the polygon. + std::string frameId_; + + //! Timestamp of the polygon (nanoseconds). + uint64_t timestamp_; + + //! Vertices of the polygon. + std::vector vertices_; + + public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW +}; + +} /* namespace grid_map */ diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/SubmapGeometry.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/SubmapGeometry.hpp new file mode 100644 index 00000000000..5ae25394b04 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/SubmapGeometry.hpp @@ -0,0 +1,73 @@ +/* + * SubmapGeometry.hpp + * + * Created on: Aug 18, 2015 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#pragma once + +#include + +namespace grid_map { + +class GridMap; + +/*! + * This class holds information about the geometry of submap + * region of a grid map. Note that, this class does NOT hold + * the any data of the grid map. + */ +class SubmapGeometry +{ + public: + + /*! + * Constructor. Note that the requested position and length + * of the submap is adapted to fit the geometry of the parent + * grid map. + * @param[in] gridMap the parent grid map containing the submap. + * @param[in] position the requested submap position (center). + * @param[in] length the requested submap length. + * @param[out] isSuccess true if successful, false otherwise. + */ + SubmapGeometry(const GridMap& gridMap, const Position& position, const Length& length, + bool& isSuccess); + + virtual ~SubmapGeometry(); + + const GridMap& getGridMap() const; + const Length& getLength() const; + const Position& getPosition() const; + const Index& getRequestedIndexInSubmap() const; + const Size& getSize() const; + double getResolution() const; + const Index& getStartIndex() const; + + private: + + //! Parent grid map of the submap. + const GridMap& gridMap_; + + //! Start index (typically top left) index of the submap. + Index startIndex_; + + //! Size of the submap. + Size size_; + + //! Position (center) of the submap. + Position position_; + + //! Length of the submap. + Length length_; + + //! Index in the submap that corresponds to the requested + //! position of the submap. + Index requestedIndexInSubmap_; + + public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW +}; + +} /* namespace grid_map */ diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/TypeDefs.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/TypeDefs.hpp new file mode 100644 index 00000000000..6c325af01af --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/TypeDefs.hpp @@ -0,0 +1,33 @@ +/* + * TypeDefs.hpp + * + * Created on: March 18, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +// Eigen +#include + +#pragma once + +namespace grid_map { + + typedef Eigen::MatrixXf Matrix; + typedef Matrix::Scalar DataType; + typedef Eigen::Vector2d Position; + typedef Eigen::Vector2d Vector; + typedef Eigen::Vector3d Position3; + typedef Eigen::Vector3d Vector3; + typedef Eigen::Array2i Index; + typedef Eigen::Array2i Size; + typedef Eigen::Array2d Length; + typedef uint64_t Time; + + enum class InterpolationMethods{ + INTER_NEAREST, // nearest neighbor interpolation + INTER_LINEAR // bilinear interpolation + // ToDo: INTER_CUBIC + }; + +} /* namespace */ diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/eigen_plugins/DenseBasePlugin.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/eigen_plugins/DenseBasePlugin.hpp new file mode 100644 index 00000000000..8b3dd6f9b3d --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/eigen_plugins/DenseBasePlugin.hpp @@ -0,0 +1,26 @@ +Scalar numberOfFinites() const +{ + if (SizeAtCompileTime==0 || (SizeAtCompileTime==Dynamic && size()==0)) return Scalar(0); + return Scalar((derived().array() == derived().array()).count()); +} + +Scalar sumOfFinites() const +{ + if (SizeAtCompileTime==0 || (SizeAtCompileTime==Dynamic && size()==0)) return Scalar(0); + return Scalar(this->redux(Eigen::internal::scalar_sum_of_finites_op())); +} + +Scalar meanOfFinites() const +{ + return Scalar(this->redux(Eigen::internal::scalar_sum_of_finites_op())) / this->numberOfFinites(); +} + +Scalar minCoeffOfFinites() const +{ + return Scalar(this->redux(Eigen::internal::scalar_min_of_finites_op())); +} + +Scalar maxCoeffOfFinites() const +{ + return Scalar(this->redux(Eigen::internal::scalar_max_of_finites_op())); +} diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/eigen_plugins/Functors.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/eigen_plugins/Functors.hpp new file mode 100644 index 00000000000..604bf8163ff --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/eigen_plugins/Functors.hpp @@ -0,0 +1,28 @@ +/* + * Functors.hpp + * + * Created on: Nov 23, 2015 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#pragma once + +namespace grid_map { + +template +struct Clamp +{ + Clamp(const Scalar& min, const Scalar& max) + : min_(min), + max_(max) + { + } + const Scalar operator()(const Scalar& x) const + { + return x < min_ ? min_ : (x > max_ ? max_ : x); + } + Scalar min_, max_; +}; + +} diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/eigen_plugins/FunctorsPlugin.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/eigen_plugins/FunctorsPlugin.hpp new file mode 100644 index 00000000000..79dcdd665c8 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/eigen_plugins/FunctorsPlugin.hpp @@ -0,0 +1,59 @@ +#include + +template struct scalar_sum_of_finites_op { + EIGEN_EMPTY_STRUCT_CTOR(scalar_sum_of_finites_op) + EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a, const Scalar& b) const { + using std::isfinite; + if (isfinite(a) && isfinite(b)) return a + b; + if (isfinite(a)) return a; + if (isfinite(b)) return b; + return a + b; + } +}; +template +struct functor_traits > { + enum { + Cost = 2 * NumTraits::ReadCost + NumTraits::AddCost, + PacketAccess = false + }; +}; + +template +struct scalar_min_of_finites_op { + EIGEN_EMPTY_STRUCT_CTOR(scalar_min_of_finites_op) + EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a, const Scalar& b) const { + using std::min; + using std::isfinite; + if (isfinite(a) && isfinite(b)) return (min)(a, b); + if (isfinite(a)) return a; + if (isfinite(b)) return b; + return (min)(a, b); + } +}; +template +struct functor_traits > { + enum { + Cost = NumTraits::AddCost, + PacketAccess = false + }; +}; + +template +struct scalar_max_of_finites_op { + EIGEN_EMPTY_STRUCT_CTOR(scalar_max_of_finites_op) + EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a, const Scalar& b) const { + using std::max; + using std::isfinite; + if (isfinite(a) && isfinite(b)) return (max)(a, b); + if (isfinite(a)) return a; + if (isfinite(b)) return b; + return (max)(a, b); + } +}; +template +struct functor_traits > { + enum { + Cost = NumTraits::AddCost, + PacketAccess = false + }; +}; diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/grid_map_core.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/grid_map_core.hpp new file mode 100644 index 00000000000..648d58c5e4f --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/grid_map_core.hpp @@ -0,0 +1,18 @@ +/* + * grid_map_core.hpp + * + * Created on: Jul 14, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#pragma once + +#include "grid_map_core/TypeDefs.hpp" +#include "grid_map_core/GridMap.hpp" +#include "grid_map_core/SubmapGeometry.hpp" +#include "grid_map_core/GridMapMath.hpp" +#include "grid_map_core/BufferRegion.hpp" +#include "grid_map_core/Polygon.hpp" +#include "grid_map_core/iterators/iterators.hpp" +#include "grid_map_core/eigen_plugins/Functors.hpp" diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/gtest_eigen.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/gtest_eigen.hpp new file mode 100644 index 00000000000..18c55b63ada --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/gtest_eigen.hpp @@ -0,0 +1,161 @@ +/** + * @file gtest.hpp + * @author Paul Furgale + * @date Mon Dec 12 11:54:20 2011 + * @brief Code to simplify Eigen integration into GTest. Pretty basic but the error messages are good. + */ + +#pragma once + +#include +#include +#include +#include + +namespace grid_map { + + template + Eigen::Matrix randomCovariance() + { + Eigen::Matrix U; + U.setRandom(); + return U.transpose() * U + 5.0 * Eigen::Matrix::Identity(); + } + + inline Eigen::MatrixXd randomCovarianceXd(int N) + { + Eigen::MatrixXd U(N,N); + U.setRandom(); + return U.transpose() * U + 5.0 * Eigen::MatrixXd::Identity(N,N); + } + + template + void assertEqual(const M1 & A, const M2 & B, std::string const & message = "") + { + ASSERT_EQ((size_t)A.rows(),(size_t)B.rows()) << message << "\nMatrix A:\n" << A << "\nand matrix B\n" << B << "\nare not the same\n"; + ASSERT_EQ((size_t)A.cols(),(size_t)B.cols()) << message << "\nMatrix A:\n" << A << "\nand matrix B\n" << B << "\nare not the same\n"; + + for(int r = 0; r < A.rows(); r++) + { + for(int c = 0; c < A.cols(); c++) + { + if (std::isnan(A(r,c))) { + ASSERT_TRUE(std::isnan(B(r,c))); + } else { + ASSERT_EQ(A(r,c),B(r,c)) << message << "\nEquality comparison failed at (" << r << "," << c << ")\n" + << "\nMatrix A:\n" << A << "\nand matrix B\n" << B; + } + } + } + } + + template + void assertNear(const M1 & A, const M2 & B, T tolerance, std::string const & message = "") + { + // Note: If these assertions fail, they only abort this subroutine. + // see: http://code.google.com/p/googletest/wiki/AdvancedGuide#Using_Assertions_in_Sub-routines + // \todo better handling of this + ASSERT_EQ((size_t)A.rows(),(size_t)B.rows()) << message << "\nMatrix A:\n" << A << "\nand matrix B\n" << B << "\nare not the same\n"; + ASSERT_EQ((size_t)A.cols(),(size_t)B.cols()) << message << "\nMatrix A:\n" << A << "\nand matrix B\n" << B << "\nare not the same\n"; + + for(int r = 0; r < A.rows(); r++) + { + for(int c = 0; c < A.cols(); c++) + { + if (std::isnan(A(r,c))) { + ASSERT_TRUE(std::isnan(B(r,c))); + } else { + ASSERT_NEAR(A(r,c),B(r,c),tolerance) << message << "\nTolerance comparison failed at (" << r << "," << c << ")\n" + << "\nMatrix A:\n" << A << "\nand matrix B\n" << B; + } + } + } + } + + template + void expectNear(const M1 & A, const M2 & B, T tolerance, std::string const & message = "") + { + EXPECT_EQ((size_t)A.rows(),(size_t)B.rows()) << message << "\nMatrix A:\n" << A << "\nand matrix B\n" << B << "\nare not the same\n"; + EXPECT_EQ((size_t)A.cols(),(size_t)B.cols()) << message << "\nMatrix A:\n" << A << "\nand matrix B\n" << B << "\nare not the same\n"; + + for(int r = 0; r < A.rows(); r++) + { + for(int c = 0; c < A.cols(); c++) + { + if (std::isnan(A(r,c))) { + EXPECT_TRUE(std::isnan(B(r,c))); + } else { + EXPECT_NEAR(A(r,c),B(r,c),tolerance) << message << "\nTolerance comparison failed at (" << r << "," << c << ")\n" + << "\nMatrix A:\n" << A << "\nand matrix B\n" << B; + } + } + } + } + + template + void assertFinite(const M1 & A, std::string const & message = "") + { + for(int r = 0; r < A.rows(); r++) + { + for(int c = 0; c < A.cols(); c++) + { + ASSERT_TRUE(std::isfinite(A(r,c))) << std::endl << "Check for finite values failed at A(" << r << "," << c << "). Matrix A:" << std::endl << A << std::endl; + } + } + } + + inline bool compareRelative(double a, double b, double percentTolerance, double * percentError = NULL) + { + // \todo: does anyone have a better idea? + double fa = fabs(a); + double fb = fabs(b); + if( (fa < 1e-15 && fb < 1e-15) || // Both zero. + (fa == 0.0 && fb < 1e-6) || // One exactly zero and the other small + (fb == 0.0 && fa < 1e-6) ) // ditto + return true; + + double diff = fabs(a - b)/std::max(fa,fb); + if(diff > percentTolerance * 1e-2) + { + if(percentError) + *percentError = diff * 100.0; + return false; + } + return true; + } + +#define ASSERT_DOUBLE_MX_EQ(A, B, PERCENT_TOLERANCE, MSG) \ + ASSERT_EQ((size_t)(A).rows(), (size_t)(B).rows()) << MSG << "\nMatrix " << #A << ":\n" << A << "\nand matrix " << #B << "\n" << B << "\nare not the same size"; \ + ASSERT_EQ((size_t)(A).cols(), (size_t)(B).cols()) << MSG << "\nMatrix " << #A << ":\n" << A << "\nand matrix " << #B << "\n" << B << "\nare not the same size"; \ + for(int r = 0; r < (A).rows(); r++) \ + { \ + for(int c = 0; c < (A).cols(); c++) \ + { \ + double percentError = 0.0; \ + ASSERT_TRUE(grid_map::compareRelative( (A)(r,c), (B)(r,c), PERCENT_TOLERANCE, &percentError)) \ + << MSG << "\nComparing:\n" \ + << #A << "(" << r << "," << c << ") = " << (A)(r,c) << std::endl \ + << #B << "(" << r << "," << c << ") = " << (B)(r,c) << std::endl \ + << "Error was " << percentError << "% > " << PERCENT_TOLERANCE << "%\n" \ + << "\nMatrix " << #A << ":\n" << A << "\nand matrix " << #B << "\n" << B; \ + } \ + } + +#define ASSERT_DOUBLE_SPARSE_MX_EQ(A, B, PERCENT_TOLERANCE, MSG) \ + ASSERT_EQ((size_t)(A).rows(), (size_t)(B).rows()) << MSG << "\nMatrix " << #A << ":\n" << A << "\nand matrix " << #B << "\n" << B << "\nare not the same size"; \ + ASSERT_EQ((size_t)(A).cols(), (size_t)(B).cols()) << MSG << "\nMatrix " << #A << ":\n" << A << "\nand matrix " << #B << "\n" << B << "\nare not the same size"; \ + for(int r = 0; r < (A).rows(); r++) \ + { \ + for(int c = 0; c < (A).cols(); c++) \ + { \ + double percentError = 0.0; \ + ASSERT_TRUE(grid_map::compareRelative( (A).coeff(r,c), (B).coeff(r,c), PERCENT_TOLERANCE, &percentError)) \ + << MSG << "\nComparing:\n" \ + << #A << "(" << r << "," << c << ") = " << (A).coeff(r,c) << std::endl \ + << #B << "(" << r << "," << c << ") = " << (B).coeff(r,c) << std::endl \ + << "Error was " << percentError << "% > " << PERCENT_TOLERANCE << "%\n" \ + << "\nMatrix " << #A << ":\n" << A << "\nand matrix " << #B << "\n" << B; \ + } \ + } + +} // namespace diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/CircleIterator.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/CircleIterator.hpp new file mode 100644 index 00000000000..b66e2361202 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/CircleIterator.hpp @@ -0,0 +1,107 @@ +/* + * CircleIterator.hpp + * + * Created on: Nov 13, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#pragma once + +#include "grid_map_core/GridMap.hpp" +#include "grid_map_core/iterators/SubmapIterator.hpp" + +#include + +#include + +namespace grid_map { + +/*! + * Iterator class to iterate through a circular area of the map. + */ +class CircleIterator +{ +public: + + /*! + * Constructor. + * @param gridMap the grid map to iterate on. + * @param center the position of the circle center. + * @param radius the radius of the circle. + */ + CircleIterator(const GridMap& gridMap, const Position& center, const double radius); + + /*! + * Assignment operator. + * @param iterator the iterator to copy data from. + * @return a reference to *this. + */ + CircleIterator& operator =(const CircleIterator& other); + + /*! + * Compare to another iterator. + * @return whether the current iterator points to a different address than the other one. + */ + bool operator !=(const CircleIterator& other) const; + + /*! + * Dereference the iterator with const. + * @return the value to which the iterator is pointing. + */ + const Index& operator *() const; + + /*! + * Increase the iterator to the next element. + * @return a reference to the updated iterator. + */ + CircleIterator& operator ++(); + + /*! + * Indicates if iterator is past end. + * @return true if iterator is out of scope, false if end has not been reached. + */ + bool isPastEnd() const; + +private: + + /*! + * Check if current index is inside the circle. + * @return true if inside, false otherwise. + */ + bool isInside() const; + + /*! + * Finds the submap that fully contains the circle and returns the parameters. + * @param[in] center the position of the circle center. + * @param[in] radius the radius of the circle. + * @param[out] startIndex the start index of the submap. + * @param[out] bufferSize the buffer size of the submap. + */ + void findSubmapParameters(const Position& center, const double radius, + Index& startIndex, Size& bufferSize) const; + + //! Position of the circle center; + Position center_; + + //! Radius of the circle. + double radius_; + + //! Square of the radius (for efficiency). + double radiusSquare_; + + //! Grid submap iterator. // TODO Think of using unique_ptr instead. + std::shared_ptr internalIterator_; + + //! Map information needed to get position from iterator. + Length mapLength_; + Position mapPosition_; + double resolution_; + Size bufferSize_; + Index bufferStartIndex_; + + public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW +}; + +} /* namespace */ diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/EllipseIterator.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/EllipseIterator.hpp new file mode 100644 index 00000000000..026b0c68f2f --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/EllipseIterator.hpp @@ -0,0 +1,116 @@ +/* + * EllipseIterator.hpp + * + * Created on: Dec 2, 2015 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#pragma once + +#include "grid_map_core/GridMap.hpp" +#include "grid_map_core/iterators/SubmapIterator.hpp" + +#include + +#include + +namespace grid_map { + +/*! + * Iterator class to iterate through a ellipsoid area of the map. + * The main axis of the ellipse are aligned with the map frame. + */ +class EllipseIterator +{ +public: + + /*! + * Constructor. + * @param gridMap the grid map to iterate on. + * @param center the position of the ellipse center. + * @param length the length of the main axis. + * @param angle the rotation angle of the ellipse (in [rad]). + */ + EllipseIterator(const GridMap& gridMap, const Position& center, const Length& length, const double rotation = 0.0); + + /*! + * Assignment operator. + * @param iterator the iterator to copy data from. + * @return a reference to *this. + */ + EllipseIterator& operator =(const EllipseIterator& other); + + /*! + * Compare to another iterator. + * @return whether the current iterator points to a different address than the other one. + */ + bool operator !=(const EllipseIterator& other) const; + + /*! + * Dereference the iterator with const. + * @return the value to which the iterator is pointing. + */ + const Index& operator *() const; + + /*! + * Increase the iterator to the next element. + * @return a reference to the updated iterator. + */ + EllipseIterator& operator ++(); + + /*! + * Indicates if iterator is past end. + * @return true if iterator is out of scope, false if end has not been reached. + */ + bool isPastEnd() const; + + /*! + * Returns the size of the submap covered by the iterator. + * @return the size of the submap covered by the iterator. + */ + const Size& getSubmapSize() const; + +private: + + /*! + * Check if current index is inside the ellipse. + * @return true if inside, false otherwise. + */ + bool isInside() const; + + /*! + * Finds the submap that fully contains the ellipse and returns the parameters. + * @param[in] center the position of the ellipse center. + * @param[in] length the length of the main axis. + * @param[in] angle the rotation angle of the ellipse (in [rad]). + * @param[out] startIndex the start index of the submap. + * @param[out] bufferSize the buffer size of the submap. + */ + void findSubmapParameters(const Position& center, const Length& length, const double rotation, + Index& startIndex, Size& bufferSize) const; + + //! Position of the circle center; + Position center_; + + //! Square length of the semi axis. + Eigen::Array2d semiAxisSquare_; + + //! Sine and cosine values of the rotation angle as transformation matrix. + Eigen::Matrix2d transformMatrix_; + + //! Grid submap iterator. // TODO Think of using unique_ptr instead. + std::shared_ptr internalIterator_; + + //! Map information needed to get position from iterator. + Length mapLength_; + Position mapPosition_; + double resolution_; + Size bufferSize_; + Index bufferStartIndex_; + + public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW +}; + +} /* namespace */ diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/GridMapIterator.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/GridMapIterator.hpp new file mode 100644 index 00000000000..65c7c135adf --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/GridMapIterator.hpp @@ -0,0 +1,110 @@ +/* + * GridMapIterator.hpp + * + * Created on: Sep 22, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#pragma once + +#include "grid_map_core/GridMap.hpp" + +// Eigen +#include + +namespace grid_map { + +/*! + * Iterator class to iterate trough the entire grid map. + */ +class GridMapIterator +{ +public: + + /*! + * Constructor. + * @param gridMap the grid map to iterate on. + */ + GridMapIterator(const grid_map::GridMap &gridMap); + + /*! + * Copy constructor. + * @param other the object to copy. + */ + GridMapIterator(const GridMapIterator* other); + + /*! + * Assignment operator. + * @param iterator the iterator to copy data from. + * @return a reference to *this. + */ + GridMapIterator& operator =(const GridMapIterator& other); + + /*! + * Compare to another iterator. + * @return whether the current iterator points to a different address than the other one. + */ + bool operator !=(const GridMapIterator& other) const; + + /*! + * Dereference the iterator to return the regular index (2-dim.) of the cell + * to which the iterator is pointing at. + * @return the regular index (2-dim.) of the cell on which the iterator is pointing. + */ + const Index operator *() const; + + /*! + * Returns the the linear (1-dim.) index of the cell the iterator is pointing at. + * Note: Use this access for improved efficiency when working with large maps. + * Example: See `runGridMapIteratorVersion3()` of `grid_map_demos/src/iterator_benchmark.cpp`. + * @return the 1d linear index. + */ + const size_t& getLinearIndex() const; + + /*! + * Retrieve the index as unwrapped index, i.e., as the corresponding index of a + * grid map with no circular buffer offset. + */ + const Index getUnwrappedIndex() const; + + /*! + * Increase the iterator to the next element. + * @return a reference to the updated iterator. + */ + virtual GridMapIterator& operator ++(); + + /*! + * Return the end iterator + * @return the end iterator (useful when performing normal iterator processing with ++). + */ + GridMapIterator end() const; + + /*! + * Indicates if iterator is past end. + * @return true if iterator is out of scope, false if end has not been reached. + */ + bool isPastEnd() const; + +protected: + + //! Size of the buffer. + Size size_; + + //! Start index of the circular buffer. + Index startIndex_; + + //! Linear size of the data. + size_t linearSize_; + + //! Linear index. + size_t linearIndex_; + + //! Is iterator out of scope. + bool isPastEnd_; + + public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW +}; + +} /* namespace */ diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/LineIterator.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/LineIterator.hpp new file mode 100644 index 00000000000..d758a8b7ace --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/LineIterator.hpp @@ -0,0 +1,131 @@ +/* + * LineIterator.hpp + * + * Created on: Nov 13, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#pragma once + +#include "grid_map_core/GridMap.hpp" +#include "grid_map_core/iterators/SubmapIterator.hpp" + +#include + +namespace grid_map { + +/*! + * Iterator class to iterate over a line in the map. + * Based on Bresenham Line Drawing algorithm. + */ +class LineIterator +{ +public: + + /*! + * Constructor. + * @param gridMap the grid map to iterate on. + * @param start the starting point of the line. + * @param end the ending point of the line. + */ + LineIterator(const grid_map::GridMap& gridMap, const Position& start, const Position& end); + + /*! + * Constructor. + * @param gridMap the grid map to iterate on. + * @param start the starting index of the line. + * @param end the ending index of the line. + */ + LineIterator(const grid_map::GridMap& gridMap, const Index& start, const Index& end); + + /*! + * Assignment operator. + * @param iterator the iterator to copy data from. + * @return a reference to *this. + */ + LineIterator& operator =(const LineIterator& other); + + /*! + * Compare to another iterator. + * @return whether the current iterator points to a different address than the other one. + */ + bool operator !=(const LineIterator& other) const; + + /*! + * Dereference the iterator with const. + * @return the value to which the iterator is pointing. + */ + const Index& operator *() const; + + /*! + * Increase the iterator to the next element. + * @return a reference to the updated iterator. + */ + LineIterator& operator ++(); + + /*! + * Indicates if iterator is past end. + * @return true if iterator is out of scope, false if end has not been reached. + */ + bool isPastEnd() const; + +private: + + + /*! + * Construct function. + * @param gridMap the grid map to iterate on. + * @param start the starting index of the line. + * @param end the ending index of the line. + * @return true if successful, false otherwise. + */ + bool initialize(const grid_map::GridMap& gridMap, const Index& start, const Index& end); + + /*! + * Computes the parameters requires for the line drawing algorithm. + */ + void initializeIterationParameters(); + + /*! + * Finds the index of a position on a line within the limits of the map. + * @param[in] gridMap the grid map that defines the map boundaries. + * @param[in] start the position that will be limited to the map range. + * @param[in] end the ending position of the line. + * @param[out] index the index of the moved start position. + * @return true if successful, false otherwise. + */ + bool getIndexLimitedToMapRange(const grid_map::GridMap& gridMap, const Position& start, + const Position& end, Index& index); + + //! Current index. + Index index_; + + //! Starting index of the line. + Index start_; + + //! Ending index of the line. + Index end_; + + //! Current cell number. + unsigned int iCell_; + + //! Number of cells in the line. + unsigned int nCells_; + + //! Helper variables for Bresenham Line Drawing algorithm. + Size increment1_, increment2_; + int denominator_, numerator_, numeratorAdd_; + + //! Map information needed to get position from iterator. + Length mapLength_; + Position mapPosition_; + double resolution_; + Size bufferSize_; + Index bufferStartIndex_; + + public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW +}; + +} /* namespace */ diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/PolygonIterator.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/PolygonIterator.hpp new file mode 100644 index 00000000000..221040ca87e --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/PolygonIterator.hpp @@ -0,0 +1,97 @@ +/* + * PolygonIterator.hpp + * + * Created on: Sep 19, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#pragma once + +#include "grid_map_core/GridMap.hpp" +#include "grid_map_core/Polygon.hpp" +#include "grid_map_core/iterators/SubmapIterator.hpp" + +#include + +namespace grid_map { + +/*! + * Iterator class to iterate through a polygonal area of the map. + */ +class PolygonIterator +{ +public: + + /*! + * Constructor. + * @param gridMap the grid map to iterate on. + * @param polygon the polygonal area to iterate on. + */ + PolygonIterator(const grid_map::GridMap& gridMap, const grid_map::Polygon& polygon); + + /*! + * Assignment operator. + * @param iterator the iterator to copy data from. + * @return a reference to *this. + */ + PolygonIterator& operator =(const PolygonIterator& other); + + /*! + * Compare to another iterator. + * @return whether the current iterator points to a different address than the other one. + */ + bool operator !=(const PolygonIterator& other) const; + + /*! + * Dereference the iterator with const. + * @return the value to which the iterator is pointing. + */ + const Index& operator *() const; + + /*! + * Increase the iterator to the next element. + * @return a reference to the updated iterator. + */ + PolygonIterator& operator ++(); + + /*! + * Indicates if iterator is past end. + * @return true if iterator is out of scope, false if end has not been reached. + */ + bool isPastEnd() const; + +private: + + /*! + * Check if current index is inside polygon. + * @return true if inside, false otherwise. + */ + bool isInside() const; + + /*! + * Finds the submap that fully contains the polygon and returns the parameters. + * @param[in] polygon the polygon to get the submap for. + * @param[out] startIndex the start index of the submap. + * @param[out] bufferSize the buffer size of the submap. + */ + void findSubmapParameters(const grid_map::Polygon& polygon, Index& startIndex,Size& bufferSize) const; + + //! Polygon to iterate on. + grid_map::Polygon polygon_; + + //! Grid submap iterator. + std::shared_ptr internalIterator_; + + //! Map information needed to get position from iterator. + Length mapLength_; + Position mapPosition_; + double resolution_; + Size bufferSize_; + Index bufferStartIndex_; + + public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW +}; + +} /* namespace */ diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/SlidingWindowIterator.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/SlidingWindowIterator.hpp new file mode 100644 index 00000000000..68afe036cda --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/SlidingWindowIterator.hpp @@ -0,0 +1,94 @@ +/* + * SlidingWindowIterator.hpp + * + * Created on: Aug 17, 2017 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Robotic Systems Lab + */ + +#pragma once + +#include "grid_map_core/GridMap.hpp" + +#include "grid_map_core/iterators/GridMapIterator.hpp" + +#include + +namespace grid_map { + +/*! + * Iterator class to iterate trough the entire grid map with access to a layer's + * data through a sliding window. + * Note: This iterator only works with maps with zero start index. + */ +class SlidingWindowIterator : public GridMapIterator +{ +public: + + enum class EdgeHandling { + INSIDE, // Only visit indices that are surrounded by a full window. + CROP, // Crop data matrix with missing cells at edges. + EMPTY, // Fill in missing edges with empty cells (NAN-value). + MEAN // Fill in missing edges with MEAN of valid values. + }; + + /*! + * Constructor. + * @param gridMap the grid map to iterate on. + * @param layer the layer on which the data is accessed. + * @param edgeHandling the method to handle edges of the map. + * @param windowSize the size of the moving window in number of cells (has to be an odd number!). + */ + SlidingWindowIterator(const GridMap& gridMap, const std::string& layer, + const EdgeHandling& edgeHandling = EdgeHandling::CROP, + const size_t windowSize = 3); + + /*! + * Copy constructor. + * @param other the object to copy. + */ + SlidingWindowIterator(const SlidingWindowIterator* other); + + /*! + * Set the side length of the moving window (in m). + * @param gridMap the grid map to iterate on. + * @param windowLength the side length of the window (in m). + */ + void setWindowLength(const GridMap& gridMap, const double windowLength); + + /*! + * Increase the iterator to the next element. + * @return a reference to the updated iterator. + */ + SlidingWindowIterator& operator ++(); + + /*! + * Return the data of the sliding window. + * @return the data of the sliding window. + */ + const Matrix getData() const; + +private: + //! Setup members. + void setup(const GridMap& gridMap); + + //! Check if data for current index is fully inside map. + bool dataInsideMap() const; + + //! Edge handling method. + const EdgeHandling edgeHandling_; + + //! Data. + const Matrix& data_; + + //! Size of the sliding window. + size_t windowSize_; + + //! Size of the border of the window around the center cell. + size_t windowMargin_; + + public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW +}; + +} /* namespace */ diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/SpiralIterator.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/SpiralIterator.hpp new file mode 100644 index 00000000000..73933ff660f --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/SpiralIterator.hpp @@ -0,0 +1,115 @@ +/* + * SpiralIterator.hpp + * + * Created on: Jul 7, 2015 + * Author: Martin Wermelinger + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#pragma once + +#include "grid_map_core/GridMap.hpp" + +#include +#include +#include + +namespace grid_map { + +/*! + * Iterator class to iterate through a circular area of the map with a spiral. + */ +class SpiralIterator +{ +public: + + /*! + * Constructor. + * @param gridMap the grid map to iterate on. + * @param center the position of the circle center. + * @param radius the radius of the circle. + */ + SpiralIterator(const grid_map::GridMap& gridMap, const Eigen::Vector2d& center, const double radius); + + /*! + * Assignment operator. + * @param iterator the iterator to copy data from. + * @return a reference to *this. + */ + SpiralIterator& operator =(const SpiralIterator& other); + + /*! + * Compare to another iterator. + * @return whether the current iterator points to a different address than the other one. + */ + bool operator !=(const SpiralIterator& other) const; + + /*! + * Dereference the iterator with const. + * @return the value to which the iterator is pointing. + */ + const Eigen::Array2i& operator *() const; + + /*! + * Increase the iterator to the next element. + * @return a reference to the updated iterator. + */ + SpiralIterator& operator ++(); + + /*! + * Indicates if iterator is past end. + * @return true if iterator is out of scope, false if end has not been reached. + */ + bool isPastEnd() const; + + /*! + * Gets the radius of current ring that is iterated through. + * @return radius of the current ring that is used for iteration. + */ + double getCurrentRadius() const; + +private: + + /*! + * Check if index is inside the circle. + * @return true if inside, false otherwise. + */ + bool isInside(const Index index) const; + + /*! + * Uses the current distance to get the points of a ring + * around the center. + */ + void generateRing(); + + int signum(const int val) { + return (0 < val) - (val < 0); + } + + //! Position of the circle center; + Position center_; + Index indexCenter_; + + + //! Radius of the circle. + double radius_; + + //! Square of the radius for efficiency. + double radiusSquare_; + + //! Number of rings into the circle is divided. + unsigned int nRings_; + unsigned int distance_; + std::vector pointsRing_; + + //! Map information needed to get position from iterator. + Length mapLength_; + Position mapPosition_; + double resolution_; + Size bufferSize_; + + public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW +}; + +} /* namespace */ diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/SubmapIterator.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/SubmapIterator.hpp new file mode 100644 index 00000000000..51ae1493db2 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/SubmapIterator.hpp @@ -0,0 +1,125 @@ +/* + * SubmapIterator.hpp + * + * Created on: Sep 12, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#pragma once + +#include "grid_map_core/GridMap.hpp" +#include "grid_map_core/SubmapGeometry.hpp" +#include "grid_map_core/BufferRegion.hpp" + +#include + +namespace grid_map { + +/*! + * Iterator class to iterate through a rectangular part of the map (submap). + * Before using this iterator, make sure that the requested submap is + * actually contained in the grid map. + */ +class SubmapIterator +{ +public: + + /*! + * Constructor. + * @param submap the submap geometry to iterate over. + */ + SubmapIterator(const grid_map::SubmapGeometry& submap); + + /*! + * Constructor. + * @param submap the buffer region of a grid map to iterate over. + */ + SubmapIterator(const grid_map::GridMap& gridMap, const grid_map::BufferRegion& bufferRegion); + + /*! + * Constructor. + * @param gridMap the grid map to iterate on. + * @param submapStartIndex the start index of the submap, typically top-left index. + * @param submapSize the size of the submap to iterate on. + */ + SubmapIterator(const grid_map::GridMap& gridMap, const Index& submapStartIndex, + const Size& submapSize); + + /*! + * Copy constructor. + * @param other the object to copy. + */ + SubmapIterator(const SubmapIterator* other); + + /*! + * Assignment operator. + * @param iterator the iterator to copy data from. + * @return a reference to *this. + */ + SubmapIterator& operator =(const SubmapIterator& other); + + /*! + * Compare to another iterator. + * @return whether the current iterator points to a different address than the other one. + */ + bool operator !=(const SubmapIterator& other) const; + + /*! + * Dereference the iterator with const. + * @return the value to which the iterator is pointing. + */ + const Index& operator *() const; + + /*! + * Get the current index in the submap. + * @return the current index in the submap. + */ + const Index& getSubmapIndex() const; + + /*! + * Increase the iterator to the next element. + * @return a reference to the updated iterator. + */ + SubmapIterator& operator ++(); + + /*! + * Indicates if iterator is past end. + * @return true if iterator is out of scope, false if end has not been reached. + */ + bool isPastEnd() const; + + /*! + * Returns the size of the submap covered by the iterator. + * @return the size of the submap covered by the iterator. + */ + const Size& getSubmapSize() const; + +private: + + //! Size of the buffer. + Size size_; + + //! Start index of the circular buffer. + Index startIndex_; + + //! Current index. + Index index_; + + //! Submap buffer size. + Size submapSize_; + + //! Top left index of the submap. + Index submapStartIndex_; + + //! Current index in the submap. + Index submapIndex_; + + //! Is iterator out of scope. + bool isPastEnd_; + + public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW +}; + +} /* namespace */ diff --git a/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/iterators.hpp b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/iterators.hpp new file mode 100644 index 00000000000..e9144834178 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/include/grid_map_core/iterators/iterators.hpp @@ -0,0 +1,18 @@ +/* + * iterators.hpp + * + * Created on: Sep 22, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#pragma once + +#include "grid_map_core/iterators/GridMapIterator.hpp" +#include "grid_map_core/iterators/SubmapIterator.hpp" +#include "grid_map_core/iterators/CircleIterator.hpp" +#include "grid_map_core/iterators/EllipseIterator.hpp" +#include "grid_map_core/iterators/SpiralIterator.hpp" +#include "grid_map_core/iterators/LineIterator.hpp" +#include "grid_map_core/iterators/PolygonIterator.hpp" +#include "grid_map_core/iterators/SlidingWindowIterator.hpp" diff --git a/ros/src/vendor/grid_map/grid_map_core/package.xml b/ros/src/vendor/grid_map/grid_map_core/package.xml new file mode 100644 index 00000000000..541c98436ed --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/package.xml @@ -0,0 +1,13 @@ + + + grid_map_core + 1.6.0 + Universal grid map library to manage two-dimensional grid maps with multiple data layers. + Péter Fankhauser + BSD + http://github.com/ethz-asl/grid_map + http://github.com/ethz-asl/grid_map/issues + Péter Fankhauser + catkin + eigen + diff --git a/ros/src/vendor/grid_map/grid_map_core/src/BufferRegion.cpp b/ros/src/vendor/grid_map/grid_map_core/src/BufferRegion.cpp new file mode 100644 index 00000000000..411d8805173 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/src/BufferRegion.cpp @@ -0,0 +1,62 @@ +/* + * BufferRegion.cpp + * + * Created on: Aug 19, 2015 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ +#include + +namespace grid_map { + +BufferRegion::BufferRegion() : + staretIndex_(Index::Zero()), + size_(Size::Zero()), + quadrant_(BufferRegion::Quadrant::Undefined) +{ +} + +BufferRegion::BufferRegion(const Index& index, const Size& size, const BufferRegion::Quadrant& quadrant) : + staretIndex_(index), + size_(size), + quadrant_(quadrant) +{ +} + +BufferRegion::~BufferRegion() +{ +} + +const Index& BufferRegion::getStartIndex() const +{ + return staretIndex_; +} + +void BufferRegion::setStartIndex(const Index& staretIndex) +{ + staretIndex_ = staretIndex; +} + +const Size& BufferRegion::getSize() const +{ + return size_; +} + +void BufferRegion::setSize(const Size& size) +{ + size_ = size; +} + +BufferRegion::Quadrant BufferRegion::getQuadrant() const +{ + return quadrant_; +} + +void BufferRegion::setQuadrant(BufferRegion::Quadrant type) +{ + quadrant_ = type; +} + +} /* namespace grid_map */ + + diff --git a/ros/src/vendor/grid_map/grid_map_core/src/GridMap.cpp b/ros/src/vendor/grid_map/grid_map_core/src/GridMap.cpp new file mode 100644 index 00000000000..a5f4e3594f4 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/src/GridMap.cpp @@ -0,0 +1,721 @@ +/* + * GridMap.cpp + * + * Created on: Jul 14, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/GridMap.hpp" +#include "grid_map_core/GridMapMath.hpp" +#include "grid_map_core/SubmapGeometry.hpp" +#include "grid_map_core/iterators/GridMapIterator.hpp" + +#include + +#include +#include +#include +#include +#include + +using namespace std; +using namespace grid_map; + +namespace grid_map { + +GridMap::GridMap(const std::vector& layers) +{ + position_.setZero(); + length_.setZero(); + resolution_ = 0.0; + size_.setZero(); + startIndex_.setZero(); + timestamp_ = 0; + layers_ = layers; + + for (auto& layer : layers_) { + data_.insert(std::pair(layer, Matrix())); + } +} + +GridMap::GridMap() : + GridMap(std::vector()) +{ +} + +GridMap::~GridMap() +{ +} + +void GridMap::setGeometry(const Length& length, const double resolution, + const Position& position) +{ + assert(length(0) > 0.0); + assert(length(1) > 0.0); + assert(resolution > 0.0); + + Size size; + size(0) = static_cast(round(length(0) / resolution)); // There is no round() function in Eigen. + size(1) = static_cast(round(length(1) / resolution)); + resize(size); + clearAll(); + + resolution_ = resolution; + length_ = (size_.cast() * resolution_).matrix(); + position_ = position; + startIndex_.setZero(); + + return; +} + +void GridMap::setGeometry(const SubmapGeometry& geometry) +{ + setGeometry(geometry.getLength(), geometry.getResolution(), geometry.getPosition()); +} + +void GridMap::setBasicLayers(const std::vector& basicLayers) +{ + basicLayers_ = basicLayers; +} + +const std::vector& GridMap::getBasicLayers() const +{ + return basicLayers_; +} + +bool GridMap::hasBasicLayers() const +{ + return basicLayers_.size() > 0; +} + +bool GridMap::hasSameLayers(const GridMap& other) const +{ + for (const auto& layer : layers_) { + if (!other.exists(layer)) return false; + } + return true; +} + +void GridMap::add(const std::string& layer, const double value) +{ + add(layer, Matrix::Constant(size_(0), size_(1), value)); +} + +void GridMap::add(const std::string& layer, const Matrix& data) +{ + assert(size_(0) == data.rows()); + assert(size_(1) == data.cols()); + + if (exists(layer)) { + // Type exists already, overwrite its data. + data_.at(layer) = data; + } else { + // Type does not exist yet, add type and data. + data_.insert(std::pair(layer, data)); + layers_.push_back(layer); + } +} + +bool GridMap::exists(const std::string& layer) const +{ + return !(data_.find(layer) == data_.end()); +} + +const Matrix& GridMap::get(const std::string& layer) const +{ + try { + return data_.at(layer); + } catch (const std::out_of_range& exception) { + throw std::out_of_range("GridMap::get(...) : No map layer '" + layer + "' available."); + } +} + +Matrix& GridMap::get(const std::string& layer) +{ + try { + return data_.at(layer); + } catch (const std::out_of_range& exception) { + throw std::out_of_range("GridMap::get(...) : No map layer of type '" + layer + "' available."); + } +} + +const Matrix& GridMap::operator [](const std::string& layer) const +{ + return get(layer); +} + +Matrix& GridMap::operator [](const std::string& layer) +{ + return get(layer); +} + +bool GridMap::erase(const std::string& layer) +{ + const auto dataIterator = data_.find(layer); + if (dataIterator == data_.end()) return false; + data_.erase(dataIterator); + + const auto layerIterator = std::find(layers_.begin(), layers_.end(), layer); + if (layerIterator == layers_.end()) return false; + layers_.erase(layerIterator); + + const auto basicLayerIterator = std::find(basicLayers_.begin(), basicLayers_.end(), layer); + if (basicLayerIterator != basicLayers_.end()) basicLayers_.erase(basicLayerIterator); + + return true; +} + +const std::vector& GridMap::getLayers() const +{ + return layers_; +} + +float& GridMap::atPosition(const std::string& layer, const Position& position) +{ + Index index; + if (getIndex(position, index)) { + return at(layer, index); + } + throw std::out_of_range("GridMap::atPosition(...) : Position is out of range."); +} + +float GridMap::atPosition(const std::string& layer, const Position& position, InterpolationMethods interpolationMethod) const +{ + switch (interpolationMethod) { + case InterpolationMethods::INTER_LINEAR: + { + float value; + if (atPositionLinearInterpolated(layer, position, value)) + return value; + else + interpolationMethod = InterpolationMethods::INTER_NEAREST; + } + case InterpolationMethods::INTER_NEAREST: + { + Index index; + if (getIndex(position, index)) { + return at(layer, index); + } + else + throw std::out_of_range("GridMap::atPosition(...) : Position is out of range."); + break; + } + default: + throw std::runtime_error("GridMap::atPosition(...) : Specified interpolation method not implemented."); + } +} + +float& GridMap::at(const std::string& layer, const Index& index) +{ + try { + return data_.at(layer)(index(0), index(1)); + } catch (const std::out_of_range& exception) { + throw std::out_of_range("GridMap::at(...) : No map layer '" + layer + "' available."); + } +} + +float GridMap::at(const std::string& layer, const Index& index) const +{ + try { + return data_.at(layer)(index(0), index(1)); + } catch (const std::out_of_range& exception) { + throw std::out_of_range("GridMap::at(...) : No map layer '" + layer + "' available."); + } +} + +bool GridMap::getIndex(const Position& position, Index& index) const +{ + return getIndexFromPosition(index, position, length_, position_, resolution_, size_, startIndex_); +} + +bool GridMap::getPosition(const Index& index, Position& position) const +{ + return getPositionFromIndex(position, index, length_, position_, resolution_, size_, startIndex_); +} + +bool GridMap::isInside(const Position& position) const +{ + return checkIfPositionWithinMap(position, length_, position_); +} + +bool GridMap::isValid(const Index& index) const +{ + return isValid(index, basicLayers_); +} + +bool GridMap::isValid(const Index& index, const std::string& layer) const +{ + if (!isfinite(at(layer, index))) return false; + return true; +} + +bool GridMap::isValid(const Index& index, const std::vector& layers) const +{ + if (layers.empty()) return false; + for (auto& layer : layers) { + if (!isfinite(at(layer, index))) return false; + } + return true; +} + +bool GridMap::getPosition3(const std::string& layer, const Index& index, + Position3& position) const +{ + if (!isValid(index, layer)) return false; + Position position2d; + getPosition(index, position2d); + position.head(2) = position2d; + position.z() = at(layer, index); + return true; +} + +bool GridMap::getVector(const std::string& layerPrefix, const Index& index, + Eigen::Vector3d& vector) const +{ + std::vector layers; + layers.push_back(layerPrefix + "x"); + layers.push_back(layerPrefix + "y"); + layers.push_back(layerPrefix + "z"); + if (!isValid(index, layers)) return false; + for (size_t i = 0; i < 3; ++i) { + vector(i) = at(layers[i], index); + } + return true; +} + +GridMap GridMap::getSubmap(const Position& position, const Length& length, + bool& isSuccess) const +{ + Index index; + return getSubmap(position, length, index, isSuccess); +} + +GridMap GridMap::getSubmap(const Position& position, const Length& length, + Index& indexInSubmap, bool& isSuccess) const +{ + // Submap the generate. + GridMap submap(layers_); + submap.setBasicLayers(basicLayers_); + submap.setTimestamp(timestamp_); + submap.setFrameId(frameId_); + + // Get submap geometric information. + SubmapGeometry submapInformation(*this, position, length, isSuccess); + if (isSuccess == false) return GridMap(layers_); + submap.setGeometry(submapInformation); + submap.startIndex_.setZero(); // Because of the way we copy the data below. + + // Copy data. + std::vector bufferRegions; + + if (!getBufferRegionsForSubmap(bufferRegions, submapInformation.getStartIndex(), + submap.getSize(), size_, startIndex_)) { + cout << "Cannot access submap of this size." << endl; + isSuccess = false; + return GridMap(layers_); + } + + for (const auto& data : data_) { + for (const auto& bufferRegion : bufferRegions) { + Index index = bufferRegion.getStartIndex(); + Size size = bufferRegion.getSize(); + + if (bufferRegion.getQuadrant() == BufferRegion::Quadrant::TopLeft) { + submap.data_[data.first].topLeftCorner(size(0), size(1)) = data.second.block(index(0), index(1), size(0), size(1)); + } else if (bufferRegion.getQuadrant() == BufferRegion::Quadrant::TopRight) { + submap.data_[data.first].topRightCorner(size(0), size(1)) = data.second.block(index(0), index(1), size(0), size(1)); + } else if (bufferRegion.getQuadrant() == BufferRegion::Quadrant::BottomLeft) { + submap.data_[data.first].bottomLeftCorner(size(0), size(1)) = data.second.block(index(0), index(1), size(0), size(1)); + } else if (bufferRegion.getQuadrant() == BufferRegion::Quadrant::BottomRight) { + submap.data_[data.first].bottomRightCorner(size(0), size(1)) = data.second.block(index(0), index(1), size(0), size(1)); + } + + } + } + + isSuccess = true; + return submap; +} + +void GridMap::setPosition(const Position& position) +{ + position_ = position; +} + +bool GridMap::move(const Position& position, std::vector& newRegions) +{ + Index indexShift; + Position positionShift = position - position_; + getIndexShiftFromPositionShift(indexShift, positionShift, resolution_); + Position alignedPositionShift; + getPositionShiftFromIndexShift(alignedPositionShift, indexShift, resolution_); + + // Delete fields that fall out of map (and become empty cells). + for (int i = 0; i < indexShift.size(); i++) { + if (indexShift(i) != 0) { + if (abs(indexShift(i)) >= getSize()(i)) { + // Entire map is dropped. + clearAll(); + newRegions.push_back(BufferRegion(Index(0, 0), getSize(), BufferRegion::Quadrant::Undefined)); + } else { + // Drop cells out of map. + int sign = (indexShift(i) > 0 ? 1 : -1); + int startIndex = startIndex_(i) - (sign < 0 ? 1 : 0); + int endIndex = startIndex - sign + indexShift(i); + int nCells = abs(indexShift(i)); + int index = (sign > 0 ? startIndex : endIndex); + wrapIndexToRange(index, getSize()(i)); + + if (index + nCells <= getSize()(i)) { + // One region to drop. + if (i == 0) { + clearRows(index, nCells); + newRegions.push_back(BufferRegion(Index(index, 0), Size(nCells, getSize()(1)), BufferRegion::Quadrant::Undefined)); + } else if (i == 1) { + clearCols(index, nCells); + newRegions.push_back(BufferRegion(Index(0, index), Size(getSize()(0), nCells), BufferRegion::Quadrant::Undefined)); + } + } else { + // Two regions to drop. + int firstIndex = index; + int firstNCells = getSize()(i) - firstIndex; + if (i == 0) { + clearRows(firstIndex, firstNCells); + newRegions.push_back(BufferRegion(Index(firstIndex, 0), Size(firstNCells, getSize()(1)), BufferRegion::Quadrant::Undefined)); + } else if (i == 1) { + clearCols(firstIndex, firstNCells); + newRegions.push_back(BufferRegion(Index(0, firstIndex), Size(getSize()(0), firstNCells), BufferRegion::Quadrant::Undefined)); + } + + int secondIndex = 0; + int secondNCells = nCells - firstNCells; + if (i == 0) { + clearRows(secondIndex, secondNCells); + newRegions.push_back(BufferRegion(Index(secondIndex, 0), Size(secondNCells, getSize()(1)), BufferRegion::Quadrant::Undefined)); + } else if (i == 1) { + clearCols(secondIndex, secondNCells); + newRegions.push_back(BufferRegion(Index(0, secondIndex), Size(getSize()(0), secondNCells), BufferRegion::Quadrant::Undefined)); + } + } + } + } + } + + // Update information. + startIndex_ += indexShift; + wrapIndexToRange(startIndex_, getSize()); + position_ += alignedPositionShift; + + // Check if map has been moved at all. + return (indexShift.any() != 0); +} + +bool GridMap::move(const Position& position) +{ + std::vector newRegions; + return move(position, newRegions); +} + +bool GridMap::addDataFrom(const GridMap& other, bool extendMap, bool overwriteData, + bool copyAllLayers, std::vector layers) +{ + // Set the layers to copy. + if (copyAllLayers) layers = other.getLayers(); + + // Resize map. + if (extendMap) extendToInclude(other); + + // Check if all layers to copy exist and add missing layers. + for (const auto& layer : layers) { + if (std::find(layers_.begin(), layers_.end(), layer) == layers_.end()) { + add(layer); + } + } + // Copy data. + for (GridMapIterator iterator(*this); !iterator.isPastEnd(); ++iterator) { + if (isValid(*iterator) && !overwriteData) continue; + Position position; + getPosition(*iterator, position); + Index index; + if (!other.isInside(position)) continue; + other.getIndex(position, index); + for (const auto& layer : layers) { + if (!other.isValid(index, layer)) continue; + at(layer, *iterator) = other.at(layer, index); + } + } + + return true; +} + +bool GridMap::extendToInclude(const GridMap& other) +{ + // Get dimension of maps. + Position topLeftCorner(position_.x() + length_.x() / 2.0, position_.y() + length_.y() / 2.0); + Position bottomRightCorner(position_.x() - length_.x() / 2.0, position_.y() - length_.y() / 2.0); + Position topLeftCornerOther(other.getPosition().x() + other.getLength().x() / 2.0, other.getPosition().y() + other.getLength().y() / 2.0); + Position bottomRightCornerOther(other.getPosition().x() - other.getLength().x() / 2.0, other.getPosition().y() - other.getLength().y() / 2.0); + // Check if map needs to be resized. + bool resizeMap = false; + Position extendedMapPosition = position_; + Length extendedMapLength = length_; + if (topLeftCornerOther.x() > topLeftCorner.x()) { + extendedMapPosition.x() += (topLeftCornerOther.x() - topLeftCorner.x()) / 2.0; + extendedMapLength.x() += topLeftCornerOther.x() - topLeftCorner.x(); + resizeMap = true; + } + if (topLeftCornerOther.y() > topLeftCorner.y()) { + extendedMapPosition.y() += (topLeftCornerOther.y() - topLeftCorner.y()) / 2.0; + extendedMapLength.y() += topLeftCornerOther.y() - topLeftCorner.y(); + resizeMap = true; + } + if (bottomRightCornerOther.x() < bottomRightCorner.x()) { + extendedMapPosition.x() -= (bottomRightCorner.x() - bottomRightCornerOther.x()) / 2.0; + extendedMapLength.x() += bottomRightCorner.x() - bottomRightCornerOther.x(); + resizeMap = true; + } + if (bottomRightCornerOther.y() < bottomRightCorner.y()) { + extendedMapPosition.y() -= (bottomRightCorner.y() - bottomRightCornerOther.y()) / 2.0; + extendedMapLength.y() += bottomRightCorner.y() - bottomRightCornerOther.y(); + resizeMap = true; + } + // Resize map and copy data to new map. + if (resizeMap) { + GridMap mapCopy = *this; + setGeometry(extendedMapLength, resolution_, extendedMapPosition); + // Align new map with old one. + Vector shift = position_ - mapCopy.getPosition(); + shift.x() = std::fmod(shift.x(), resolution_); + shift.y() = std::fmod(shift.y(), resolution_); + if (std::abs(shift.x()) < resolution_ / 2.0) { + position_.x() -= shift.x(); + } else { + position_.x() += resolution_ - shift.x(); + } + if (size_.x() % 2 != mapCopy.getSize().x() % 2) { + position_.x() += -std::copysign(resolution_ / 2.0, shift.x()); + } + if (std::abs(shift.y()) < resolution_ / 2.0) { + position_.y() -= shift.y(); + } else { + position_.y() += resolution_ - shift.y(); + } + if (size_.y() % 2 != mapCopy.getSize().y() % 2) { + position_.y() += -std::copysign(resolution_ / 2.0, shift.y()); + } + // Copy data. + for (GridMapIterator iterator(*this); !iterator.isPastEnd(); ++iterator) { + if (isValid(*iterator)) continue; + Position position; + getPosition(*iterator, position); + Index index; + if (!mapCopy.isInside(position)) continue; + mapCopy.getIndex(position, index); + for (const auto& layer : layers_) { + at(layer, *iterator) = mapCopy.at(layer, index); + } + } + } + return true; +} + +void GridMap::setTimestamp(const Time timestamp) +{ + timestamp_ = timestamp; +} + +Time GridMap::getTimestamp() const +{ + return timestamp_; +} + +void GridMap::resetTimestamp() +{ + timestamp_ = 0.0; +} + +void GridMap::setFrameId(const std::string& frameId) +{ + frameId_ = frameId; +} + +const std::string& GridMap::getFrameId() const +{ + return frameId_; +} + +const Length& GridMap::getLength() const +{ + return length_; +} + +const Position& GridMap::getPosition() const +{ + return position_; +} + +double GridMap::getResolution() const +{ + return resolution_; +} + +const Size& GridMap::getSize() const +{ + return size_; +} + +void GridMap::setStartIndex(const Index& startIndex) { + startIndex_ = startIndex; +} + +const Index& GridMap::getStartIndex() const +{ + return startIndex_; +} + +bool GridMap::isDefaultStartIndex() const +{ + return (startIndex_ == 0).all(); +} + +void GridMap::convertToDefaultStartIndex() +{ + if (isDefaultStartIndex()) return; + + std::vector bufferRegions; + if (!getBufferRegionsForSubmap(bufferRegions, startIndex_, size_, size_, startIndex_)) { + throw std::out_of_range("Cannot access submap of this size."); + } + + for (auto& data : data_) { + auto tempData(data.second); + for (const auto& bufferRegion : bufferRegions) { + Index index = bufferRegion.getStartIndex(); + Size size = bufferRegion.getSize(); + + if (bufferRegion.getQuadrant() == BufferRegion::Quadrant::TopLeft) { + tempData.topLeftCorner(size(0), size(1)) = data.second.block(index(0), index(1), size(0), size(1)); + } else if (bufferRegion.getQuadrant() == BufferRegion::Quadrant::TopRight) { + tempData.topRightCorner(size(0), size(1)) = data.second.block(index(0), index(1), size(0), size(1)); + } else if (bufferRegion.getQuadrant() == BufferRegion::Quadrant::BottomLeft) { + tempData.bottomLeftCorner(size(0), size(1)) = data.second.block(index(0), index(1), size(0), size(1)); + } else if (bufferRegion.getQuadrant() == BufferRegion::Quadrant::BottomRight) { + tempData.bottomRightCorner(size(0), size(1)) = data.second.block(index(0), index(1), size(0), size(1)); + } + } + data.second = tempData; + } + + startIndex_.setZero(); +} + +void GridMap::clear(const std::string& layer) +{ + try { + data_.at(layer).setConstant(NAN); + } catch (const std::out_of_range& exception) { + throw std::out_of_range("GridMap::clear(...) : No map layer '" + layer + "' available."); + } +} + +void GridMap::clearBasic() +{ + for (auto& layer : basicLayers_) { + clear(layer); + } +} + +void GridMap::clearAll() +{ + for (auto& data : data_) { + data.second.setConstant(NAN); + } +} + +void GridMap::clearRows(unsigned int index, unsigned int nRows) +{ + std::vector layersToClear; + if (basicLayers_.size() > 0) layersToClear = basicLayers_; + else layersToClear = layers_; + for (auto& layer : layersToClear) { + data_.at(layer).block(index, 0, nRows, getSize()(1)).setConstant(NAN); + } +} + +void GridMap::clearCols(unsigned int index, unsigned int nCols) +{ + std::vector layersToClear; + if (basicLayers_.size() > 0) layersToClear = basicLayers_; + else layersToClear = layers_; + for (auto& layer : layersToClear) { + data_.at(layer).block(0, index, getSize()(0), nCols).setConstant(NAN); + } +} + +bool GridMap::atPositionLinearInterpolated(const std::string& layer, const Position& position, + float& value) const +{ + Position point; + Index indices[4]; + bool idxTempDir; + size_t idxShift[4]; + + getIndex(position, indices[0]); + getPosition(indices[0], point); + + if (position.x() >= point.x()) { + indices[1] = indices[0] + Index(-1, 0); // Second point is above first point. + idxTempDir = true; + } else { + indices[1] = indices[0] + Index(+1, 0); + idxTempDir = false; + } + if (position.y() >= point.y()) { + indices[2] = indices[0] + Index(0, -1); // Third point is right of first point. + if(idxTempDir){ idxShift[0]=0; idxShift[1]=1; idxShift[2]=2; idxShift[3]=3; } + else { idxShift[0]=1; idxShift[1]=0; idxShift[2]=3; idxShift[3]=2; } + + + } else { + indices[2] = indices[0] + Index(0, +1); + if(idxTempDir){ idxShift[0]=2; idxShift[1]=3; idxShift[2]=0; idxShift[3]=1; } + else { idxShift[0]=3; idxShift[1]=2; idxShift[2]=1; idxShift[3]=0; } + } + indices[3].x() = indices[1].x(); + indices[3].y() = indices[2].y(); + + const Size& mapSize = getSize(); + const size_t bufferSize = mapSize(0) * mapSize(1); + const size_t startIndexLin = getLinearIndexFromIndex(startIndex_, mapSize); + const size_t endIndexLin = startIndexLin + bufferSize; + const auto& layerMat = operator[](layer); + float f[4]; + + for (size_t i = 0; i < 4; ++i) { + const size_t indexLin = getLinearIndexFromIndex(indices[idxShift[i]], mapSize); + if ((indexLin < startIndexLin) || (indexLin > endIndexLin)) return false; + f[i] = layerMat(indexLin); + } + + getPosition(indices[idxShift[0]], point); + const Position positionRed = ( position - point ) / resolution_; + const Position positionRedFlip = Position(1.,1.) - positionRed; + + value = f[0] * positionRedFlip.x() * positionRedFlip.y() + + f[1] * positionRed.x() * positionRedFlip.y() + + f[2] * positionRedFlip.x() * positionRed.y() + + f[3] * positionRed.x() * positionRed.y(); + return true; +} + +void GridMap::resize(const Index& size) +{ + size_ = size; + for (auto& data : data_) { + data.second.resize(size_(0), size_(1)); + } +} + +} /* namespace */ + diff --git a/ros/src/vendor/grid_map/grid_map_core/src/GridMapMath.cpp b/ros/src/vendor/grid_map/grid_map_core/src/GridMapMath.cpp new file mode 100644 index 00000000000..7669bbfb672 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/src/GridMapMath.cpp @@ -0,0 +1,555 @@ +/* + * GridMapMath.cpp + * + * Created on: Dec 2, 2013 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/GridMapMath.hpp" + +// fabs +#include + +// Limits +#include + +using namespace std; + +namespace grid_map { + +namespace internal { + +/*! + * Gets the vector from the center of the map to the origin + * of the map data structure. + * @param[out] vectorToOrigin the vector from the center of the map the origin of the map data structure. + * @param[in] mapLength the lengths in x and y direction. + * @return true if successful. + */ +inline bool getVectorToOrigin(Vector& vectorToOrigin, const Length& mapLength) +{ + vectorToOrigin = (0.5 * mapLength).matrix(); + return true; +} + +/*! + * Gets the vector from the center of the map to the center + * of the first cell of the map data. + * @param[out] vectorToFirstCell the vector from the center of the cell to the center of the map. + * @param[in] mapLength the lengths in x and y direction. + * @param[in] resolution the resolution of the map. + * @return true if successful. + */ +inline bool getVectorToFirstCell(Vector& vectorToFirstCell, + const Length& mapLength, const double& resolution) +{ + Vector vectorToOrigin; + getVectorToOrigin(vectorToOrigin, mapLength); + + // Vector to center of cell. + vectorToFirstCell = (vectorToOrigin.array() - 0.5 * resolution).matrix(); + return true; +} + +inline Eigen::Matrix2i getBufferOrderToMapFrameTransformation() +{ + return -Eigen::Matrix2i::Identity(); +} + +inline Eigen::Matrix2i getMapFrameToBufferOrderTransformation() +{ + return getBufferOrderToMapFrameTransformation().transpose(); +} + +inline bool checkIfStartIndexAtDefaultPosition(const Index& bufferStartIndex) +{ + return ((bufferStartIndex == 0).all()); +} + +inline Vector getIndexVectorFromIndex( + const Index& index, + const Size& bufferSize, + const Index& bufferStartIndex) +{ + Index unwrappedIndex; + unwrappedIndex = getIndexFromBufferIndex(index, bufferSize, bufferStartIndex); + return (getBufferOrderToMapFrameTransformation() * unwrappedIndex.matrix()).cast(); +} + +inline Index getIndexFromIndexVector( + const Vector& indexVector, + const Size& bufferSize, + const Index& bufferStartIndex) +{ + Index index = (getMapFrameToBufferOrderTransformation() * indexVector.cast()).array(); + return getBufferIndexFromIndex(index, bufferSize, bufferStartIndex); +} + +inline BufferRegion::Quadrant getQuadrant(const Index& index, const Index& bufferStartIndex) +{ + if (index[0] >= bufferStartIndex[0] && index[1] >= bufferStartIndex[1]) return BufferRegion::Quadrant::TopLeft; + if (index[0] >= bufferStartIndex[0] && index[1] < bufferStartIndex[1]) return BufferRegion::Quadrant::TopRight; + if (index[0] < bufferStartIndex[0] && index[1] >= bufferStartIndex[1]) return BufferRegion::Quadrant::BottomLeft; + if (index[0] < bufferStartIndex[0] && index[1] < bufferStartIndex[1]) return BufferRegion::Quadrant::BottomRight; + return BufferRegion::Quadrant::Undefined; +} + +} // namespace + +using namespace internal; + +bool getPositionFromIndex(Position& position, + const Index& index, + const Length& mapLength, + const Position& mapPosition, + const double& resolution, + const Size& bufferSize, + const Index& bufferStartIndex) +{ + if (!checkIfIndexInRange(index, bufferSize)) return false; + Vector offset; + getVectorToFirstCell(offset, mapLength, resolution); + position = mapPosition + offset + resolution * getIndexVectorFromIndex(index, bufferSize, bufferStartIndex); + return true; +} + +bool getIndexFromPosition(Index& index, + const Position& position, + const Length& mapLength, + const Position& mapPosition, + const double& resolution, + const Size& bufferSize, + const Index& bufferStartIndex) +{ + Vector offset; + getVectorToOrigin(offset, mapLength); + Vector indexVector = ((position - offset - mapPosition).array() / resolution).matrix(); + index = getIndexFromIndexVector(indexVector, bufferSize, bufferStartIndex); + if (!checkIfPositionWithinMap(position, mapLength, mapPosition)) return false; + return true; +} + +bool checkIfPositionWithinMap(const Position& position, + const Length& mapLength, + const Position& mapPosition) +{ + Vector offset; + getVectorToOrigin(offset, mapLength); + Position positionTransformed = getMapFrameToBufferOrderTransformation().cast() * (position - mapPosition - offset); + + if (positionTransformed.x() >= 0.0 && positionTransformed.y() >= 0.0 + && positionTransformed.x() < mapLength(0) && positionTransformed.y() < mapLength(1)) { + return true; + } + return false; +} + +void getPositionOfDataStructureOrigin(const Position& position, + const Length& mapLength, + Position& positionOfOrigin) +{ + Vector vectorToOrigin; + getVectorToOrigin(vectorToOrigin, mapLength); + positionOfOrigin = position + vectorToOrigin; +} + +bool getIndexShiftFromPositionShift(Index& indexShift, + const Vector& positionShift, + const double& resolution) +{ + Vector indexShiftVectorTemp = (positionShift.array() / resolution).matrix(); + Eigen::Vector2i indexShiftVector; + + for (int i = 0; i < indexShiftVector.size(); i++) { + indexShiftVector[i] = static_cast(indexShiftVectorTemp[i] + 0.5 * (indexShiftVectorTemp[i] > 0 ? 1 : -1)); + } + + indexShift = (getMapFrameToBufferOrderTransformation() * indexShiftVector).array(); + return true; +} + +bool getPositionShiftFromIndexShift(Vector& positionShift, + const Index& indexShift, + const double& resolution) +{ + positionShift = (getBufferOrderToMapFrameTransformation() * indexShift.matrix()).cast() * resolution; + return true; +} + +bool checkIfIndexInRange(const Index& index, const Size& bufferSize) +{ + if (index[0] >= 0 && index[1] >= 0 && index[0] < bufferSize[0] && index[1] < bufferSize[1]) + { + return true; + } + return false; +} + +void boundIndexToRange(Index& index, const Size& bufferSize) +{ + for (int i = 0; i < index.size(); i++) { + boundIndexToRange(index[i], bufferSize[i]); + } +} + +void boundIndexToRange(int& index, const int& bufferSize) +{ + if (index < 0) index = 0; + else if (index >= bufferSize) index = bufferSize - 1; +} + +void wrapIndexToRange(Index& index, const Size& bufferSize) +{ + for (int i = 0; i < index.size(); i++) { + wrapIndexToRange(index[i], bufferSize[i]); + } +} + +void wrapIndexToRange(int& index, const int& bufferSize) +{ + if (index < 0) index += ((-index / bufferSize) + 1) * bufferSize; + index = index % bufferSize; +} + +void boundPositionToRange(Position& position, const Length& mapLength, const Position& mapPosition) +{ + Vector vectorToOrigin; + getVectorToOrigin(vectorToOrigin, mapLength); + Position positionShifted = position - mapPosition + vectorToOrigin; + + // We have to make sure to stay inside the map. + for (int i = 0; i < positionShifted.size(); i++) { + + double epsilon = 10.0 * numeric_limits::epsilon(); // TODO Why is the factor 10 necessary. + if (std::fabs(position(i)) > 1.0) epsilon *= std::fabs(position(i)); + + if (positionShifted(i) <= 0) { + positionShifted(i) = epsilon; + continue; + } + if (positionShifted(i) >= mapLength(i)) { + positionShifted(i) = mapLength(i) - epsilon; + continue; + } + } + + position = positionShifted + mapPosition - vectorToOrigin; +} + +const Eigen::Matrix2i getBufferOrderToMapFrameAlignment() +{ + return getBufferOrderToMapFrameTransformation().array().abs().matrix(); +} + +bool getSubmapInformation(Index& submapTopLeftIndex, + Size& submapBufferSize, + Position& submapPosition, + Length& submapLength, + Index& requestedIndexInSubmap, + const Position& requestedSubmapPosition, + const Length& requestedSubmapLength, + const Length& mapLength, + const Position& mapPosition, + const double& resolution, + const Size& bufferSize, + const Index& bufferStartIndex) +{ + // (Top left / bottom right corresponds to the position in the matrix, not the map frame) + Eigen::Matrix2d transform = getMapFrameToBufferOrderTransformation().cast(); + + // Corners of submap. + Position topLeftPosition = requestedSubmapPosition - transform * 0.5 * requestedSubmapLength.matrix(); + boundPositionToRange(topLeftPosition, mapLength, mapPosition); + if(!getIndexFromPosition(submapTopLeftIndex, topLeftPosition, mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)) return false; + Index topLeftIndex; + topLeftIndex = getIndexFromBufferIndex(submapTopLeftIndex, bufferSize, bufferStartIndex); + + Position bottomRightPosition = requestedSubmapPosition + transform * 0.5 * requestedSubmapLength.matrix(); + boundPositionToRange(bottomRightPosition, mapLength, mapPosition); + Index bottomRightIndex; + if(!getIndexFromPosition(bottomRightIndex, bottomRightPosition, mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)) return false; + bottomRightIndex = getIndexFromBufferIndex(bottomRightIndex, bufferSize, bufferStartIndex); + + // Get the position of the top left corner of the generated submap. + Position topLeftCorner; + if(!getPositionFromIndex(topLeftCorner, submapTopLeftIndex, mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)) return false; + topLeftCorner -= transform * Position::Constant(0.5 * resolution); + + // Size of submap. + submapBufferSize = bottomRightIndex - topLeftIndex + Index::Ones(); + + // Length of the submap. + submapLength = submapBufferSize.cast() * resolution; + + // Position of submap. + Vector vectorToSubmapOrigin; + getVectorToOrigin(vectorToSubmapOrigin, submapLength); + submapPosition = topLeftCorner - vectorToSubmapOrigin; + + // Get the index of the cell which corresponds the requested + // position of the submap. + if(!getIndexFromPosition(requestedIndexInSubmap, requestedSubmapPosition, submapLength, submapPosition, resolution, submapBufferSize)) return false; + + return true; +} + +Size getSubmapSizeFromCornerIndeces(const Index& topLeftIndex, const Index& bottomRightIndex, + const Size& bufferSize, const Index& bufferStartIndex) +{ + const Index unwrappedTopLeftIndex = getIndexFromBufferIndex(topLeftIndex, bufferSize, bufferStartIndex); + const Index unwrappedBottomRightIndex = getIndexFromBufferIndex(bottomRightIndex, bufferSize, bufferStartIndex); + return Size(unwrappedBottomRightIndex - unwrappedTopLeftIndex + Size::Ones()); +} + +bool getBufferRegionsForSubmap(std::vector& submapBufferRegions, + const Index& submapIndex, + const Size& submapBufferSize, + const Size& bufferSize, + const Index& bufferStartIndex) +{ + if ((getIndexFromBufferIndex(submapIndex, bufferSize, bufferStartIndex) + submapBufferSize > bufferSize).any()) return false; + + submapBufferRegions.clear(); + + Index bottomRightIndex = submapIndex + submapBufferSize - Index::Ones(); + wrapIndexToRange(bottomRightIndex, bufferSize); + + BufferRegion::Quadrant quadrantOfTopLeft = getQuadrant(submapIndex, bufferStartIndex); + BufferRegion::Quadrant quadrantOfBottomRight = getQuadrant(bottomRightIndex, bufferStartIndex); + + if (quadrantOfTopLeft == BufferRegion::Quadrant::TopLeft) { + + if (quadrantOfBottomRight == BufferRegion::Quadrant::TopLeft) { + submapBufferRegions.push_back(BufferRegion(submapIndex, submapBufferSize, BufferRegion::Quadrant::TopLeft)); + return true; + } + + if (quadrantOfBottomRight == BufferRegion::Quadrant::TopRight) { + Size topLeftSize(submapBufferSize(0), bufferSize(1) - submapIndex(1)); + submapBufferRegions.push_back(BufferRegion(submapIndex, topLeftSize, BufferRegion::Quadrant::TopLeft)); + + Index topRightIndex(submapIndex(0), 0); + Size topRightSize(submapBufferSize(0), submapBufferSize(1) - topLeftSize(1)); + submapBufferRegions.push_back(BufferRegion(topRightIndex, topRightSize, BufferRegion::Quadrant::TopRight)); + return true; + } + + if (quadrantOfBottomRight == BufferRegion::Quadrant::BottomLeft) { + Size topLeftSize(bufferSize(0) - submapIndex(0), submapBufferSize(1)); + submapBufferRegions.push_back(BufferRegion(submapIndex, topLeftSize, BufferRegion::Quadrant::TopLeft)); + + Index bottomLeftIndex(0, submapIndex(1)); + Size bottomLeftSize(submapBufferSize(0) - topLeftSize(0), submapBufferSize(1)); + submapBufferRegions.push_back(BufferRegion(bottomLeftIndex, bottomLeftSize, BufferRegion::Quadrant::BottomLeft)); + return true; + } + + if (quadrantOfBottomRight == BufferRegion::Quadrant::BottomRight) { + Size topLeftSize(bufferSize(0) - submapIndex(0), bufferSize(1) - submapIndex(1)); + submapBufferRegions.push_back(BufferRegion(submapIndex, topLeftSize, BufferRegion::Quadrant::TopLeft)); + + Index topRightIndex(submapIndex(0), 0); + Size topRightSize(bufferSize(0) - submapIndex(0), submapBufferSize(1) - topLeftSize(1)); + submapBufferRegions.push_back(BufferRegion(topRightIndex, topRightSize, BufferRegion::Quadrant::TopRight)); + + Index bottomLeftIndex(0, submapIndex(1)); + Size bottomLeftSize(submapBufferSize(0) - topLeftSize(0), bufferSize(1) - submapIndex(1)); + submapBufferRegions.push_back(BufferRegion(bottomLeftIndex, bottomLeftSize, BufferRegion::Quadrant::BottomLeft)); + + Index bottomRightIndex = Index::Zero(); + Size bottomRightSize(bottomLeftSize(0), topRightSize(1)); + submapBufferRegions.push_back(BufferRegion(bottomRightIndex, bottomRightSize, BufferRegion::Quadrant::BottomRight)); + return true; + } + + } else if (quadrantOfTopLeft == BufferRegion::Quadrant::TopRight) { + + if (quadrantOfBottomRight == BufferRegion::Quadrant::TopRight) { + submapBufferRegions.push_back(BufferRegion(submapIndex, submapBufferSize, BufferRegion::Quadrant::TopRight)); + return true; + } + + if (quadrantOfBottomRight == BufferRegion::Quadrant::BottomRight) { + + Size topRightSize(bufferSize(0) - submapIndex(0), submapBufferSize(1)); + submapBufferRegions.push_back(BufferRegion(submapIndex, topRightSize, BufferRegion::Quadrant::TopRight)); + + Index bottomRightIndex(0, submapIndex(1)); + Size bottomRightSize(submapBufferSize(0) - topRightSize(0), submapBufferSize(1)); + submapBufferRegions.push_back(BufferRegion(bottomRightIndex, bottomRightSize, BufferRegion::Quadrant::BottomRight)); + return true; + } + + } else if (quadrantOfTopLeft == BufferRegion::Quadrant::BottomLeft) { + + if (quadrantOfBottomRight == BufferRegion::Quadrant::BottomLeft) { + submapBufferRegions.push_back(BufferRegion(submapIndex, submapBufferSize, BufferRegion::Quadrant::BottomLeft)); + return true; + } + + if (quadrantOfBottomRight == BufferRegion::Quadrant::BottomRight) { + Size bottomLeftSize(submapBufferSize(0), bufferSize(1) - submapIndex(1)); + submapBufferRegions.push_back(BufferRegion(submapIndex, bottomLeftSize, BufferRegion::Quadrant::BottomLeft)); + + Index bottomRightIndex(submapIndex(0), 0); + Size bottomRightSize(submapBufferSize(0), submapBufferSize(1) - bottomLeftSize(1)); + submapBufferRegions.push_back(BufferRegion(bottomRightIndex, bottomRightSize, BufferRegion::Quadrant::BottomRight)); + return true; + } + + } else if (quadrantOfTopLeft == BufferRegion::Quadrant::BottomRight) { + + if (quadrantOfBottomRight == BufferRegion::Quadrant::BottomRight) { + submapBufferRegions.push_back(BufferRegion(submapIndex, submapBufferSize, BufferRegion::Quadrant::BottomRight)); + return true; + } + + } + + return false; +} + +bool incrementIndex(Index& index, const Size& bufferSize, const Index& bufferStartIndex) +{ + Index unwrappedIndex = getIndexFromBufferIndex(index, bufferSize, bufferStartIndex); + + // Increment index. + if (unwrappedIndex(1) + 1 < bufferSize(1)) { + // Same row. + unwrappedIndex[1]++; + } else { + // Next row. + unwrappedIndex[0]++; + unwrappedIndex[1] = 0; + } + + // End of iterations reached. + if (!checkIfIndexInRange(unwrappedIndex, bufferSize)) return false; + + // Return true iterated index. + index = getBufferIndexFromIndex(unwrappedIndex, bufferSize, bufferStartIndex); + return true; +} + +bool incrementIndexForSubmap(Index& submapIndex, Index& index, const Index& submapTopLeftIndex, + const Size& submapBufferSize, const Size& bufferSize, + const Index& bufferStartIndex) +{ + // Copy the data first, only copy it back if everything is within range. + Index tempIndex = index; + Index tempSubmapIndex = submapIndex; + + // Increment submap index. + if (tempSubmapIndex[1] + 1 < submapBufferSize[1]) { + // Same row. + tempSubmapIndex[1]++; + } else { + // Next row. + tempSubmapIndex[0]++; + tempSubmapIndex[1] = 0; + } + + // End of iterations reached. + if (!checkIfIndexInRange(tempSubmapIndex, submapBufferSize)) return false; + + // Get corresponding index in map. + Index unwrappedSubmapTopLeftIndex = getIndexFromBufferIndex(submapTopLeftIndex, bufferSize, bufferStartIndex); + tempIndex = getBufferIndexFromIndex(unwrappedSubmapTopLeftIndex + tempSubmapIndex, bufferSize, bufferStartIndex); + + // Copy data back. + index = tempIndex; + submapIndex = tempSubmapIndex; + return true; +} + +Index getIndexFromBufferIndex(const Index& bufferIndex, const Size& bufferSize, const Index& bufferStartIndex) +{ + if (checkIfStartIndexAtDefaultPosition(bufferStartIndex)) return bufferIndex; + + Index index = bufferIndex - bufferStartIndex; + wrapIndexToRange(index, bufferSize); + return index; +} + +Index getBufferIndexFromIndex(const Index& index, const Size& bufferSize, const Index& bufferStartIndex) +{ + if (checkIfStartIndexAtDefaultPosition(bufferStartIndex)) return index; + + Index bufferIndex = index + bufferStartIndex; + wrapIndexToRange(bufferIndex, bufferSize); + return bufferIndex; +} + +size_t getLinearIndexFromIndex(const Index& index, const Size& bufferSize, const bool rowMajor) +{ + if (!rowMajor) return index(1) * bufferSize(0) + index(0); + return index(0) * bufferSize(1) + index(1); +} + +Index getIndexFromLinearIndex(const size_t linearIndex, const Size& bufferSize, const bool rowMajor) +{ + if (!rowMajor) return Index((int)linearIndex % bufferSize(0), (int)linearIndex / bufferSize(0)); + return Index((int)linearIndex / bufferSize(1), (int)linearIndex % bufferSize(1)); +} + +void getIndicesForRegion(const Index& regionIndex, const Size& regionSize, + std::vector indices) +{ +// for (int i = line.index_; col < line.endIndex(); col++) { +// for (int i = 0; i < getSize()(0); i++) { +// +// } +// } +} + +void getIndicesForRegions(const std::vector& regionIndeces, const Size& regionSizes, + std::vector indices) +{ +} + +bool colorValueToVector(const unsigned long& colorValue, Eigen::Vector3i& colorVector) +{ + colorVector(0) = (colorValue >> 16) & 0x0000ff; + colorVector(1) = (colorValue >> 8) & 0x0000ff; + colorVector(2) = colorValue & 0x0000ff; + return true; +} + +bool colorValueToVector(const unsigned long& colorValue, Eigen::Vector3f& colorVector) +{ + Eigen::Vector3i tempColorVector; + colorValueToVector(colorValue, tempColorVector); + colorVector = ((tempColorVector.cast()).array() / 255.0).matrix(); + return true; +} + +bool colorValueToVector(const float& colorValue, Eigen::Vector3f& colorVector) +{ + // cppcheck-suppress invalidPointerCast + const unsigned long tempColorValue = *reinterpret_cast(&colorValue); + colorValueToVector(tempColorValue, colorVector); + return true; +} + +bool colorVectorToValue(const Eigen::Vector3i& colorVector, unsigned long& colorValue) +{ + colorValue = ((int)colorVector(0)) << 16 | ((int)colorVector(1)) << 8 | ((int)colorVector(2)); + return true; +} + +void colorVectorToValue(const Eigen::Vector3i& colorVector, float& colorValue) +{ + unsigned long color = (colorVector(0) << 16) + (colorVector(1) << 8) + colorVector(2); + // cppcheck-suppress invalidPointerCast + colorValue = *reinterpret_cast(&color); +} + +void colorVectorToValue(const Eigen::Vector3f& colorVector, float& colorValue) +{ + Eigen::Vector3i tempColorVector = (colorVector * 255.0).cast(); + colorVectorToValue(tempColorVector, colorValue); +} + +} // namespace + diff --git a/ros/src/vendor/grid_map/grid_map_core/src/Polygon.cpp b/ros/src/vendor/grid_map/grid_map_core/src/Polygon.cpp new file mode 100644 index 00000000000..7bc5381f2a2 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/src/Polygon.cpp @@ -0,0 +1,338 @@ +/* + * Polygon.cpp + * + * Created on: Nov 7, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include + +#include +#include + +#include + +namespace grid_map { + +Polygon::Polygon() + : timestamp_(0) +{ +} + +Polygon::Polygon(std::vector vertices) + : Polygon() +{ + vertices_ = vertices; +} + +Polygon::~Polygon() {} + +bool Polygon::isInside(const Position& point) const +{ + int cross = 0; + for (int i = 0, j = vertices_.size() - 1; i < vertices_.size(); j = i++) { + if ( ((vertices_[i].y() > point.y()) != (vertices_[j].y() > point.y())) + && (point.x() < (vertices_[j].x() - vertices_[i].x()) * (point.y() - vertices_[i].y()) / + (vertices_[j].y() - vertices_[i].y()) + vertices_[i].x()) ) + { + cross++; + } + } + return bool(cross % 2); +} + +void Polygon::addVertex(const Position& vertex) +{ + vertices_.push_back(vertex); +} + +const Position& Polygon::getVertex(const size_t index) const +{ + return vertices_.at(index); +} + +void Polygon::removeVertices() +{ + vertices_.clear(); +} + +const Position& Polygon::operator [](const size_t index) const +{ + return getVertex(index); +} + +const std::vector& Polygon::getVertices() const +{ + return vertices_; +} + +const size_t Polygon::nVertices() const +{ + return vertices_.size(); +} + +const std::string& Polygon::getFrameId() const +{ + return frameId_; +} + +void Polygon::setFrameId(const std::string& frameId) +{ + frameId_ = frameId; +} + +uint64_t Polygon::getTimestamp() const +{ + return timestamp_; +} + +void Polygon::setTimestamp(const uint64_t timestamp) +{ + timestamp_ = timestamp; +} + +void Polygon::resetTimestamp() +{ + timestamp_ = 0.0; +} + +const double Polygon::getArea() const +{ + double area = 0.0; + int j = vertices_.size() - 1; + for (int i = 0; i < vertices_.size(); i++) { + area += (vertices_.at(j).x() + vertices_.at(i).x()) + * (vertices_.at(j).y() - vertices_.at(i).y()); + j = i; + } + return std::abs(area / 2.0); +} + +Position Polygon::getCentroid() const +{ + Position centroid = Position::Zero(); + std::vector vertices = getVertices(); + vertices.push_back(vertices.at(0)); + double area = 0.0; + for (int i = 0; i < vertices.size() - 1; i++) { + const double a = vertices[i].x() * vertices[i+1].y() - vertices[i+1].x() * vertices[i].y(); + area += a; + centroid.x() += a * (vertices[i].x() + vertices[i+1].x()); + centroid.y() += a * (vertices[i].y() + vertices[i+1].y()); + } + area *= 0.5; + centroid /= (6.0 * area); + return centroid; +} + +void Polygon::getBoundingBox(Position& center, Length& length) const +{ + double minX = std::numeric_limits::infinity(); + double maxX = -std::numeric_limits::infinity(); + double minY = std::numeric_limits::infinity(); + double maxY = -std::numeric_limits::infinity(); + for (const auto& vertex : vertices_) { + if (vertex.x() > maxX) maxX = vertex.x(); + if (vertex.y() > maxY) maxY = vertex.y(); + if (vertex.x() < minX) minX = vertex.x(); + if (vertex.y() < minY) minY = vertex.y(); + } + center.x() = (minX + maxX) / 2.0; + center.y() = (minY + maxY) / 2.0; + length.x() = (maxX - minX); + length.y() = (maxY - minY); +} + +bool Polygon::convertToInequalityConstraints(Eigen::MatrixXd& A, Eigen::VectorXd& b) const +{ + Eigen::MatrixXd V(nVertices(), 2); + for (unsigned int i = 0; i < nVertices(); ++i) + V.row(i) = vertices_[i]; + + // Create k, a list of indices from V forming the convex hull. + // TODO: Assuming counter-clockwise ordered convex polygon. + // MATLAB: k = convhulln(V); + Eigen::MatrixXi k; + k.resizeLike(V); + for (unsigned int i = 0; i < V.rows(); ++i) + k.row(i) << i, (i+1) % V.rows(); + Eigen::RowVectorXd c = V.colwise().mean(); + V.rowwise() -= c; + A = Eigen::MatrixXd::Constant(k.rows(), V.cols(), NAN); + + unsigned int rc = 0; + for (unsigned int ix = 0; ix < k.rows(); ++ix) { + Eigen::MatrixXd F(2, V.cols()); + F.row(0) << V.row(k(ix, 0)); + F.row(1) << V.row(k(ix, 1)); + Eigen::FullPivLU luDecomp(F); + if (luDecomp.rank() == F.rows()) { + A.row(rc) = F.colPivHouseholderQr().solve(Eigen::VectorXd::Ones(F.rows())); + ++rc; + } + } + + A = A.topRows(rc); + b = Eigen::VectorXd::Ones(A.rows()); + b = b + A * c.transpose(); + + return true; +} + +bool Polygon::thickenLine(const double thickness) +{ + if (vertices_.size() != 2) return false; + const Vector connection(vertices_[1] - vertices_[0]); + const Vector orthogonal = thickness * Vector(connection.y(), -connection.x()).normalized(); + std::vector newVertices; + newVertices.reserve(4); + newVertices.push_back(vertices_[0] + orthogonal); + newVertices.push_back(vertices_[0] - orthogonal); + newVertices.push_back(vertices_[1] - orthogonal); + newVertices.push_back(vertices_[1] + orthogonal); + vertices_ = newVertices; + return true; +} + +bool Polygon::offsetInward(const double margin) +{ + // Create a list of indices of the neighbours of each vertex. + // TODO: Assuming counter-clockwise ordered convex polygon. + std::vector neighbourIndices; + const unsigned int n = nVertices(); + neighbourIndices.resize(n); + for (unsigned int i = 0; i < n; ++i) { + neighbourIndices[i] << (i > 0 ? (i-1)%n : n-1), (i + 1) % n; + } + + std::vector copy(vertices_); + for (unsigned int i = 0; i < neighbourIndices.size(); ++i) { + Eigen::Vector2d v1 = vertices_[neighbourIndices[i](0)] - vertices_[i]; + Eigen::Vector2d v2 = vertices_[neighbourIndices[i](1)] - vertices_[i]; + v1.normalize(); + v2.normalize(); + const double angle = acos(v1.dot(v2)); + copy[i] += margin / sin(angle) * (v1 + v2); + } + vertices_ = copy; + return true; +} + +std::vector Polygon::triangulate(const TriangulationMethods& method) const +{ + // TODO Add more triangulation methods. + // https://en.wikipedia.org/wiki/Polygon_triangulation + std::vector polygons; + if (vertices_.size() < 3) + return polygons; + + size_t nPolygons = vertices_.size() - 2; + polygons.reserve(nPolygons); + + if (nPolygons < 1) { + // Special case. + polygons.push_back(*this); + } else { + // General case. + for (size_t i = 0; i < nPolygons; ++i) { + Polygon polygon({vertices_[0], vertices_[i + 1], vertices_[i + 2]}); + polygons.push_back((polygon)); + } + } + + return polygons; +} + +Polygon Polygon::fromCircle(const Position center, const double radius, + const int nVertices) +{ + Eigen::Vector2d centerToVertex(radius, 0.0), centerToVertexTemp; + + Polygon polygon; + for (int j = 0; j < nVertices; j++) { + double theta = j * 2 * M_PI / (nVertices - 1); + Eigen::Rotation2D rot2d(theta); + centerToVertexTemp = rot2d.toRotationMatrix() * centerToVertex; + polygon.addVertex(center + centerToVertexTemp); + } + return polygon; +} + +Polygon Polygon::convexHullOfTwoCircles(const Position center1, + const Position center2, const double radius, + const int nVertices) +{ + if (center1 == center2) return fromCircle(center1, radius, nVertices); + Eigen::Vector2d centerToVertex, centerToVertexTemp; + centerToVertex = center2 - center1; + centerToVertex.normalize(); + centerToVertex *= radius; + + grid_map::Polygon polygon; + for (int j = 0; j < ceil(nVertices / 2.0); j++) { + double theta = M_PI_2 + j * M_PI / (ceil(nVertices / 2.0) - 1); + Eigen::Rotation2D rot2d(theta); + centerToVertexTemp = rot2d.toRotationMatrix() * centerToVertex; + polygon.addVertex(center1 + centerToVertexTemp); + } + for (int j = 0; j < ceil(nVertices / 2.0); j++) { + double theta = 3 * M_PI_2 + j * M_PI / (ceil(nVertices / 2.0) - 1); + Eigen::Rotation2D rot2d(theta); + centerToVertexTemp = rot2d.toRotationMatrix() * centerToVertex; + polygon.addVertex(center2 + centerToVertexTemp); + } + return polygon; +} + +Polygon Polygon::convexHull(Polygon& polygon1, Polygon& polygon2) +{ + std::vector vertices; + vertices.reserve(polygon1.nVertices() + polygon2.nVertices()); + vertices.insert(vertices.end(), polygon1.getVertices().begin(), polygon1.getVertices().end()); + vertices.insert(vertices.end(), polygon2.getVertices().begin(), polygon2.getVertices().end()); + + std::vector hull(vertices.size()+1); + + // Sort points lexicographically. + std::sort(vertices.begin(), vertices.end(), sortVertices); + + int k = 0; + // Build lower hull + for (int i = 0; i < vertices.size(); ++i) { + while (k >= 2 + && computeCrossProduct2D(hull.at(k - 1) - hull.at(k - 2), + vertices.at(i) - hull.at(k - 2)) <= 0) + k--; + hull.at(k++) = vertices.at(i); + } + + // Build upper hull. + for (int i = vertices.size() - 2, t = k + 1; i >= 0; i--) { + while (k >= t + && computeCrossProduct2D(hull.at(k - 1) - hull.at(k - 2), + vertices.at(i) - hull.at(k - 2)) <= 0) + k--; + hull.at(k++) = vertices.at(i); + } + hull.resize(k - 1); + + Polygon polygon(hull); + return polygon; +} + +bool Polygon::sortVertices(const Eigen::Vector2d& vector1, + const Eigen::Vector2d& vector2) +{ + return (vector1.x() < vector2.x() + || (vector1.x() == vector2.x() && vector1.y() < vector2.y())); +} + +double Polygon::computeCrossProduct2D(const Eigen::Vector2d& vector1, + const Eigen::Vector2d& vector2) +{ + return (vector1.x() * vector2.y() - vector1.y() * vector2.x()); +} + +} /* namespace grid_map */ + diff --git a/ros/src/vendor/grid_map/grid_map_core/src/SubmapGeometry.cpp b/ros/src/vendor/grid_map/grid_map_core/src/SubmapGeometry.cpp new file mode 100644 index 00000000000..032b3fa5061 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/src/SubmapGeometry.cpp @@ -0,0 +1,63 @@ +/* + * SubmapGeometry.cpp + * + * Created on: Aug 18, 2015 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include +#include + +namespace grid_map { + +SubmapGeometry::SubmapGeometry(const GridMap& gridMap, const Position& position, + const Length& length, bool& isSuccess) + : gridMap_(gridMap) +{ + isSuccess = getSubmapInformation(startIndex_, size_, position_, length_, + requestedIndexInSubmap_, position, length, gridMap_.getLength(), + gridMap_.getPosition(), gridMap_.getResolution(), + gridMap_.getSize(), gridMap_.getStartIndex()); +} + +SubmapGeometry::~SubmapGeometry() +{ +} + +const GridMap& SubmapGeometry::getGridMap() const +{ + return gridMap_; +} + +const Length& SubmapGeometry::getLength() const +{ + return length_; +} + +const Position& SubmapGeometry::getPosition() const +{ + return position_; +} + +const Index& SubmapGeometry::getRequestedIndexInSubmap() const +{ + return requestedIndexInSubmap_; +} + +const Size& SubmapGeometry::getSize() const +{ + return size_; +} + +double SubmapGeometry::getResolution() const +{ + return gridMap_.getResolution(); +} + +const Index& SubmapGeometry::getStartIndex() const +{ + return startIndex_; +} + +} /* namespace grid_map */ diff --git a/ros/src/vendor/grid_map/grid_map_core/src/iterators/CircleIterator.cpp b/ros/src/vendor/grid_map/grid_map_core/src/iterators/CircleIterator.cpp new file mode 100644 index 00000000000..d4cf7a7f3d8 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/src/iterators/CircleIterator.cpp @@ -0,0 +1,96 @@ +/* + * Circleterator.hpp + * + * Created on: Nov 13, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/iterators/CircleIterator.hpp" +#include "grid_map_core/GridMapMath.hpp" + +using namespace std; + +namespace grid_map { + +CircleIterator::CircleIterator(const GridMap& gridMap, const Position& center, const double radius) + : center_(center), + radius_(radius) +{ + radiusSquare_ = pow(radius_, 2); + mapLength_ = gridMap.getLength(); + mapPosition_ = gridMap.getPosition(); + resolution_ = gridMap.getResolution(); + bufferSize_ = gridMap.getSize(); + bufferStartIndex_ = gridMap.getStartIndex(); + Index submapStartIndex; + Index submapBufferSize; + findSubmapParameters(center, radius, submapStartIndex, submapBufferSize); + internalIterator_ = std::shared_ptr(new SubmapIterator(gridMap, submapStartIndex, submapBufferSize)); + if(!isInside()) ++(*this); +} + +CircleIterator& CircleIterator::operator =(const CircleIterator& other) +{ + center_ = other.center_; + radius_ = other.radius_; + radiusSquare_ = other.radiusSquare_; + internalIterator_ = other.internalIterator_; + mapLength_ = other.mapLength_; + mapPosition_ = other.mapPosition_; + resolution_ = other.resolution_; + bufferSize_ = other.bufferSize_; + bufferStartIndex_ = other.bufferStartIndex_; + return *this; +} + +bool CircleIterator::operator !=(const CircleIterator& other) const +{ + return (internalIterator_ != other.internalIterator_); +} + +const Index& CircleIterator::operator *() const +{ + return *(*internalIterator_); +} + +CircleIterator& CircleIterator::operator ++() +{ + ++(*internalIterator_); + if (internalIterator_->isPastEnd()) return *this; + + for ( ; !internalIterator_->isPastEnd(); ++(*internalIterator_)) { + if (isInside()) break; + } + + return *this; +} + +bool CircleIterator::isPastEnd() const +{ + return internalIterator_->isPastEnd(); +} + +bool CircleIterator::isInside() const +{ + Position position; + getPositionFromIndex(position, *(*internalIterator_), mapLength_, mapPosition_, resolution_, bufferSize_, bufferStartIndex_); + double squareNorm = (position - center_).array().square().sum(); + return (squareNorm <= radiusSquare_); +} + +void CircleIterator::findSubmapParameters(const Position& center, const double radius, + Index& startIndex, Size& bufferSize) const +{ + Position topLeft = center.array() + radius; + Position bottomRight = center.array() - radius; + boundPositionToRange(topLeft, mapLength_, mapPosition_); + boundPositionToRange(bottomRight, mapLength_, mapPosition_); + getIndexFromPosition(startIndex, topLeft, mapLength_, mapPosition_, resolution_, bufferSize_, bufferStartIndex_); + Index endIndex; + getIndexFromPosition(endIndex, bottomRight, mapLength_, mapPosition_, resolution_, bufferSize_, bufferStartIndex_); + bufferSize = getSubmapSizeFromCornerIndeces(startIndex, endIndex, bufferSize_, bufferStartIndex_); +} + +} /* namespace grid_map */ + diff --git a/ros/src/vendor/grid_map/grid_map_core/src/iterators/EllipseIterator.cpp b/ros/src/vendor/grid_map/grid_map_core/src/iterators/EllipseIterator.cpp new file mode 100644 index 00000000000..5a7cd5196f9 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/src/iterators/EllipseIterator.cpp @@ -0,0 +1,110 @@ +/* + * EllipseIterator.hpp + * + * Created on: Dec 2, 2015 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/iterators/EllipseIterator.hpp" +#include "grid_map_core/GridMapMath.hpp" + +#include +#include + +using namespace std; + +namespace grid_map { + +EllipseIterator::EllipseIterator(const GridMap& gridMap, const Position& center, const Length& length, const double rotation) + : center_(center) +{ + semiAxisSquare_ = (0.5 * length).square(); + double sinRotation = sin(rotation); + double cosRotation = cos(rotation); + transformMatrix_ << cosRotation, sinRotation, sinRotation, -cosRotation; + mapLength_ = gridMap.getLength(); + mapPosition_ = gridMap.getPosition(); + resolution_ = gridMap.getResolution(); + bufferSize_ = gridMap.getSize(); + bufferStartIndex_ = gridMap.getStartIndex(); + Index submapStartIndex; + Index submapBufferSize; + findSubmapParameters(center, length, rotation, submapStartIndex, submapBufferSize); + internalIterator_ = std::shared_ptr(new SubmapIterator(gridMap, submapStartIndex, submapBufferSize)); + if(!isInside()) ++(*this); +} + +EllipseIterator& EllipseIterator::operator =(const EllipseIterator& other) +{ + center_ = other.center_; + semiAxisSquare_ = other.semiAxisSquare_; + transformMatrix_ = other.transformMatrix_; + internalIterator_ = other.internalIterator_; + mapLength_ = other.mapLength_; + mapPosition_ = other.mapPosition_; + resolution_ = other.resolution_; + bufferSize_ = other.bufferSize_; + bufferStartIndex_ = other.bufferStartIndex_; + return *this; +} + +bool EllipseIterator::operator !=(const EllipseIterator& other) const +{ + return (internalIterator_ != other.internalIterator_); +} + +const Eigen::Array2i& EllipseIterator::operator *() const +{ + return *(*internalIterator_); +} + +EllipseIterator& EllipseIterator::operator ++() +{ + ++(*internalIterator_); + if (internalIterator_->isPastEnd()) return *this; + + for ( ; !internalIterator_->isPastEnd(); ++(*internalIterator_)) { + if (isInside()) break; + } + + return *this; +} + +bool EllipseIterator::isPastEnd() const +{ + return internalIterator_->isPastEnd(); +} + +const Size& EllipseIterator::getSubmapSize() const +{ + return internalIterator_->getSubmapSize(); +} + +bool EllipseIterator::isInside() const +{ + Position position; + getPositionFromIndex(position, *(*internalIterator_), mapLength_, mapPosition_, resolution_, bufferSize_, bufferStartIndex_); + double value = ((transformMatrix_ * (position - center_)).array().square() / semiAxisSquare_).sum(); + return (value <= 1); +} + +void EllipseIterator::findSubmapParameters(const Position& center, const Length& length, const double rotation, + Index& startIndex, Size& bufferSize) const +{ + const Eigen::Rotation2Dd rotationMatrix(rotation); + Eigen::Vector2d u = rotationMatrix * Eigen::Vector2d(length(0), 0.0); + Eigen::Vector2d v = rotationMatrix * Eigen::Vector2d(0.0, length(1)); + const Length boundingBoxHalfLength = (u.cwiseAbs2() + v.cwiseAbs2()).array().sqrt(); + Position topLeft = center.array() + boundingBoxHalfLength; + Position bottomRight = center.array() - boundingBoxHalfLength; + boundPositionToRange(topLeft, mapLength_, mapPosition_); + boundPositionToRange(bottomRight, mapLength_, mapPosition_); + getIndexFromPosition(startIndex, topLeft, mapLength_, mapPosition_, resolution_, bufferSize_, bufferStartIndex_); + Index endIndex; + getIndexFromPosition(endIndex, bottomRight, mapLength_, mapPosition_, resolution_, bufferSize_, bufferStartIndex_); + bufferSize = getSubmapSizeFromCornerIndeces(startIndex, endIndex, bufferSize_, bufferStartIndex_); +} + +} /* namespace grid_map */ + diff --git a/ros/src/vendor/grid_map/grid_map_core/src/iterators/GridMapIterator.cpp b/ros/src/vendor/grid_map/grid_map_core/src/iterators/GridMapIterator.cpp new file mode 100644 index 00000000000..62e31f0e785 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/src/iterators/GridMapIterator.cpp @@ -0,0 +1,85 @@ +/* + * GridMapIterator.cpp + * + * Created on: Sep 22, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/iterators/GridMapIterator.hpp" +#include "grid_map_core/GridMapMath.hpp" + +namespace grid_map { + +GridMapIterator::GridMapIterator(const grid_map::GridMap& gridMap) +{ + size_ = gridMap.getSize(); + startIndex_ = gridMap.getStartIndex(); + linearSize_ = size_.prod(); + linearIndex_ = 0; + isPastEnd_ = false; +} + +GridMapIterator::GridMapIterator(const GridMapIterator* other) +{ + size_ = other->size_; + startIndex_ = other->startIndex_; + linearSize_ = other->linearSize_; + linearIndex_ = other->linearIndex_; + isPastEnd_ = other->isPastEnd_; +} + +GridMapIterator& GridMapIterator::operator =(const GridMapIterator& other) +{ + size_ = other.size_; + startIndex_ = other.startIndex_; + linearSize_ = other.linearSize_; + linearIndex_ = other.linearIndex_; + isPastEnd_ = other.isPastEnd_; + return *this; +} + +bool GridMapIterator::operator !=(const GridMapIterator& other) const +{ + return linearIndex_ != other.linearIndex_; +} + +const Index GridMapIterator::operator *() const +{ + return getIndexFromLinearIndex(linearIndex_, size_); +} + +const size_t& GridMapIterator::getLinearIndex() const +{ + return linearIndex_; +} + +const Index GridMapIterator::getUnwrappedIndex() const +{ + return getIndexFromBufferIndex(*(*this), size_, startIndex_); +} + +GridMapIterator& GridMapIterator::operator ++() +{ + size_t newIndex = linearIndex_ + 1; + if (newIndex < linearSize_) { + linearIndex_ = newIndex; + } else { + isPastEnd_ = true; + } + return *this; +} + +GridMapIterator GridMapIterator::end() const +{ + GridMapIterator res(this); + res.linearIndex_ = linearSize_ - 1; + return res; +} + +bool GridMapIterator::isPastEnd() const +{ + return isPastEnd_; +} + +} /* namespace grid_map */ diff --git a/ros/src/vendor/grid_map/grid_map_core/src/iterators/LineIterator.cpp b/ros/src/vendor/grid_map/grid_map_core/src/iterators/LineIterator.cpp new file mode 100644 index 00000000000..6f85bf07ac1 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/src/iterators/LineIterator.cpp @@ -0,0 +1,154 @@ +/* + * LineIterator.hpp + * + * Created on: Nov 13, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/iterators/LineIterator.hpp" +#include "grid_map_core/GridMapMath.hpp" + +using namespace std; + +namespace grid_map { + +LineIterator::LineIterator(const grid_map::GridMap& gridMap, const Position& start, + const Position& end) +{ + Index startIndex, endIndex; + if (getIndexLimitedToMapRange(gridMap, start, end, startIndex) + && getIndexLimitedToMapRange(gridMap, end, start, endIndex)) + initialize(gridMap, startIndex, endIndex); +} + +LineIterator::LineIterator(const grid_map::GridMap& gridMap, const Index& start, const Index& end) +{ + initialize(gridMap, start, end); +} + +LineIterator& LineIterator::operator =(const LineIterator& other) +{ + index_ = other.index_; + start_ = other.start_; + end_ = other.end_; + iCell_ = other.iCell_; + nCells_ = other.nCells_; + increment1_ = other.increment1_; + increment2_ = other.increment2_; + denominator_ = other.denominator_; + numerator_ = other.numerator_; + numeratorAdd_ = other.numeratorAdd_; + mapLength_ = other.mapLength_; + mapPosition_ = other.mapPosition_; + resolution_ = other.resolution_; + bufferSize_ = other.bufferSize_; + bufferStartIndex_ = other.bufferStartIndex_; + return *this; +} + +bool LineIterator::operator !=(const LineIterator& other) const +{ + return (index_ != other.index_).any(); +} + +const Index& LineIterator::operator *() const +{ + return index_; +} + +LineIterator& LineIterator::operator ++() +{ + numerator_ += numeratorAdd_; // Increase the numerator by the top of the fraction. + if (numerator_ >= denominator_) { + numerator_ -= denominator_; + const Index unwrappedIndex = getIndexFromBufferIndex(index_, bufferSize_, bufferStartIndex_) + increment1_; + index_ = getBufferIndexFromIndex(unwrappedIndex, bufferSize_, bufferStartIndex_); + } + const Index unwrappedIndex = getIndexFromBufferIndex(index_, bufferSize_, bufferStartIndex_) + increment2_; + index_ = getBufferIndexFromIndex(unwrappedIndex, bufferSize_, bufferStartIndex_); + ++iCell_; + return *this; +} + +bool LineIterator::isPastEnd() const +{ + return iCell_ >= nCells_; +} + +bool LineIterator::initialize(const grid_map::GridMap& gridMap, const Index& start, const Index& end) +{ + start_ = start; + end_ = end; + mapLength_ = gridMap.getLength(); + mapPosition_ = gridMap.getPosition(); + resolution_ = gridMap.getResolution(); + bufferSize_ = gridMap.getSize(); + bufferStartIndex_ = gridMap.getStartIndex(); + initializeIterationParameters(); + return true; +} + +bool LineIterator::getIndexLimitedToMapRange(const grid_map::GridMap& gridMap, + const Position& start, const Position& end, + Index& index) +{ + Position newStart = start; + Vector direction = (end - start).normalized(); + while (!gridMap.getIndex(newStart, index)) { + newStart += (gridMap.getResolution() - std::numeric_limits::epsilon()) * direction; + if ((end - newStart).norm() < gridMap.getResolution() - std::numeric_limits::epsilon()) + return false; + } + return true; +} + +void LineIterator::initializeIterationParameters() +{ + iCell_ = 0; + index_ = start_; + + const Index unwrappedStart = getIndexFromBufferIndex(start_, bufferSize_, bufferStartIndex_); + const Index unwrappedEnd = getIndexFromBufferIndex(end_, bufferSize_, bufferStartIndex_); + const Size delta = (unwrappedEnd - unwrappedStart).abs(); + + if (unwrappedEnd.x() >= unwrappedStart.x()) { + // x-values increasing. + increment1_.x() = 1; + increment2_.x() = 1; + } else { + // x-values decreasing. + increment1_.x() = -1; + increment2_.x() = -1; + } + + if (unwrappedEnd.y() >= unwrappedStart.y()) { + // y-values increasing. + increment1_.y() = 1; + increment2_.y() = 1; + } else { + // y-values decreasing. + increment1_.y() = -1; + increment2_.y() = -1; + } + + if (delta.x() >= delta.y()) { + // There is at least one x-value for every y-value. + increment1_.x() = 0; // Do not change the x when numerator >= denominator. + increment2_.y() = 0; // Do not change the y for every iteration. + denominator_ = delta.x(); + numerator_ = delta.x() / 2; + numeratorAdd_ = delta.y(); + nCells_ = delta.x() + 1; // There are more x-values than y-values. + } else { + // There is at least one y-value for every x-value + increment2_.x() = 0; // Do not change the x for every iteration. + increment1_.y() = 0; // Do not change the y when numerator >= denominator. + denominator_ = delta.y(); + numerator_ = delta.y() / 2; + numeratorAdd_ = delta.x(); + nCells_ = delta.y() + 1; // There are more y-values than x-values. + } +} + +} /* namespace grid_map */ diff --git a/ros/src/vendor/grid_map/grid_map_core/src/iterators/PolygonIterator.cpp b/ros/src/vendor/grid_map/grid_map_core/src/iterators/PolygonIterator.cpp new file mode 100644 index 00000000000..5d6f563d1ff --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/src/iterators/PolygonIterator.cpp @@ -0,0 +1,94 @@ +/* + * PolygonIterator.hpp + * + * Created on: Sep 19, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/iterators/PolygonIterator.hpp" +#include "grid_map_core/GridMapMath.hpp" + +using namespace std; + +namespace grid_map { + +PolygonIterator::PolygonIterator(const grid_map::GridMap& gridMap, const grid_map::Polygon& polygon) + : polygon_(polygon) +{ + mapLength_ = gridMap.getLength(); + mapPosition_ = gridMap.getPosition(); + resolution_ = gridMap.getResolution(); + bufferSize_ = gridMap.getSize(); + bufferStartIndex_ = gridMap.getStartIndex(); + Index submapStartIndex; + Size submapBufferSize; + findSubmapParameters(polygon, submapStartIndex, submapBufferSize); + internalIterator_ = std::shared_ptr(new SubmapIterator(gridMap, submapStartIndex, submapBufferSize)); + if(!isInside()) ++(*this); +} + +PolygonIterator& PolygonIterator::operator =(const PolygonIterator& other) +{ + polygon_ = other.polygon_; + internalIterator_ = other.internalIterator_; + mapLength_ = other.mapLength_; + mapPosition_ = other.mapPosition_; + resolution_ = other.resolution_; + bufferSize_ = other.bufferSize_; + bufferStartIndex_ = other.bufferStartIndex_; + return *this; +} + +bool PolygonIterator::operator !=(const PolygonIterator& other) const +{ + return (internalIterator_ != other.internalIterator_); +} + +const Index& PolygonIterator::operator *() const +{ + return *(*internalIterator_); +} + +PolygonIterator& PolygonIterator::operator ++() +{ + ++(*internalIterator_); + if (internalIterator_->isPastEnd()) return *this; + + for ( ; !internalIterator_->isPastEnd(); ++(*internalIterator_)) { + if (isInside()) break; + } + + return *this; +} + +bool PolygonIterator::isPastEnd() const +{ + return internalIterator_->isPastEnd(); +} + +bool PolygonIterator::isInside() const +{ + Position position; + getPositionFromIndex(position, *(*internalIterator_), mapLength_, mapPosition_, resolution_, bufferSize_, bufferStartIndex_); + return polygon_.isInside(position); +} + +void PolygonIterator::findSubmapParameters(const grid_map::Polygon& polygon, Index& startIndex, Size& bufferSize) const +{ + Position topLeft = polygon_.getVertices()[0]; + Position bottomRight = topLeft; + for (const auto& vertex : polygon_.getVertices()) { + topLeft = topLeft.array().max(vertex.array()); + bottomRight = bottomRight.array().min(vertex.array()); + } + boundPositionToRange(topLeft, mapLength_, mapPosition_); + boundPositionToRange(bottomRight, mapLength_, mapPosition_); + getIndexFromPosition(startIndex, topLeft, mapLength_, mapPosition_, resolution_, bufferSize_, bufferStartIndex_); + Index endIndex; + getIndexFromPosition(endIndex, bottomRight, mapLength_, mapPosition_, resolution_, bufferSize_, bufferStartIndex_); + bufferSize = getSubmapSizeFromCornerIndeces(startIndex, endIndex, bufferSize_, bufferStartIndex_); +} + +} /* namespace grid_map */ + diff --git a/ros/src/vendor/grid_map/grid_map_core/src/iterators/SlidingWindowIterator.cpp b/ros/src/vendor/grid_map/grid_map_core/src/iterators/SlidingWindowIterator.cpp new file mode 100644 index 00000000000..af13130c01b --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/src/iterators/SlidingWindowIterator.cpp @@ -0,0 +1,108 @@ +/* + * SlidingWindowIterator.cpp + * + * Created on: Aug 17, 2017 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Robotic Systems Lab + */ + +#include "grid_map_core/iterators/SlidingWindowIterator.hpp" +#include "grid_map_core/GridMapMath.hpp" + +#include + +namespace grid_map { + +SlidingWindowIterator::SlidingWindowIterator(const GridMap& gridMap, const std::string& layer, + const EdgeHandling& edgeHandling, const size_t windowSize) + : GridMapIterator(gridMap), + edgeHandling_(edgeHandling), + data_(gridMap[layer]) +{ + windowSize_ = windowSize; + setup(gridMap); +} + +SlidingWindowIterator::SlidingWindowIterator(const SlidingWindowIterator* other) + : GridMapIterator(other), + edgeHandling_(other->edgeHandling_), + data_(other->data_) +{ + windowSize_ = other->windowSize_; + windowMargin_ = other->windowMargin_; +} + +void SlidingWindowIterator::setWindowLength(const GridMap& gridMap, const double windowLength) +{ + windowSize_ = std::round(windowLength / gridMap.getResolution()); + if (windowSize_ % 2 != 1) ++windowSize_; + setup(gridMap); +} + +SlidingWindowIterator& SlidingWindowIterator::operator ++() +{ + if (edgeHandling_ == EdgeHandling::INSIDE) { + while (!isPastEnd()) { + GridMapIterator::operator++(); + if (dataInsideMap()) break; + } + } else { + GridMapIterator::operator++(); + } + return *this; +} + +const Matrix SlidingWindowIterator::getData() const +{ + const Index centerIndex(*(*this)); + const Index windowMargin(Index::Constant(windowMargin_)); + const Index originalTopLeftIndex(centerIndex - windowMargin); + Index topLeftIndex(originalTopLeftIndex); + boundIndexToRange(topLeftIndex, size_); + Index bottomRightIndex(centerIndex + windowMargin); + boundIndexToRange(bottomRightIndex, size_); + const Size adjustedWindowSize(bottomRightIndex - topLeftIndex + Size::Ones()); + + switch (edgeHandling_) { + case EdgeHandling::INSIDE: + case EdgeHandling::CROP: + return data_.block(topLeftIndex(0), topLeftIndex(1), adjustedWindowSize(0), adjustedWindowSize(1)); + case EdgeHandling::EMPTY: + case EdgeHandling::MEAN: + const Matrix data = data_.block(topLeftIndex(0), topLeftIndex(1), adjustedWindowSize(0), adjustedWindowSize(1)); + Matrix returnData(windowSize_, windowSize_); + if (edgeHandling_ == EdgeHandling::EMPTY) returnData.setConstant(NAN); + else if (edgeHandling_ == EdgeHandling::MEAN) returnData.setConstant(data.meanOfFinites()); + const Index topLeftIndexShift(topLeftIndex - originalTopLeftIndex); + returnData.block(topLeftIndexShift(0), topLeftIndexShift(1), adjustedWindowSize(0), adjustedWindowSize(1)) = + data_.block(topLeftIndex(0), topLeftIndex(1), adjustedWindowSize(0), adjustedWindowSize(1)); + return returnData; + } + return Matrix::Zero(0, 0); +} + +void SlidingWindowIterator::setup(const GridMap& gridMap) +{ + if (!gridMap.isDefaultStartIndex()) throw std::runtime_error( + "SlidingWindowIterator cannot be used with grid maps that don't have a default buffer start index."); + if (windowSize_ % 2 == 0) throw std::runtime_error( + "SlidingWindowIterator has a wrong window size!"); + windowMargin_ = (windowSize_ - 1) / 2; + + if (edgeHandling_ == EdgeHandling::INSIDE) { + if (!dataInsideMap()) { + operator++(); + } + } +} + +bool SlidingWindowIterator::dataInsideMap() const +{ + const Index centerIndex(*(*this)); + const Index windowMargin(Index::Constant(windowMargin_)); + const Index topLeftIndex(centerIndex - windowMargin); + const Index bottomRightIndex(centerIndex + windowMargin); + return checkIfIndexInRange(topLeftIndex, size_) && checkIfIndexInRange(bottomRightIndex, size_); +} + +} /* namespace grid_map */ diff --git a/ros/src/vendor/grid_map/grid_map_core/src/iterators/SpiralIterator.cpp b/ros/src/vendor/grid_map/grid_map_core/src/iterators/SpiralIterator.cpp new file mode 100644 index 00000000000..1930000b27f --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/src/iterators/SpiralIterator.cpp @@ -0,0 +1,123 @@ +/* + * SpiralIterator.hpp + * + * Created on: Jul 7, 2015 + * Author: Martin Wermelinger + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/iterators/SpiralIterator.hpp" +#include "grid_map_core/GridMapMath.hpp" + +#include + +using namespace std; + +namespace grid_map { + +SpiralIterator::SpiralIterator(const grid_map::GridMap& gridMap, const Eigen::Vector2d& center, + const double radius) + : center_(center), + radius_(radius), + distance_(0) +{ + radiusSquare_ = radius_ * radius_; + mapLength_ = gridMap.getLength(); + mapPosition_ = gridMap.getPosition(); + resolution_ = gridMap.getResolution(); + bufferSize_ = gridMap.getSize(); + gridMap.getIndex(center_, indexCenter_); + nRings_ = std::ceil(radius_ / resolution_); + if (checkIfIndexInRange(indexCenter_, bufferSize_)) + pointsRing_.push_back(indexCenter_); + else + while(pointsRing_.empty() && !isPastEnd()) + generateRing(); +} + +SpiralIterator& SpiralIterator::operator =(const SpiralIterator& other) +{ + center_ = other.center_; + indexCenter_ = other.indexCenter_; + radius_ = other.radius_; + radiusSquare_ = other.radiusSquare_; + nRings_ = other.nRings_; + distance_ = other.distance_; + pointsRing_ = other.pointsRing_; + mapLength_ = other.mapLength_; + mapPosition_ = other.mapPosition_; + resolution_ = other.resolution_; + bufferSize_ = other.bufferSize_; + return *this; +} + +bool SpiralIterator::operator !=(const SpiralIterator& other) const +{ + return (pointsRing_.back() != pointsRing_.back()).any(); +} + +const Eigen::Array2i& SpiralIterator::operator *() const +{ + return pointsRing_.back(); +} + +SpiralIterator& SpiralIterator::operator ++() +{ + pointsRing_.pop_back(); + if (pointsRing_.empty() && !isPastEnd()) generateRing(); + return *this; +} + +bool SpiralIterator::isPastEnd() const +{ + return (distance_ == nRings_ && pointsRing_.empty()); +} + +bool SpiralIterator::isInside(const Index index) const +{ + Eigen::Vector2d position; + getPositionFromIndex(position, index, mapLength_, mapPosition_, resolution_, bufferSize_); + double squareNorm = (position - center_).array().square().sum(); + return (squareNorm <= radiusSquare_); +} + +void SpiralIterator::generateRing() +{ + distance_++; + Index point(distance_, 0); + Index pointInMap; + Index normal; + do { + pointInMap.x() = point.x() + indexCenter_.x(); + pointInMap.y() = point.y() + indexCenter_.y(); + if (checkIfIndexInRange(pointInMap, bufferSize_)) { + if (distance_ == nRings_ || distance_ == nRings_ - 1) { + if (isInside(pointInMap)) + pointsRing_.push_back(pointInMap); + } else { + pointsRing_.push_back(pointInMap); + } + } + normal.x() = -signum(point.y()); + normal.y() = signum(point.x()); + if (normal.x() != 0 + && (int) Vector(point.x() + normal.x(), point.y()).norm() == distance_) + point.x() += normal.x(); + else if (normal.y() != 0 + && (int) Vector(point.x(), point.y() + normal.y()).norm() == distance_) + point.y() += normal.y(); + else { + point.x() += normal.x(); + point.y() += normal.y(); + } + } while (point.x() != distance_ || point.y() != 0); +} + +double SpiralIterator::getCurrentRadius() const +{ + Index radius = *(*this) - indexCenter_; + return radius.matrix().norm() * resolution_; +} + +} /* namespace grid_map */ + diff --git a/ros/src/vendor/grid_map/grid_map_core/src/iterators/SubmapIterator.cpp b/ros/src/vendor/grid_map/grid_map_core/src/iterators/SubmapIterator.cpp new file mode 100644 index 00000000000..47b445c0703 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/src/iterators/SubmapIterator.cpp @@ -0,0 +1,96 @@ +/* + * SubmapIterator.hpp + * + * Created on: Sep 22, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/iterators/SubmapIterator.hpp" +#include "grid_map_core/GridMapMath.hpp" + +using namespace std; + +namespace grid_map { + +SubmapIterator::SubmapIterator(const grid_map::SubmapGeometry& submap) + : SubmapIterator(submap.getGridMap(), submap.getStartIndex(), submap.getSize()) +{ +} + +SubmapIterator::SubmapIterator(const grid_map::GridMap& gridMap, + const grid_map::BufferRegion& bufferRegion) + : SubmapIterator(gridMap, bufferRegion.getStartIndex(), bufferRegion.getSize()) +{ +} + + +SubmapIterator::SubmapIterator(const grid_map::GridMap& gridMap, const Index& submapStartIndex, + const Size& submapSize) +{ + size_ = gridMap.getSize(); + startIndex_ = gridMap.getStartIndex(); + index_ = submapStartIndex; + submapSize_ = submapSize; + submapStartIndex_ = submapStartIndex; + submapIndex_.setZero(); + isPastEnd_ = false; +} + +SubmapIterator::SubmapIterator(const SubmapIterator* other) +{ + size_ = other->size_; + startIndex_ = other->startIndex_; + submapSize_ = other->submapSize_; + submapStartIndex_ = other->submapStartIndex_; + index_ = other->index_; + submapIndex_ = other->submapIndex_; + isPastEnd_ = other->isPastEnd_; +} + +SubmapIterator& SubmapIterator::operator =(const SubmapIterator& other) +{ + size_ = other.size_; + startIndex_ = other.startIndex_; + submapSize_ = other.submapSize_; + submapStartIndex_ = other.submapStartIndex_; + index_ = other.index_; + submapIndex_ = other.submapIndex_; + isPastEnd_ = other.isPastEnd_; + return *this; +} + +bool SubmapIterator::operator !=(const SubmapIterator& other) const +{ + return (index_ != other.index_).any(); +} + +const Index& SubmapIterator::operator *() const +{ + return index_; +} + +const Index& SubmapIterator::getSubmapIndex() const +{ + return submapIndex_; +} + +SubmapIterator& SubmapIterator::operator ++() +{ + isPastEnd_ = !incrementIndexForSubmap(submapIndex_, index_, submapStartIndex_, + submapSize_, size_, startIndex_); + return *this; +} + +bool SubmapIterator::isPastEnd() const +{ + return isPastEnd_; +} + +const Size& SubmapIterator::getSubmapSize() const +{ + return submapSize_; +} + +} /* namespace grid_map */ + diff --git a/ros/src/vendor/grid_map/grid_map_core/test/EigenPluginsTest.cpp b/ros/src/vendor/grid_map/grid_map_core/test/EigenPluginsTest.cpp new file mode 100644 index 00000000000..d519b88967f --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/test/EigenPluginsTest.cpp @@ -0,0 +1,114 @@ +/* + * EigenMatrixBaseAddonsTest.cpp + * + * Created on: Sep 23, 2015 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/grid_map_core.hpp" + +// gtest +#include + +// Eigen +#include + +using namespace std; +using namespace Eigen; + +TEST(EigenMatrixBaseAddons, numberOfFinites) +{ + Eigen::Matrix3f matrix(Eigen::Matrix3f::Ones()); + matrix(0, 0) = NAN; + matrix(1, 0) = NAN; + EXPECT_EQ(7, matrix.numberOfFinites()); + + Matrix matrix2; + matrix2.setOnes(); + EXPECT_EQ(matrix2.rows() * matrix2.cols(), matrix2.numberOfFinites()); + + Matrix matrix3; + matrix3.setConstant(NAN); + matrix3.col(3).setConstant(0.0); + EXPECT_EQ(matrix3.rows(), matrix3.numberOfFinites()); +} + +TEST(EigenMatrixBaseAddons, sumOfFinites) +{ + Matrix matrix; + matrix.setRandom(); + EXPECT_NEAR(matrix.sum(), matrix.sumOfFinites(), 1e-10); + double finiteSum = matrix.sum() - matrix(0, 0) - matrix(1, 2) - matrix(3, 6) - matrix(6, 12); + matrix(0, 0) = NAN; + matrix(1, 2) = NAN; + matrix(3, 6) = NAN; + matrix(6, 12) = NAN; + EXPECT_NEAR(finiteSum, matrix.sumOfFinites(), 1e-10); + matrix.setConstant(NAN); + EXPECT_TRUE(std::isnan(matrix.sumOfFinites())); + matrix(5, 7) = 1.0; + EXPECT_NEAR(1.0, matrix.sumOfFinites(), 1e-10); +} + +TEST(EigenMatrixBaseAddons, meanOfFinites) +{ + Eigen::Matrix3f matrix(Eigen::Matrix3f::Ones()); + matrix(0, 0) = NAN; + matrix(1, 1) = NAN; + EXPECT_DOUBLE_EQ(1.0, matrix.meanOfFinites()); + + Matrix matrix2; + matrix2.setRandom(); + EXPECT_NEAR(matrix2.mean(), matrix2.meanOfFinites(), 1e-10); +} + +TEST(EigenMatrixBaseAddons, minCoeffOfFinites) +{ + Matrix matrix; + matrix.setRandom(); + double min = matrix.minCoeff(); + EXPECT_NEAR(min, matrix.minCoeffOfFinites(), 1e-10); + + int i, j; + matrix.maxCoeff(&i, &j); + matrix(i, j) = NAN; + EXPECT_NEAR(min, matrix.minCoeffOfFinites(), 1e-10); + + matrix.setConstant(NAN); + EXPECT_TRUE(std::isnan(matrix.minCoeffOfFinites())); + matrix(i, j) = -1.0; + EXPECT_NEAR(-1.0, matrix.minCoeffOfFinites(), 1e-10); +} + +TEST(EigenMatrixBaseAddons, maxCoeffOfFinites) +{ + Matrix matrix; + matrix.setRandom(); + double max = matrix.maxCoeff(); + EXPECT_NEAR(max, matrix.maxCoeffOfFinites(), 1e-10); + + int i, j; + matrix.minCoeff(&i, &j); + matrix(i, j) = NAN; + EXPECT_NEAR(max, matrix.maxCoeffOfFinites(), 1e-10); + + matrix.setConstant(NAN); + EXPECT_TRUE(std::isnan(matrix.maxCoeffOfFinites())); + matrix(i, j) = -1.0; + EXPECT_NEAR(-1.0, matrix.maxCoeffOfFinites(), 1e-10); +} + +TEST(EigenMatrixBaseAddons, clamp) +{ + Eigen::VectorXf vector(Eigen::VectorXf::LinSpaced(9, 1.0, 9.0)); + Eigen::Matrix3f matrix; + matrix << vector.segment(0, 3), vector.segment(3, 3), vector.segment(6, 3); + matrix(1, 1) = NAN; + matrix = matrix.unaryExpr(grid_map::Clamp(2.1, 7.0)); + EXPECT_NEAR(2.1, matrix(0, 0), 1e-7); + EXPECT_NEAR(2.1, matrix(1, 0), 1e-7); + EXPECT_NEAR(3.0, matrix(2, 0), 1e-7); + EXPECT_TRUE(std::isnan(matrix(1, 1))); + EXPECT_NEAR(7.0, matrix(2, 2), 1e-7); +} diff --git a/ros/src/vendor/grid_map/grid_map_core/test/EllipseIteratorTest.cpp b/ros/src/vendor/grid_map/grid_map_core/test/EllipseIteratorTest.cpp new file mode 100644 index 00000000000..5c939929596 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/test/EllipseIteratorTest.cpp @@ -0,0 +1,60 @@ +/* + * EllipseIteratorTest.cpp + * + * Created on: Dec 2, 2015 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/iterators/EllipseIterator.hpp" +#include "grid_map_core/GridMap.hpp" + +// Eigen +#include + +// gtest +#include + +// Limits +#include + +// Vector +#include + +using namespace std; +using namespace Eigen; +using namespace grid_map; + +TEST(EllipseIterator, OneCellWideEllipse) +{ + GridMap map( { "types" }); + map.setGeometry(Length(8.0, 5.0), 1.0, Position(0.0, 0.0)); + + EllipseIterator iterator(map, Position(0.0, 0.0), Length(8.0, 1.0)); + + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(0, (*iterator)(0)); + EXPECT_EQ(2, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(1, (*iterator)(0)); + EXPECT_EQ(2, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(2, (*iterator)(0)); + EXPECT_EQ(2, (*iterator)(1)); + + ++iterator; + ++iterator; + ++iterator; + ++iterator; + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(7, (*iterator)(0)); + EXPECT_EQ(2, (*iterator)(1)); + + ++iterator; + EXPECT_TRUE(iterator.isPastEnd()); +} diff --git a/ros/src/vendor/grid_map/grid_map_core/test/GridMapIteratorTest.cpp b/ros/src/vendor/grid_map/grid_map_core/test/GridMapIteratorTest.cpp new file mode 100644 index 00000000000..ffd2d6d4037 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/test/GridMapIteratorTest.cpp @@ -0,0 +1,63 @@ +/* + * GridMapDataIterator.cpp + * + * Created on: Feb 16, 2016 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/iterators/GridMapIterator.hpp" +#include "grid_map_core/GridMap.hpp" + +// Eigen +#include + +// gtest +#include + +// Limits +#include + +// Vector +#include + +using namespace std; +using namespace grid_map; + +TEST(GridMapIterator, Simple) +{ + GridMap map; + map.setGeometry(Length(8.1, 5.1), 1.0, Position(0.0, 0.0)); // bufferSize(8, 5) + map.add("layer", 0.0); + GridMapIterator iterator(map); + + unsigned int i = 0; + for (; !iterator.isPastEnd(); ++iterator, ++i) { + map.at("layer", *iterator) = 1.0; + EXPECT_FALSE(iterator.isPastEnd()); + } + + EXPECT_EQ(40, i); + EXPECT_TRUE(iterator.isPastEnd()); + EXPECT_TRUE((map["layer"].array() == 1.0f).all()); +} + +TEST(GridMapIterator, LinearIndex) +{ + GridMap map; + map.setGeometry(Length(8.1, 5.1), 1.0, Position(0.0, 0.0)); // bufferSize(8, 5) + map.add("layer", 0.0); + GridMapIterator iterator(map); + + auto& data = map["layer"]; + unsigned int i = 0; + for (; !iterator.isPastEnd(); ++iterator, ++i) { + data(iterator.getLinearIndex()) = 1.0; + EXPECT_EQ(i, iterator.getLinearIndex()); + EXPECT_FALSE(iterator.isPastEnd()); + } + + EXPECT_EQ(40, i); + EXPECT_TRUE(iterator.isPastEnd()); + EXPECT_TRUE((map["layer"].array() == 1.0f).all()); +} diff --git a/ros/src/vendor/grid_map/grid_map_core/test/GridMapMathTest.cpp b/ros/src/vendor/grid_map/grid_map_core/test/GridMapMathTest.cpp new file mode 100644 index 00000000000..d094b113342 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/test/GridMapMathTest.cpp @@ -0,0 +1,987 @@ +/* + * GridMapMathTest.cpp + * + * Created on: Feb 10, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/GridMapMath.hpp" + +// Eigen +#include + +// gtest +#include + +// Limits +#include + +// Vector +#include + +using namespace std; +using namespace grid_map; + +TEST(PositionFromIndex, Simple) +{ + Length mapLength(3.0, 2.0); + Position mapPosition(-1.0, 2.0); + double resolution = 1.0; + Size bufferSize(3, 2); + Position position; + + EXPECT_TRUE(getPositionFromIndex(position, Index(0, 0), mapLength, mapPosition, resolution, bufferSize)); + EXPECT_DOUBLE_EQ(1.0 + mapPosition.x(), position.x()); + EXPECT_DOUBLE_EQ(0.5 + mapPosition.y(), position.y()); + + EXPECT_TRUE(getPositionFromIndex(position, Index(1, 0), mapLength, mapPosition, resolution, bufferSize)); + EXPECT_DOUBLE_EQ(0.0 + mapPosition.x(), position.x()); + EXPECT_DOUBLE_EQ(0.5 + mapPosition.y(), position.y()); + + EXPECT_TRUE(getPositionFromIndex(position, Index(1, 1), mapLength, mapPosition, resolution, bufferSize)); + EXPECT_DOUBLE_EQ(0.0 + mapPosition.x(), position.x()); + EXPECT_DOUBLE_EQ(-0.5 + mapPosition.y(), position.y()); + + EXPECT_TRUE(getPositionFromIndex(position, Index(2, 1), mapLength, mapPosition, resolution, bufferSize)); + EXPECT_DOUBLE_EQ(-1.0 + mapPosition.x(), position.x()); + EXPECT_DOUBLE_EQ(-0.5 + mapPosition.y(), position.y()); + + EXPECT_FALSE(getPositionFromIndex(position, Index(3, 1), mapLength, mapPosition, resolution, bufferSize)); +} + +TEST(PositionFromIndex, CircularBuffer) +{ + Length mapLength(0.5, 0.4); + Position mapPosition(-0.1, 13.4); + double resolution = 0.1; + Size bufferSize(5, 4); + Index bufferStartIndex(3, 1); + Position position; + + EXPECT_TRUE(getPositionFromIndex(position, Index(3, 1), mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)); + EXPECT_DOUBLE_EQ(0.2 + mapPosition.x(), position.x()); + EXPECT_DOUBLE_EQ(0.15 + mapPosition.y(), position.y()); + + EXPECT_TRUE(getPositionFromIndex(position, Index(4, 2), mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)); + EXPECT_DOUBLE_EQ(0.1 + mapPosition.x(), position.x()); + EXPECT_DOUBLE_EQ(0.05 + mapPosition.y(), position.y()); + + EXPECT_TRUE(getPositionFromIndex(position, Index(2, 0), mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)); + EXPECT_DOUBLE_EQ(-0.2 + mapPosition.x(), position.x()); + EXPECT_DOUBLE_EQ(-0.15 + mapPosition.y(), position.y()); + + EXPECT_TRUE(getPositionFromIndex(position, Index(0, 0), mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)); + EXPECT_DOUBLE_EQ(0.0 + mapPosition.x(), position.x()); + EXPECT_DOUBLE_EQ(-0.15 + mapPosition.y(), position.y()); + + EXPECT_TRUE(getPositionFromIndex(position, Index(4, 3), mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)); + EXPECT_DOUBLE_EQ(0.1 + mapPosition.x(), position.x()); + EXPECT_DOUBLE_EQ(-0.05 + mapPosition.y(), position.y()); + + EXPECT_FALSE(getPositionFromIndex(position, Index(5, 3), mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)); +} + +TEST(IndexFromPosition, Simple) +{ + Length mapLength(3.0, 2.0); + Position mapPosition(-12.4, -7.1); + double resolution = 1.0; + Index bufferSize(3, 2); + Index index; + + EXPECT_TRUE(getIndexFromPosition(index, Position(1.0, 0.5) + mapPosition, mapLength, mapPosition, resolution, bufferSize)); + EXPECT_EQ(0, index(0)); + EXPECT_EQ(0, index(1)); + + EXPECT_TRUE(getIndexFromPosition(index, Position(-1.0, -0.5) + mapPosition, mapLength, mapPosition, resolution, bufferSize)); + EXPECT_EQ(2, index(0)); + EXPECT_EQ(1, index(1)); + + EXPECT_TRUE(getIndexFromPosition(index, Position(0.6, 0.1) + mapPosition, mapLength, mapPosition, resolution, bufferSize)); + EXPECT_EQ(0, index(0)); + EXPECT_EQ(0, index(1)); + + EXPECT_TRUE(getIndexFromPosition(index, Position(0.4, -0.1) + mapPosition, mapLength, mapPosition, resolution, bufferSize)); + EXPECT_EQ(1, index(0)); + EXPECT_EQ(1, index(1)); + + EXPECT_TRUE(getIndexFromPosition(index, Position(0.4, 0.1) + mapPosition, mapLength, mapPosition, resolution, bufferSize)); + EXPECT_EQ(1, index(0)); + EXPECT_EQ(0, index(1)); + + EXPECT_FALSE(getIndexFromPosition(index, Position(4.0, 0.5) + mapPosition, mapLength, mapPosition, resolution, bufferSize)); +} + +TEST(IndexFromPosition, EdgeCases) +{ + Length mapLength(3.0, 2.0); + Position mapPosition(0.0, 0.0); + double resolution = 1.0; + Size bufferSize(3, 2); + Index index; + + EXPECT_TRUE(getIndexFromPosition(index, Position(0.0, DBL_EPSILON), mapLength, mapPosition, resolution, bufferSize)); + EXPECT_EQ(1, index(0)); + EXPECT_EQ(0, index(1)); + + EXPECT_TRUE(getIndexFromPosition(index, Position(0.5 - DBL_EPSILON, -DBL_EPSILON), mapLength, mapPosition, resolution, bufferSize)); + EXPECT_EQ(1, index(0)); + EXPECT_EQ(1, index(1)); + + EXPECT_TRUE(getIndexFromPosition(index, Position(-0.5 - DBL_EPSILON, -DBL_EPSILON), mapLength, mapPosition, resolution, bufferSize)); + EXPECT_EQ(2, index(0)); + EXPECT_EQ(1, index(1)); + + EXPECT_FALSE(getIndexFromPosition(index, Position(-1.5, 1.0), mapLength, mapPosition, resolution, bufferSize)); +} + +TEST(IndexFromPosition, CircularBuffer) +{ + Length mapLength(0.5, 0.4); + Position mapPosition(0.4, -0.9); + double resolution = 0.1; + Size bufferSize(5, 4); + Index bufferStartIndex(3, 1); + Index index; + + EXPECT_TRUE(getIndexFromPosition(index, Position(0.2, 0.15) + mapPosition, mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)); + EXPECT_EQ(3, index(0)); + EXPECT_EQ(1, index(1)); + + EXPECT_TRUE(getIndexFromPosition(index, Position(0.03, -0.17) + mapPosition, mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)); + EXPECT_EQ(0, index(0)); + EXPECT_EQ(0, index(1)); +} + +TEST(checkIfPositionWithinMap, Inside) +{ + Length mapLength(50.0, 25.0); + Position mapPosition(11.4, 0.0); + + EXPECT_TRUE(checkIfPositionWithinMap(Position(0.0, 0.0) + mapPosition, mapLength, mapPosition)); + EXPECT_TRUE(checkIfPositionWithinMap(Position(5.0, 5.0) + mapPosition, mapLength, mapPosition)); + EXPECT_TRUE(checkIfPositionWithinMap(Position(20.0, 10.0) + mapPosition, mapLength, mapPosition)); + EXPECT_TRUE(checkIfPositionWithinMap(Position(20.0, -10.0) + mapPosition, mapLength, mapPosition)); + EXPECT_TRUE(checkIfPositionWithinMap(Position(-20.0, 10.0) + mapPosition, mapLength, mapPosition)); + EXPECT_TRUE(checkIfPositionWithinMap(Position(-20.0, -10.0) + mapPosition, mapLength, mapPosition)); +} + +TEST(checkIfPositionWithinMap, Outside) +{ + Length mapLength(10.0, 5.0); + Position mapPosition(-3.0, 145.2); + + EXPECT_FALSE(checkIfPositionWithinMap(Position(5.5, 0.0) + mapPosition, mapLength, mapPosition)); + EXPECT_FALSE(checkIfPositionWithinMap(Position(-5.5, 0.0) + mapPosition, mapLength, mapPosition)); + EXPECT_FALSE(checkIfPositionWithinMap(Position(-5.5, 3.0) + mapPosition, mapLength, mapPosition)); + EXPECT_FALSE(checkIfPositionWithinMap(Position(-5.5, -3.0) + mapPosition, mapLength, mapPosition)); + EXPECT_FALSE(checkIfPositionWithinMap(Position(3.0, 3.0) + mapPosition, mapLength, mapPosition)); +} + +TEST(checkIfPositionWithinMap, EdgeCases) +{ + Length mapLength(2.0, 3.0); + Position mapPosition(0.0, 0.0); + + EXPECT_FALSE(checkIfPositionWithinMap(Position(1.0, -1.5), mapLength, mapPosition)); + EXPECT_FALSE(checkIfPositionWithinMap(Position(-1.0, 1.5), mapLength, mapPosition)); + EXPECT_FALSE(checkIfPositionWithinMap(Position(1.0 + DBL_EPSILON, 1.0), mapLength, mapPosition)); + EXPECT_TRUE(checkIfPositionWithinMap(Position((2.0 + DBL_EPSILON) / 2.0, 1.0), mapLength, mapPosition)); + EXPECT_FALSE(checkIfPositionWithinMap(Position(0.5, -1.5 - (2.0 * DBL_EPSILON)), mapLength, mapPosition)); + EXPECT_TRUE(checkIfPositionWithinMap(Position(-0.5, (3.0 + DBL_EPSILON) / 2.0), mapLength, mapPosition)); +} + +TEST(getIndexShiftFromPositionShift, All) +{ + double resolution = 1.0; + Index indexShift; + + EXPECT_TRUE(getIndexShiftFromPositionShift(indexShift, Vector(0.0, 0.0), resolution)); + EXPECT_EQ(0, indexShift(0)); + EXPECT_EQ(0, indexShift(1)); + + EXPECT_TRUE(getIndexShiftFromPositionShift(indexShift, Vector(0.35, -0.45), resolution)); + EXPECT_EQ(0, indexShift(0)); + EXPECT_EQ(0, indexShift(1)); + + EXPECT_TRUE(getIndexShiftFromPositionShift(indexShift, Vector(0.55, -0.45), resolution)); + EXPECT_EQ(-1, indexShift(0)); + EXPECT_EQ(0, indexShift(1)); + + EXPECT_TRUE(getIndexShiftFromPositionShift(indexShift, Vector(-1.3, -2.65), resolution)); + EXPECT_EQ(1, indexShift(0)); + EXPECT_EQ(3, indexShift(1)); + + EXPECT_TRUE(getIndexShiftFromPositionShift(indexShift, Vector(-0.4, 0.09), 0.2)); + EXPECT_EQ(2, indexShift(0)); + EXPECT_EQ(0, indexShift(1)); +} + +TEST(getPositionShiftFromIndexShift, All) +{ + double resolution = 0.3; + Vector positionShift; + + EXPECT_TRUE(getPositionShiftFromIndexShift(positionShift, Index(0, 0), resolution)); + EXPECT_DOUBLE_EQ(0.0, positionShift.x()); + EXPECT_DOUBLE_EQ(0.0, positionShift.y()); + + EXPECT_TRUE(getPositionShiftFromIndexShift(positionShift, Index(1, -1), resolution)); + EXPECT_DOUBLE_EQ(-0.3, positionShift.x()); + EXPECT_DOUBLE_EQ(0.3, positionShift.y()); + + EXPECT_TRUE(getPositionShiftFromIndexShift(positionShift, Index(2, 1), resolution)); + EXPECT_DOUBLE_EQ(-0.6, positionShift.x()); + EXPECT_DOUBLE_EQ(-0.3, positionShift.y()); +} + +TEST(checkIfIndexInRange, All) +{ + Size bufferSize(10, 15); + EXPECT_TRUE(checkIfIndexInRange(Index(0, 0), bufferSize)); + EXPECT_TRUE(checkIfIndexInRange(Index(9, 14), bufferSize)); + EXPECT_FALSE(checkIfIndexInRange(Index(10, 5), bufferSize)); + EXPECT_FALSE(checkIfIndexInRange(Index(5, 300), bufferSize)); + EXPECT_FALSE(checkIfIndexInRange(Index(-1, 0), bufferSize)); + EXPECT_FALSE(checkIfIndexInRange(Index(0, -300), bufferSize)); +} + +TEST(boundIndexToRange, All) +{ + int index; + int bufferSize = 10; + + index = 0; + boundIndexToRange(index, bufferSize); + EXPECT_EQ(0, index); + + index = 1; + boundIndexToRange(index, bufferSize); + EXPECT_EQ(1, index); + + index = -1; + boundIndexToRange(index, bufferSize); + EXPECT_EQ(0, index); + + index = 9; + boundIndexToRange(index, bufferSize); + EXPECT_EQ(9, index); + + index = 10; + boundIndexToRange(index, bufferSize); + EXPECT_EQ(9, index); + + index = 35; + boundIndexToRange(index, bufferSize); + EXPECT_EQ(9, index); + + index = -19; + boundIndexToRange(index, bufferSize); + EXPECT_EQ(0, index); +} + +TEST(wrapIndexToRange, All) +{ + int index; + int bufferSize = 10; + + index = 0; + wrapIndexToRange(index, bufferSize); + EXPECT_EQ(0, index); + + index = 1; + wrapIndexToRange(index, bufferSize); + EXPECT_EQ(1, index); + + index = -1; + wrapIndexToRange(index, bufferSize); + EXPECT_EQ(9, index); + + index = 9; + wrapIndexToRange(index, bufferSize); + EXPECT_EQ(9, index); + + index = 10; + wrapIndexToRange(index, bufferSize); + EXPECT_EQ(0, index); + + index = 11; + wrapIndexToRange(index, bufferSize); + EXPECT_EQ(1, index); + + index = 35; + wrapIndexToRange(index, bufferSize); + EXPECT_EQ(5, index); + + index = -9; + wrapIndexToRange(index, bufferSize); + EXPECT_EQ(1, index); + + index = -19; + wrapIndexToRange(index, bufferSize); + EXPECT_EQ(1, index); +} + +TEST(boundPositionToRange, Simple) +{ + double epsilon = 11.0 * numeric_limits::epsilon(); + + Length mapLength(30.0, 10.0); + Position mapPosition(0.0, 0.0); + Position position; + + position << 0.0, 0.0; + boundPositionToRange(position, mapLength, mapPosition); + EXPECT_DOUBLE_EQ(0.0, position.x()); + EXPECT_DOUBLE_EQ(0.0, position.y()); + + position << 15.0, 5.0; + boundPositionToRange(position, mapLength, mapPosition); + EXPECT_NEAR(15.0, position.x(), 15.0 * epsilon); + EXPECT_GE(15.0, position.x()); + EXPECT_NEAR(5.0, position.y(), 5.0 * epsilon); + EXPECT_GE(5.0, position.y()); + + position << -15.0, -5.0; + boundPositionToRange(position, mapLength, mapPosition); + EXPECT_NEAR(-15.0, position.x(), 15.0 * epsilon); + EXPECT_LE(-15.0, position.x()); + EXPECT_NEAR(-5.0, position.y(), 5.0 * epsilon); + EXPECT_LE(-5.0, position.y()); + + position << 16.0, 6.0; + boundPositionToRange(position, mapLength, mapPosition); + EXPECT_NEAR(15.0, position.x(), 16.0 * epsilon); + EXPECT_GE(15.0, position.x()); + EXPECT_NEAR(5.0, position.y(), 6.0 * epsilon); + EXPECT_GE(5.0, position.y()); + + position << -16.0, -6.0; + boundPositionToRange(position, mapLength, mapPosition); + EXPECT_NEAR(-15.0, position.x(), 16.0 * epsilon); + EXPECT_LE(-15.0, position.x()); + EXPECT_NEAR(-5.0, position.y(), 6.0 * epsilon); + EXPECT_LE(-5.0, position.y()); + + position << 1e6, 1e6; + boundPositionToRange(position, mapLength, mapPosition); + EXPECT_NEAR(15.0, position.x(), 1e6 * epsilon); + EXPECT_GE(15.0, position.x()); + EXPECT_NEAR(5.0, position.y(), 1e6 * epsilon); + EXPECT_GE(5.0, position.y()); + + position << -1e6, -1e6; + boundPositionToRange(position, mapLength, mapPosition); + EXPECT_NEAR(-15.0, position.x(), 1e6 * epsilon); + EXPECT_LE(-15.0, position.x()); + EXPECT_NEAR(-5.0, position.y(), 1e6 * epsilon); + EXPECT_LE(-5.0, position.y()); +} + +TEST(boundPositionToRange, Position) +{ + double epsilon = 11.0 * numeric_limits::epsilon(); + + Length mapLength(30.0, 10.0); + Position mapPosition(1.0, 2.0); + Position position; + + position << 0.0, 0.0; + boundPositionToRange(position, mapLength, mapPosition); + EXPECT_DOUBLE_EQ(0.0, position.x()); + EXPECT_DOUBLE_EQ(0.0, position.y()); + + position << 16.0, 7.0; + boundPositionToRange(position, mapLength, mapPosition); + EXPECT_NEAR(16.0, position.x(), 16.0 * epsilon); + EXPECT_GE(16.0, position.x()); + EXPECT_NEAR(7.0, position.y(), 7.0 * epsilon); + EXPECT_GE(7.0, position.y()); + + position << -14.0, -3.0; + boundPositionToRange(position, mapLength, mapPosition); + EXPECT_NEAR(-14.0, position.x(), 14.0 * epsilon); + EXPECT_LE(-14.0, position.x()); + EXPECT_NEAR(-3.0, position.y(), 3.0 * epsilon); + EXPECT_LE(-3.0, position.y()); + + position << 17.0, 8.0; + boundPositionToRange(position, mapLength, mapPosition); + EXPECT_NEAR(16.0, position.x(), 17.0 * epsilon); + EXPECT_GE(16.0, position.x()); + EXPECT_NEAR(7.0, position.y(), 8.0 * epsilon); + EXPECT_GE(7.0, position.y()); + + position << -15.0, -4.0; + boundPositionToRange(position, mapLength, mapPosition); + EXPECT_NEAR(-14.0, position.x(), 15.0 * epsilon); + EXPECT_LE(-14.0, position.x()); + EXPECT_NEAR(-3.0, position.y(), 4.0 * epsilon); + EXPECT_LE(-3.0, position.y()); + + position << 1e6, 1e6; + boundPositionToRange(position, mapLength, mapPosition); + EXPECT_NEAR(16.0, position.x(), 1e6 * epsilon); + EXPECT_GE(16.0, position.x()); + EXPECT_NEAR(7.0, position.y(), 1e6 * epsilon); + EXPECT_GE(7.0, position.y()); + + position << -1e6, -1e6; + boundPositionToRange(position, mapLength, mapPosition); + EXPECT_NEAR(-14.0, position.x(), 1e6 * epsilon); + EXPECT_LE(-14.0, position.x()); + EXPECT_NEAR(-3.0, position.y(), 1e6 * epsilon); + EXPECT_LE(-3.0, position.y()); +} + +TEST(getSubmapInformation, Simple) +{ + // Map + Length mapLength(5.0, 4.0); + Position mapPosition(0.0, 0.0); + double resolution = 1.0; + Size bufferSize(5, 4); + + // Requested submap + Position requestedSubmapPosition; + Position requestedSubmapLength; + + // The returned submap indeces + Index submapTopLeftIndex; + Index submapSize; + Position submapPosition; + Length submapLength; + Index requestedIndexInSubmap; + + requestedSubmapPosition << 0.0, 0.5; + requestedSubmapLength << 0.9, 2.9; + EXPECT_TRUE(getSubmapInformation(submapTopLeftIndex, submapSize, submapPosition, submapLength, requestedIndexInSubmap, + requestedSubmapPosition, requestedSubmapLength, mapLength, mapPosition, resolution, bufferSize)); + EXPECT_EQ(2, submapTopLeftIndex(0)); + EXPECT_EQ(0, submapTopLeftIndex(1)); + EXPECT_EQ(1, submapSize(0)); + EXPECT_EQ(3, submapSize(1)); + EXPECT_DOUBLE_EQ(0.0, submapPosition.x()); + EXPECT_DOUBLE_EQ(0.5, submapPosition.y()); + EXPECT_DOUBLE_EQ(1.0, submapLength(0)); + EXPECT_DOUBLE_EQ(3.0, submapLength(1)); + EXPECT_EQ(0, requestedIndexInSubmap(0)); + EXPECT_EQ(1, requestedIndexInSubmap(1)); +} + +TEST(getSubmapInformation, Zero) +{ + // Map + Length mapLength(5.0, 4.0); + Position mapPosition(0.0, 0.0); + double resolution = 1.0; + Size bufferSize(5, 4); + + // Requested submap + Position requestedSubmapPosition; + Length requestedSubmapLength; + + // The returned submap indeces + Index submapTopLeftIndex; + Index submapSize; + Position submapPosition; + Length submapLength; + Index requestedIndexInSubmap; + + requestedSubmapPosition << -1.0, -0.5; + requestedSubmapLength << 0.0, 0.0; + EXPECT_TRUE(getSubmapInformation(submapTopLeftIndex, submapSize, submapPosition, submapLength, requestedIndexInSubmap, + requestedSubmapPosition, requestedSubmapLength, + mapLength, mapPosition, resolution, bufferSize)); + EXPECT_EQ(3, submapTopLeftIndex(0)); + EXPECT_EQ(2, submapTopLeftIndex(1)); + EXPECT_EQ(1, submapSize(0)); + EXPECT_EQ(1, submapSize(1)); + EXPECT_DOUBLE_EQ(requestedSubmapPosition.x(), submapPosition.x()); + EXPECT_DOUBLE_EQ(requestedSubmapPosition.y(), submapPosition.y()); + EXPECT_DOUBLE_EQ(resolution, submapLength(0)); + EXPECT_DOUBLE_EQ(resolution, submapLength(1)); + EXPECT_EQ(0, requestedIndexInSubmap(0)); + EXPECT_EQ(0, requestedIndexInSubmap(1)); +} + +TEST(getSubmapInformation, ExceedingBoundaries) +{ + // Map + Length mapLength(5.0, 4.0); + Position mapPosition(0.0, 0.0); + double resolution = 1.0; + Size bufferSize(5, 4); + + // Requested submap + Position requestedSubmapPosition; + Length requestedSubmapLength; + + // The returned submap indeces + Index submapTopLeftIndex; + Size submapSize; + Position submapPosition; + Length submapLength; + Index requestedIndexInSubmap; + + requestedSubmapPosition << 2.0, 1.5; + requestedSubmapLength << 2.9, 2.9; + EXPECT_TRUE(getSubmapInformation(submapTopLeftIndex, submapSize, submapPosition, submapLength, requestedIndexInSubmap, + requestedSubmapPosition, requestedSubmapLength, + mapLength, mapPosition, resolution, bufferSize)); + EXPECT_EQ(0, submapTopLeftIndex(0)); + EXPECT_EQ(0, submapTopLeftIndex(1)); + EXPECT_EQ(2, submapSize(0)); + EXPECT_EQ(2, submapSize(1)); + EXPECT_DOUBLE_EQ(1.5, submapPosition.x()); + EXPECT_DOUBLE_EQ(1.0, submapPosition.y()); + EXPECT_DOUBLE_EQ(2.0, submapLength(0)); + EXPECT_DOUBLE_EQ(2.0, submapLength(1)); + EXPECT_EQ(0, requestedIndexInSubmap(0)); + EXPECT_EQ(0, requestedIndexInSubmap(1)); + + requestedSubmapPosition << 0.0, 0.0; + requestedSubmapLength << 1e6, 1e6; + EXPECT_TRUE(getSubmapInformation(submapTopLeftIndex, submapSize, submapPosition, submapLength, requestedIndexInSubmap, + requestedSubmapPosition, requestedSubmapLength, + mapLength, mapPosition, resolution, bufferSize)); + EXPECT_EQ(0, submapTopLeftIndex(0)); + EXPECT_EQ(0, submapTopLeftIndex(1)); + EXPECT_EQ(bufferSize(0), submapSize(0)); + EXPECT_EQ(bufferSize(1), submapSize(1)); + EXPECT_DOUBLE_EQ(0.0, submapPosition.x()); + EXPECT_DOUBLE_EQ(0.0, submapPosition.y()); + EXPECT_DOUBLE_EQ(mapLength(0), submapLength(0)); + EXPECT_DOUBLE_EQ(mapLength(1), submapLength(1)); + EXPECT_EQ(2, requestedIndexInSubmap(0)); + EXPECT_LE(1, requestedIndexInSubmap(1)); + EXPECT_GE(2, requestedIndexInSubmap(1)); +} + +TEST(getSubmapInformation, CircularBuffer) +{ + // Map + Length mapLength(5.0, 4.0); + Position mapPosition(0.0, 0.0); + double resolution = 1.0; + Size bufferSize(5, 4); + Index bufferStartIndex(2, 1); + + // Requested submap + Position requestedSubmapPosition; + Length requestedSubmapLength; + + // The returned submap indeces + Index submapTopLeftIndex; + Size submapSize; + Position submapPosition; + Length submapLength; + Index requestedIndexInSubmap; + + requestedSubmapPosition << 0.0, 0.5; + requestedSubmapLength << 0.9, 2.9; + EXPECT_TRUE(getSubmapInformation(submapTopLeftIndex, submapSize, submapPosition, submapLength, requestedIndexInSubmap, + requestedSubmapPosition, requestedSubmapLength, + mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)); + EXPECT_EQ(4, submapTopLeftIndex(0)); + EXPECT_EQ(1, submapTopLeftIndex(1)); + EXPECT_EQ(1, submapSize(0)); + EXPECT_EQ(3, submapSize(1)); + EXPECT_DOUBLE_EQ(0.0, submapPosition.x()); + EXPECT_DOUBLE_EQ(0.5, submapPosition.y()); + EXPECT_DOUBLE_EQ(1.0, submapLength(0)); + EXPECT_DOUBLE_EQ(3.0, submapLength(1)); + EXPECT_EQ(0, requestedIndexInSubmap(0)); + EXPECT_EQ(1, requestedIndexInSubmap(1)); + + requestedSubmapPosition << 2.0, 1.5; + requestedSubmapLength << 2.9, 2.9; + EXPECT_TRUE(getSubmapInformation(submapTopLeftIndex, submapSize, submapPosition, submapLength, requestedIndexInSubmap, + requestedSubmapPosition, requestedSubmapLength, + mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)); + EXPECT_EQ(2, submapTopLeftIndex(0)); + EXPECT_EQ(1, submapTopLeftIndex(1)); + EXPECT_EQ(2, submapSize(0)); + EXPECT_EQ(2, submapSize(1)); + EXPECT_DOUBLE_EQ(1.5, submapPosition.x()); + EXPECT_DOUBLE_EQ(1.0, submapPosition.y()); + EXPECT_DOUBLE_EQ(2.0, submapLength(0)); + EXPECT_DOUBLE_EQ(2.0, submapLength(1)); + EXPECT_EQ(0, requestedIndexInSubmap(0)); + EXPECT_EQ(0, requestedIndexInSubmap(1)); + + requestedSubmapPosition << 0.0, 0.0; + requestedSubmapLength << 1e6, 1e6; + EXPECT_TRUE(getSubmapInformation(submapTopLeftIndex, submapSize, submapPosition, submapLength, requestedIndexInSubmap, + requestedSubmapPosition, requestedSubmapLength, + mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)); + EXPECT_EQ(2, submapTopLeftIndex(0)); + EXPECT_EQ(1, submapTopLeftIndex(1)); + EXPECT_EQ(bufferSize(0), submapSize(0)); + EXPECT_EQ(bufferSize(1), submapSize(1)); + EXPECT_DOUBLE_EQ(0.0, submapPosition.x()); + EXPECT_DOUBLE_EQ(0.0, submapPosition.y()); + EXPECT_DOUBLE_EQ(mapLength(0), submapLength(0)); + EXPECT_DOUBLE_EQ(mapLength(1), submapLength(1)); + EXPECT_EQ(2, requestedIndexInSubmap(0)); + EXPECT_LE(1, requestedIndexInSubmap(1)); + EXPECT_GE(2, requestedIndexInSubmap(1)); +} + +TEST(getSubmapInformation, Debug1) +{ + // Map + Length mapLength(4.98, 4.98); + Position mapPosition(-4.98, -5.76); + double resolution = 0.06; + Size bufferSize(83, 83); + Index bufferStartIndex(0, 13); + + // Requested submap + Position requestedSubmapPosition(-7.44, -3.42); + Length requestedSubmapLength(0.12, 0.12); + + // The returned submap indeces + Index submapTopLeftIndex; + Size submapSize; + Position submapPosition; + Length submapLength; + Index requestedIndexInSubmap; + + EXPECT_TRUE(getSubmapInformation(submapTopLeftIndex, submapSize, submapPosition, submapLength, requestedIndexInSubmap, + requestedSubmapPosition, requestedSubmapLength, + mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)); + EXPECT_EQ(2, submapSize(0)); + EXPECT_EQ(3, submapSize(1)); + EXPECT_DOUBLE_EQ(0.12, submapLength(0)); + EXPECT_DOUBLE_EQ(0.18, submapLength(1)); +} + +TEST(getSubmapInformation, Debug2) +{ + // Map + Length mapLength(4.98, 4.98); + Position mapPosition(2.46, -25.26); + double resolution = 0.06; + Size bufferSize(83, 83); + Index bufferStartIndex(42, 6); + + // Requested submap + Position requestedSubmapPosition(0.24, -26.82); + Length requestedSubmapLength(0.624614, 0.462276); + + // The returned submap indeces + Index submapTopLeftIndex; + Size submapSize; + Position submapPosition; + Length submapLength; + Index requestedIndexInSubmap; + + EXPECT_TRUE(getSubmapInformation(submapTopLeftIndex, submapSize, submapPosition, submapLength, requestedIndexInSubmap, + requestedSubmapPosition, requestedSubmapLength, + mapLength, mapPosition, resolution, bufferSize, bufferStartIndex)); + EXPECT_LT(0, submapSize(0)); + EXPECT_LT(0, submapSize(1)); + EXPECT_LT(0.0, submapLength(0)); + EXPECT_LT(0.0, submapLength(1)); +} + +TEST(getBufferRegionsForSubmap, Trivial) +{ + Size bufferSize(5, 4); + Index submapIndex(0, 0); + Size submapSize(0, 0); + std::vector regions; + + EXPECT_TRUE(getBufferRegionsForSubmap(regions, submapIndex, submapSize, bufferSize)); + EXPECT_EQ(1, regions.size()); + EXPECT_EQ(BufferRegion::Quadrant::TopLeft, regions[0].getQuadrant()); + EXPECT_EQ(0, regions[0].getStartIndex()[0]); + EXPECT_EQ(0, regions[0].getStartIndex()[1]); + EXPECT_EQ(0, regions[0].getSize()[0]); + EXPECT_EQ(0, regions[0].getSize()[1]); + + submapSize << 0, 7; + EXPECT_FALSE(getBufferRegionsForSubmap(regions, submapIndex, submapSize, bufferSize)); + + submapSize << 6, 7; + EXPECT_FALSE(getBufferRegionsForSubmap(regions, submapIndex, submapSize, bufferSize)); +} + +TEST(getBufferRegionsForSubmap, Simple) +{ + Size bufferSize(5, 4); + Index submapIndex(1, 2); + Size submapSize(3, 2); + std::vector regions; + + EXPECT_TRUE(getBufferRegionsForSubmap(regions, submapIndex, submapSize, bufferSize)); + EXPECT_EQ(1, regions.size()); + EXPECT_EQ(BufferRegion::Quadrant::TopLeft, regions[0].getQuadrant()); + EXPECT_EQ(1, regions[0].getStartIndex()[0]); + EXPECT_EQ(2, regions[0].getStartIndex()[1]); + EXPECT_EQ(3, regions[0].getSize()[0]); + EXPECT_EQ(2, regions[0].getSize()[1]); +} + +TEST(getBufferRegionsForSubmap, CircularBuffer) +{ + Size bufferSize(5, 4); + Index submapIndex; + Size submapSize; + Index bufferStartIndex(3, 1); + std::vector regions; + + submapIndex << 3, 1; + submapSize << 2, 3; + EXPECT_TRUE(getBufferRegionsForSubmap(regions, submapIndex, submapSize, bufferSize, bufferStartIndex)); + EXPECT_EQ(1, regions.size()); + EXPECT_EQ(BufferRegion::Quadrant::TopLeft, regions[0].getQuadrant()); + EXPECT_EQ(3, regions[0].getStartIndex()[0]); + EXPECT_EQ(1, regions[0].getStartIndex()[1]); + EXPECT_EQ(2, regions[0].getSize()[0]); + EXPECT_EQ(3, regions[0].getSize()[1]); + + submapIndex << 4, 1; + submapSize << 2, 3; + EXPECT_TRUE(getBufferRegionsForSubmap(regions, submapIndex, submapSize, bufferSize, bufferStartIndex)); + EXPECT_EQ(2, regions.size()); + EXPECT_EQ(BufferRegion::Quadrant::TopLeft, regions[0].getQuadrant()); + EXPECT_EQ(4, regions[0].getStartIndex()[0]); + EXPECT_EQ(1, regions[0].getStartIndex()[1]); + EXPECT_EQ(1, regions[0].getSize()[0]); + EXPECT_EQ(3, regions[0].getSize()[1]); + EXPECT_EQ(BufferRegion::Quadrant::BottomLeft, regions[1].getQuadrant()); + EXPECT_EQ(0, regions[1].getStartIndex()[0]); + EXPECT_EQ(1, regions[1].getStartIndex()[1]); + EXPECT_EQ(1, regions[1].getSize()[0]); + EXPECT_EQ(3, regions[1].getSize()[1]); + + submapIndex << 1, 0; + submapSize << 2, 1; + EXPECT_TRUE(getBufferRegionsForSubmap(regions, submapIndex, submapSize, bufferSize, bufferStartIndex)); + EXPECT_EQ(1, regions.size()); + EXPECT_EQ(BufferRegion::Quadrant::BottomRight, regions[0].getQuadrant()); + EXPECT_EQ(1, regions[0].getStartIndex()[0]); + EXPECT_EQ(0, regions[0].getStartIndex()[1]); + EXPECT_EQ(2, regions[0].getSize()[0]); + EXPECT_EQ(1, regions[0].getSize()[1]); + + submapIndex << 3, 1; + submapSize << 5, 4; + EXPECT_TRUE(getBufferRegionsForSubmap(regions, submapIndex, submapSize, bufferSize, bufferStartIndex));\ + EXPECT_EQ(4, regions.size()); + EXPECT_EQ(BufferRegion::Quadrant::TopLeft, regions[0].getQuadrant()); + EXPECT_EQ(3, regions[0].getStartIndex()[0]); + EXPECT_EQ(1, regions[0].getStartIndex()[1]); + EXPECT_EQ(2, regions[0].getSize()[0]); + EXPECT_EQ(3, regions[0].getSize()[1]); + EXPECT_EQ(BufferRegion::Quadrant::TopRight, regions[1].getQuadrant()); + EXPECT_EQ(3, regions[1].getStartIndex()[0]); + EXPECT_EQ(0, regions[1].getStartIndex()[1]); + EXPECT_EQ(2, regions[1].getSize()[0]); + EXPECT_EQ(1, regions[1].getSize()[1]); + EXPECT_EQ(BufferRegion::Quadrant::BottomLeft, regions[2].getQuadrant()); + EXPECT_EQ(0, regions[2].getStartIndex()[0]); + EXPECT_EQ(1, regions[2].getStartIndex()[1]); + EXPECT_EQ(3, regions[2].getSize()[0]); + EXPECT_EQ(3, regions[2].getSize()[1]); + EXPECT_EQ(BufferRegion::Quadrant::BottomRight, regions[3].getQuadrant()); + EXPECT_EQ(0, regions[3].getStartIndex()[0]); + EXPECT_EQ(0, regions[3].getStartIndex()[1]); + EXPECT_EQ(3, regions[3].getSize()[0]); + EXPECT_EQ(1, regions[3].getSize()[1]); +} + +TEST(checkIncrementIndex, Simple) +{ + Index index(0, 0); + Size bufferSize(4, 3); + + EXPECT_TRUE(incrementIndex(index, bufferSize)); + EXPECT_EQ(0, index[0]); + EXPECT_EQ(1, index[1]); + + EXPECT_TRUE(incrementIndex(index, bufferSize)); + EXPECT_EQ(0, index[0]); + EXPECT_EQ(2, index[1]); + + EXPECT_TRUE(incrementIndex(index, bufferSize)); + EXPECT_EQ(1, index[0]); + EXPECT_EQ(0, index[1]); + + EXPECT_TRUE(incrementIndex(index, bufferSize)); + EXPECT_EQ(1, index[0]); + EXPECT_EQ(1, index[1]); + + for (int i = 0; i < 6; i++) { + EXPECT_TRUE(incrementIndex(index, bufferSize)); + } + EXPECT_EQ(3, index[0]); + EXPECT_EQ(1, index[1]); + + EXPECT_TRUE(incrementIndex(index, bufferSize)); + EXPECT_EQ(3, index[0]); + EXPECT_EQ(2, index[1]); + + EXPECT_FALSE(incrementIndex(index, bufferSize)); + EXPECT_EQ(index[0], index[0]); + EXPECT_EQ(index[1], index[1]); +} + +TEST(checkIncrementIndex, CircularBuffer) +{ + Size bufferSize(4, 3); + Index bufferStartIndex(2, 1); + Index index(bufferStartIndex); + + EXPECT_TRUE(incrementIndex(index, bufferSize, bufferStartIndex)); + EXPECT_EQ(2, index[0]); + EXPECT_EQ(2, index[1]); + + EXPECT_TRUE(incrementIndex(index, bufferSize, bufferStartIndex)); + EXPECT_EQ(2, index[0]); + EXPECT_EQ(0, index[1]); + + EXPECT_TRUE(incrementIndex(index, bufferSize, bufferStartIndex)); + EXPECT_EQ(3, index[0]); + EXPECT_EQ(1, index[1]); + + EXPECT_TRUE(incrementIndex(index, bufferSize, bufferStartIndex)); + EXPECT_EQ(3, index[0]); + EXPECT_EQ(2, index[1]); + + EXPECT_TRUE(incrementIndex(index, bufferSize, bufferStartIndex)); + EXPECT_EQ(3, index[0]); + EXPECT_EQ(0, index[1]); + + EXPECT_TRUE(incrementIndex(index, bufferSize, bufferStartIndex)); + EXPECT_EQ(0, index[0]); + EXPECT_EQ(1, index[1]); + + EXPECT_TRUE(incrementIndex(index, bufferSize, bufferStartIndex)); + EXPECT_EQ(0, index[0]); + EXPECT_EQ(2, index[1]); + + EXPECT_TRUE(incrementIndex(index, bufferSize, bufferStartIndex)); + EXPECT_EQ(0, index[0]); + EXPECT_EQ(0, index[1]); + + EXPECT_TRUE(incrementIndex(index, bufferSize, bufferStartIndex)); + EXPECT_EQ(1, index[0]); + EXPECT_EQ(1, index[1]); + + EXPECT_TRUE(incrementIndex(index, bufferSize, bufferStartIndex)); + EXPECT_EQ(1, index[0]); + EXPECT_EQ(2, index[1]); + + EXPECT_TRUE(incrementIndex(index, bufferSize, bufferStartIndex)); + EXPECT_EQ(1, index[0]); + EXPECT_EQ(0, index[1]); + + EXPECT_FALSE(incrementIndex(index, bufferSize, bufferStartIndex)); + EXPECT_EQ(index[0], index[0]); + EXPECT_EQ(index[1], index[1]); +} + +TEST(checkIncrementIndexForSubmap, Simple) +{ + Index submapIndex(0, 0); + Index index; + Index submapTopLeftIndex(3, 1); + Size submapBufferSize(2, 4); + Size bufferSize(8, 5); + + EXPECT_TRUE(incrementIndexForSubmap(submapIndex, index, submapTopLeftIndex, submapBufferSize, bufferSize)); + EXPECT_EQ(0, submapIndex[0]); + EXPECT_EQ(1, submapIndex[1]); + EXPECT_EQ(3, index[0]); + EXPECT_EQ(2, index[1]); + + EXPECT_TRUE(incrementIndexForSubmap(submapIndex, index, submapTopLeftIndex, submapBufferSize, bufferSize)); + EXPECT_EQ(0, submapIndex[0]); + EXPECT_EQ(2, submapIndex[1]); + EXPECT_EQ(3, index[0]); + EXPECT_EQ(3, index[1]); + + EXPECT_TRUE(incrementIndexForSubmap(submapIndex, index, submapTopLeftIndex, submapBufferSize, bufferSize)); + EXPECT_EQ(0, submapIndex[0]); + EXPECT_EQ(3, submapIndex[1]); + EXPECT_EQ(3, index[0]); + EXPECT_EQ(4, index[1]); + + EXPECT_TRUE(incrementIndexForSubmap(submapIndex, index, submapTopLeftIndex, submapBufferSize, bufferSize)); + EXPECT_EQ(1, submapIndex[0]); + EXPECT_EQ(0, submapIndex[1]); + EXPECT_EQ(4, index[0]); + EXPECT_EQ(1, index[1]); + + submapIndex << 1, 2; + EXPECT_TRUE(incrementIndexForSubmap(submapIndex, index, submapTopLeftIndex, submapBufferSize, bufferSize)); + EXPECT_EQ(1, submapIndex[0]); + EXPECT_EQ(3, submapIndex[1]); + EXPECT_EQ(4, index[0]); + EXPECT_EQ(4, index[1]); + + EXPECT_FALSE(incrementIndexForSubmap(submapIndex, index, submapTopLeftIndex, submapBufferSize, bufferSize)); + + submapIndex << 2, 0; + EXPECT_FALSE(incrementIndexForSubmap(submapIndex, index, submapTopLeftIndex, submapBufferSize, bufferSize)); +} + +TEST(checkIncrementIndexForSubmap, CircularBuffer) +{ + Index submapIndex(0, 0); + Index index; + Index submapTopLeftIndex(6, 3); + Size submapBufferSize(2, 4); + Size bufferSize(8, 5); + Index bufferStartIndex(3, 2); + + EXPECT_TRUE(incrementIndexForSubmap(submapIndex, index, submapTopLeftIndex, submapBufferSize, bufferSize, bufferStartIndex)); + EXPECT_EQ(0, submapIndex[0]); + EXPECT_EQ(1, submapIndex[1]); + EXPECT_EQ(6, index[0]); + EXPECT_EQ(4, index[1]); + + EXPECT_TRUE(incrementIndexForSubmap(submapIndex, index, submapTopLeftIndex, submapBufferSize, bufferSize, bufferStartIndex)); + EXPECT_EQ(0, submapIndex[0]); + EXPECT_EQ(2, submapIndex[1]); + EXPECT_EQ(6, index[0]); + EXPECT_EQ(0, index[1]); + + EXPECT_TRUE(incrementIndexForSubmap(submapIndex, index, submapTopLeftIndex, submapBufferSize, bufferSize, bufferStartIndex)); + EXPECT_EQ(0, submapIndex[0]); + EXPECT_EQ(3, submapIndex[1]); + EXPECT_EQ(6, index[0]); + EXPECT_EQ(1, index[1]); + + EXPECT_TRUE(incrementIndexForSubmap(submapIndex, index, submapTopLeftIndex, submapBufferSize, bufferSize, bufferStartIndex)); + EXPECT_EQ(1, submapIndex[0]); + EXPECT_EQ(0, submapIndex[1]); + EXPECT_EQ(7, index[0]); + EXPECT_EQ(3, index[1]); + + submapIndex << 1, 2; + EXPECT_TRUE(incrementIndexForSubmap(submapIndex, index, submapTopLeftIndex, submapBufferSize, bufferSize, bufferStartIndex)); + EXPECT_EQ(1, submapIndex[0]); + EXPECT_EQ(3, submapIndex[1]); + EXPECT_EQ(7, index[0]); + EXPECT_EQ(1, index[1]); + + EXPECT_FALSE(incrementIndexForSubmap(submapIndex, index, submapTopLeftIndex, submapBufferSize, bufferSize, bufferStartIndex)); + + submapIndex << 2, 0; + EXPECT_FALSE(incrementIndexForSubmap(submapIndex, index, submapTopLeftIndex, submapBufferSize, bufferSize, bufferStartIndex)); +} + +TEST(getIndexFromLinearIndex, Simple) +{ + EXPECT_TRUE((Index(0, 0) == getIndexFromLinearIndex(0, Size(8, 5), false)).all()); + EXPECT_TRUE((Index(1, 0) == getIndexFromLinearIndex(1, Size(8, 5), false)).all()); + EXPECT_TRUE((Index(0, 1) == getIndexFromLinearIndex(1, Size(8, 5), true)).all()); + EXPECT_TRUE((Index(2, 0) == getIndexFromLinearIndex(2, Size(8, 5), false)).all()); + EXPECT_TRUE((Index(0, 1) == getIndexFromLinearIndex(8, Size(8, 5), false)).all()); + EXPECT_TRUE((Index(7, 4) == getIndexFromLinearIndex(39, Size(8, 5), false)).all()); +} diff --git a/ros/src/vendor/grid_map/grid_map_core/test/GridMapTest.cpp b/ros/src/vendor/grid_map/grid_map_core/test/GridMapTest.cpp new file mode 100644 index 00000000000..f6c0449bd54 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/test/GridMapTest.cpp @@ -0,0 +1,223 @@ +/* + * GridMapTest.cpp + * + * Created on: Aug 26, 2015 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/GridMap.hpp" + +// gtest +#include + +// Math +#include + +using namespace std; +using namespace grid_map; + +TEST(GridMap, CopyConstructor) +{ + GridMap map({"layer_a", "layer_b"}); + map.setGeometry(Length(1.0, 2.0), 0.1, Position(0.1, 0.2)); + map["layer_a"].setConstant(1.0); + map["layer_b"].setConstant(2.0); + GridMap mapCopy(map); + EXPECT_EQ(map.getSize()[0], mapCopy.getSize()[0]); + EXPECT_EQ(map.getSize()[1], mapCopy.getSize()[1]); + EXPECT_EQ(map.getLength().x(), mapCopy.getLength().x()); + EXPECT_EQ(map.getLength().y(), mapCopy.getLength().y()); + EXPECT_EQ(map.getPosition().x(), mapCopy.getPosition().x()); + EXPECT_EQ(map.getPosition().y(), mapCopy.getPosition().y()); + EXPECT_EQ(map.getLayers().size(), mapCopy.getLayers().size()); + EXPECT_EQ(map["layer_a"](0, 0), mapCopy["layer_a"](0, 0)); + EXPECT_EQ(map["layer_b"](0, 0), mapCopy["layer_b"](0, 0)); +} + +TEST(GridMap, CopyAssign) +{ + GridMap map({"layer_a", "layer_b"}); + map.setGeometry(Length(1.0, 2.0), 0.1, Position(0.1, 0.2)); + map["layer_a"].setConstant(1.0); + map["layer_b"].setConstant(2.0); + GridMap mapCopy; + mapCopy = map; + EXPECT_EQ(map.getSize()[0], mapCopy.getSize()[0]); + EXPECT_EQ(map.getSize()[1], mapCopy.getSize()[1]); + EXPECT_EQ(map.getLength().x(), mapCopy.getLength().x()); + EXPECT_EQ(map.getLength().y(), mapCopy.getLength().y()); + EXPECT_EQ(map.getPosition().x(), mapCopy.getPosition().x()); + EXPECT_EQ(map.getPosition().y(), mapCopy.getPosition().y()); + EXPECT_EQ(map.getLayers().size(), mapCopy.getLayers().size()); + EXPECT_EQ(map["layer_a"](0, 0), mapCopy["layer_a"](0, 0)); + EXPECT_EQ(map["layer_b"](0, 0), mapCopy["layer_b"](0, 0)); +} + +TEST(GridMap, Move) +{ + GridMap map; + map.setGeometry(Length(8.1, 5.1), 1.0, Position(0.0, 0.0)); // bufferSize(8, 5) + map.add("layer", 0.0); + map.setBasicLayers(map.getLayers()); + std::vector regions; + map.move(Position(-3.0, -2.0), regions); + Index startIndex = map.getStartIndex(); + + EXPECT_EQ(3, startIndex(0)); + EXPECT_EQ(2, startIndex(1)); + + EXPECT_FALSE(map.isValid(Index(0, 0))); // TODO Check entire map. + EXPECT_TRUE(map.isValid(Index(3, 2))); + EXPECT_FALSE(map.isValid(Index(2, 2))); + EXPECT_FALSE(map.isValid(Index(3, 1))); + EXPECT_TRUE(map.isValid(Index(7, 4))); + + EXPECT_EQ(2, regions.size()); + EXPECT_EQ(0, regions[0].getStartIndex()[0]); + EXPECT_EQ(0, regions[0].getStartIndex()[1]); + EXPECT_EQ(3, regions[0].getSize()[0]); + EXPECT_EQ(5, regions[0].getSize()[1]); + EXPECT_EQ(0, regions[1].getStartIndex()[0]); + EXPECT_EQ(0, regions[1].getStartIndex()[1]); + EXPECT_EQ(8, regions[1].getSize()[0]); + EXPECT_EQ(2, regions[1].getSize()[1]); +} + +TEST(AddDataFrom, ExtendMapAligned) +{ + GridMap map1, map2; + map1.setGeometry(Length(5.1, 5.1), 1.0, Position(0.0, 0.0)); // bufferSize(5, 5) + map1.add("zero", 0.0); + map1.add("one", 1.0); + map1.setBasicLayers(map1.getLayers()); + + map2.setGeometry(Length(3.1, 3.1), 1.0, Position(2.0, 2.0)); + map2.add("one", 1.1); + map2.add("two", 2.0); + map2.setBasicLayers(map1.getLayers()); + + map1.addDataFrom(map2, true, true, true); + + EXPECT_TRUE(map1.exists("two")); + EXPECT_TRUE(map1.isInside(Position(3.0, 3.0))); + EXPECT_DOUBLE_EQ(6.0, map1.getLength().x()); + EXPECT_DOUBLE_EQ(6.0, map1.getLength().y()); + EXPECT_DOUBLE_EQ(0.5, map1.getPosition().x()); + EXPECT_DOUBLE_EQ(0.5, map1.getPosition().y()); + EXPECT_NEAR(1.1, map1.atPosition("one", Position(2, 2)), 1e-4); + EXPECT_DOUBLE_EQ(1.0, map1.atPosition("one", Position(-2, -2))); + EXPECT_DOUBLE_EQ(0.0, map1.atPosition("zero", Position(0.0, 0.0))); +} + +TEST(AddDataFrom, ExtendMapNotAligned) +{ + GridMap map1, map2; + map1.setGeometry(Length(6.1, 6.1), 1.0, Position(0.0, 0.0)); // bufferSize(6, 6) + map1.add("nan"); + map1.add("one", 1.0); + map1.add("zero", 0.0); + map1.setBasicLayers(map1.getLayers()); + + map2.setGeometry(Length(3.1, 3.1), 1.0, Position(3.2, 3.2)); + map2.add("nan", 1.0); + map2.add("one", 1.1); + map2.add("two", 2.0); + map2.setBasicLayers(map1.getLayers()); + + std::vector stringVector; + stringVector.push_back("nan"); + map1.addDataFrom(map2, true, false, false, stringVector); + Index index; + map1.getIndex(Position(-2, -2), index); + + EXPECT_FALSE(map1.exists("two")); + EXPECT_TRUE(map1.isInside(Position(4.0, 4.0))); + EXPECT_DOUBLE_EQ(8.0, map1.getLength().x()); + EXPECT_DOUBLE_EQ(8.0, map1.getLength().y()); + EXPECT_DOUBLE_EQ(1.0, map1.getPosition().x()); + EXPECT_DOUBLE_EQ(1.0, map1.getPosition().y()); + EXPECT_FALSE(map1.isValid(index, "nan")); + EXPECT_DOUBLE_EQ(1.0, map1.atPosition("one", Position(0.0, 0.0))); + EXPECT_DOUBLE_EQ(1.0, map1.atPosition("nan", Position(3.0, 3.0))); +} + +TEST(AddDataFrom, CopyData) +{ + GridMap map1, map2; + map1.setGeometry(Length(5.1, 5.1), 1.0, Position(0.0, 0.0)); // bufferSize(5, 5) + map1.add("zero", 0.0); + map1.add("one"); + map1.setBasicLayers(map1.getLayers()); + + map2.setGeometry(Length(3.1, 3.1), 1.0, Position(2.0, 2.0)); + map2.add("one", 1.0); + map2.add("two", 2.0); + map2.setBasicLayers(map1.getLayers()); + + map1.addDataFrom(map2, false, false, true); + Index index; + map1.getIndex(Position(-2, -2), index); + + EXPECT_TRUE(map1.exists("two")); + EXPECT_FALSE(map1.isInside(Position(3.0, 3.0))); + EXPECT_DOUBLE_EQ(5.0, map1.getLength().x()); + EXPECT_DOUBLE_EQ(5.0, map1.getLength().y()); + EXPECT_DOUBLE_EQ(0.0, map1.getPosition().x()); + EXPECT_DOUBLE_EQ(0.0, map1.getPosition().y()); + EXPECT_DOUBLE_EQ(1.0, map1.atPosition("one", Position(2, 2))); + EXPECT_FALSE(map1.isValid(index, "one")); + EXPECT_DOUBLE_EQ(0.0, map1.atPosition("zero", Position(0.0, 0.0))); +} + +TEST(ValueAtPosition, NearestNeighbor) +{ + GridMap map( { "types" }); + map.setGeometry(Length(3.0, 3.0), 1.0, Position(0.0, 0.0)); + + map.at("types", Index(0,0)) = 0.5; + map.at("types", Index(0,1)) = 3.8; + map.at("types", Index(0,2)) = 2.0; + map.at("types", Index(1,0)) = 2.1; + map.at("types", Index(1,1)) = 1.0; + map.at("types", Index(1,2)) = 2.0; + map.at("types", Index(2,0)) = 1.0; + map.at("types", Index(2,1)) = 2.0; + map.at("types", Index(2,2)) = 2.0; + + double value; + + value = map.atPosition("types", Position(1.35,-0.4)); + EXPECT_DOUBLE_EQ((float)3.8, value); + + value = map.atPosition("types", Position(-0.3,0.0)); + EXPECT_DOUBLE_EQ(1.0, value); +} + +TEST(ValueAtPosition, LinearInterpolated) +{ + GridMap map( { "types" }); + map.setGeometry(Length(3.0, 3.0), 1.0, Position(0.0, 0.0)); + + map.at("types", Index(0,0)) = 0.5; + map.at("types", Index(0,1)) = 3.8; + map.at("types", Index(0,2)) = 2.0; + map.at("types", Index(1,0)) = 2.1; + map.at("types", Index(1,1)) = 1.0; + map.at("types", Index(1,2)) = 2.0; + map.at("types", Index(2,0)) = 1.0; + map.at("types", Index(2,1)) = 2.0; + map.at("types", Index(2,2)) = 2.0; + + double value; + + // Close to the border -> reverting to INTER_NEAREST. + value = map.atPosition("types", Position(-0.5,-1.2), InterpolationMethods::INTER_LINEAR); + EXPECT_DOUBLE_EQ(2.0, value); + // In between 1.0 and 2.0 field. + value = map.atPosition("types", Position(-0.5,0.0), InterpolationMethods::INTER_LINEAR); + EXPECT_DOUBLE_EQ(1.5, value); + // Calculated "by Hand". + value = map.atPosition("types", Position(0.69,0.38), InterpolationMethods::INTER_LINEAR); + EXPECT_NEAR(2.1963200, value, 0.0000001); +} diff --git a/ros/src/vendor/grid_map/grid_map_core/test/LineIteratorTest.cpp b/ros/src/vendor/grid_map/grid_map_core/test/LineIteratorTest.cpp new file mode 100644 index 00000000000..bd382855510 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/test/LineIteratorTest.cpp @@ -0,0 +1,177 @@ +/* + * LineIteratorTest.cpp + * + * Created on: Sep 14, 2016 + * Author: Dominic Jud + * Institute: ETH Zurich, Robotic Systems Lab + */ + +#include "grid_map_core/iterators/LineIterator.hpp" +#include "grid_map_core/GridMap.hpp" + +// gtest +#include + +// Limits +#include + +using namespace grid_map; + +TEST(LineIterator, StartOutsideMap) +{ + GridMap map( { "types" }); + map.setGeometry(Length(8.0, 5.0), 1.0, Position(0.0, 0.0)); + + LineIterator iterator(map, Position(2.0, 2.0), Position(0.0, 0.0)); + + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(2, (*iterator)(0)); + EXPECT_EQ(0, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(3, (*iterator)(0)); + EXPECT_EQ(1, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(4, (*iterator)(0)); + EXPECT_EQ(2, (*iterator)(1)); + + ++iterator; + EXPECT_TRUE(iterator.isPastEnd()); +} + +TEST(LineIterator, EndOutsideMap) +{ + GridMap map( { "types" }); + map.setGeometry(Length(8.0, 5.0), 1.0, Position(0.0, 0.0)); + + LineIterator iterator(map, Position(0.0, 0.0), Position(9.0, 6.0)); + + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(4, (*iterator)(0)); + EXPECT_EQ(2, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(3, (*iterator)(0)); + EXPECT_EQ(1, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(2, (*iterator)(0)); + EXPECT_EQ(1, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + ++iterator; + EXPECT_TRUE(iterator.isPastEnd()); +} + +TEST(LineIterator, StartAndEndOutsideMap) +{ + GridMap map( { "types" }); + map.setGeometry(Length(8.0, 5.0), 1.0, Position(0.0, 0.0)); + + LineIterator iterator(map, Position(-7.0, -9.0), Position(8.0, 8.0)); + + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(5, (*iterator)(0)); + EXPECT_EQ(4, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(4, (*iterator)(0)); + EXPECT_EQ(3, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(3, (*iterator)(0)); + EXPECT_EQ(2, (*iterator)(1)); + + ++iterator; + ++iterator; + ++iterator; + EXPECT_TRUE(iterator.isPastEnd()); +} + +TEST(LineIterator, StartAndEndOutsideMapWithoutIntersectingMap) +{ + GridMap map( { "types" }); + map.setGeometry(Length(8.0, 5.0), 1.0, Position(0.0, 0.0)); + + LineIterator iterator(map, Position(-8.0, 8.0), Position(8.0, 8.0)); + + EXPECT_TRUE(iterator.isPastEnd()); +} + +TEST(LineIterator, MovedMap) +{ + GridMap map( { "types" }); + map.setGeometry(Length(7.0, 5.0), 1.0, Position(0.0, 0.0)); + map.move(Position(2.0, 2.0)); + + LineIterator iterator(map, Position(0.0, 0.0), Position(2.0, 2.0)); + Position point; + + EXPECT_FALSE(iterator.isPastEnd()); + map.getPosition(*iterator, point); + EXPECT_EQ(0, point.x()); + EXPECT_EQ(0, point.y()); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + map.getPosition(*iterator, point); + EXPECT_EQ(1, point.x()); + EXPECT_EQ(1, point.y()); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + map.getPosition(*iterator, point); + EXPECT_EQ(2, point.x()); + EXPECT_EQ(2, point.y()); + + ++iterator; + EXPECT_TRUE(iterator.isPastEnd()); +} + +TEST(LineIterator, StartAndEndOutsideMovedMap) +{ + GridMap map( { "types" }); + map.setGeometry(Length(7.0, 5.0), 1.0, Position(0.0, 0.0)); + map.move(Position(2.0, 2.0)); + + LineIterator iterator(map, Position(0.0, 0.0), Position(8.0, 8.0)); + Position point; + + EXPECT_FALSE(iterator.isPastEnd()); + map.getPosition(*iterator, point); + EXPECT_EQ(0, point.x()); + EXPECT_EQ(0, point.y()); + + ++iterator; + map.getPosition(*iterator, point); + EXPECT_EQ(1, point.x()); + EXPECT_EQ(1, point.y()); + // + ++iterator; + map.getPosition(*iterator, point); + EXPECT_EQ(2, point.x()); + EXPECT_EQ(2, point.y()); + // + ++iterator; + map.getPosition(*iterator, point); + EXPECT_EQ(3, point.x()); + EXPECT_EQ(3, point.y()); + + ++iterator; + map.getPosition(*iterator, point); + EXPECT_EQ(4, point.x()); + EXPECT_EQ(4, point.y()); + + ++iterator; + EXPECT_TRUE(iterator.isPastEnd()); +} diff --git a/ros/src/vendor/grid_map/grid_map_core/test/PolygonIteratorTest.cpp b/ros/src/vendor/grid_map/grid_map_core/test/PolygonIteratorTest.cpp new file mode 100644 index 00000000000..33db795a20c --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/test/PolygonIteratorTest.cpp @@ -0,0 +1,195 @@ +/* + * PolygonIteratorTest.cpp + * + * Created on: Sep 19, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/iterators/PolygonIterator.hpp" +#include "grid_map_core/GridMap.hpp" +#include "grid_map_core/Polygon.hpp" + +// Eigen +#include + +// gtest +#include + +// Limits +#include + +// Vector +#include + +using namespace std; +using namespace Eigen; +using namespace grid_map; + +TEST(PolygonIterator, FullCover) +{ + vector types; + types.push_back("type"); + GridMap map(types); + map.setGeometry(Length(8.0, 5.0), 1.0, Position(0.0, 0.0)); // bufferSize(8, 5) + + Polygon polygon; + polygon.addVertex(Position(-100.0, 100.0)); + polygon.addVertex(Position(100.0, 100.0)); + polygon.addVertex(Position(100.0, -100.0)); + polygon.addVertex(Position(-100.0, -100.0)); + + PolygonIterator iterator(map, polygon); + + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(0, (*iterator)(0)); + EXPECT_EQ(0, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(0, (*iterator)(0)); + EXPECT_EQ(1, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(0, (*iterator)(0)); + EXPECT_EQ(2, (*iterator)(1)); + + for (int i = 0; i < 37; ++i) ++iterator; + + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(7, (*iterator)(0)); + EXPECT_EQ(4, (*iterator)(1)); + + ++iterator; + EXPECT_TRUE(iterator.isPastEnd()); +} + +TEST(PolygonIterator, Outside) +{ + GridMap map({"types"}); + map.setGeometry(Length(8.0, 5.0), 1.0, Position(0.0, 0.0)); // bufferSize(8, 5) + + Polygon polygon; + polygon.addVertex(Position(99.0, 101.0)); + polygon.addVertex(Position(101.0, 101.0)); + polygon.addVertex(Position(101.0, 99.0)); + polygon.addVertex(Position(99.0, 99.0)); + + PolygonIterator iterator(map, polygon); + + EXPECT_TRUE(iterator.isPastEnd()); +} + +TEST(PolygonIterator, Square) +{ + GridMap map({"types"}); + map.setGeometry(Length(8.0, 5.0), 1.0, Position(0.0, 0.0)); // bufferSize(8, 5) + + Polygon polygon; + polygon.addVertex(Position(-1.0, 1.5)); + polygon.addVertex(Position(1.0, 1.5)); + polygon.addVertex(Position(1.0, -1.5)); + polygon.addVertex(Position(-1.0, -1.5)); + + PolygonIterator iterator(map, polygon); + + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(3, (*iterator)(0)); + EXPECT_EQ(1, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(3, (*iterator)(0)); + EXPECT_EQ(2, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(3, (*iterator)(0)); + EXPECT_EQ(3, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(4, (*iterator)(0)); + EXPECT_EQ(1, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(4, (*iterator)(0)); + EXPECT_EQ(2, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(4, (*iterator)(0)); + EXPECT_EQ(3, (*iterator)(1)); + + ++iterator; + EXPECT_TRUE(iterator.isPastEnd()); +} + +TEST(PolygonIterator, TopLeftTriangle) +{ + GridMap map({"types"}); + map.setGeometry(Length(8.0, 5.0), 1.0, Position(0.0, 0.0)); // bufferSize(8, 5) + + Polygon polygon; + polygon.addVertex(Position(-40.1, 20.6)); + polygon.addVertex(Position(40.1, 20.4)); + polygon.addVertex(Position(-40.1, -20.6)); + + PolygonIterator iterator(map, polygon); + + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(0, (*iterator)(0)); + EXPECT_EQ(0, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(1, (*iterator)(0)); + EXPECT_EQ(0, (*iterator)(1)); + + // TODO Extend. +} + +TEST(PolygonIterator, MoveMap) +{ + GridMap map({"layer"}); + map.setGeometry(Length(8.0, 5.0), 1.0, Position(0.0, 0.0)); // bufferSize(8, 5) + map.move(Position(2.0, 0.0)); + + Polygon polygon; + polygon.addVertex(Position(6.1, 1.6)); + polygon.addVertex(Position(0.9, 1.6)); + polygon.addVertex(Position(0.9, -1.6)); + polygon.addVertex(Position(6.1, -1.6)); + PolygonIterator iterator(map, polygon); + + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(6, (*iterator)(0)); + EXPECT_EQ(1, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(6, (*iterator)(0)); + EXPECT_EQ(2, (*iterator)(1)); + + for (int i = 0; i < 4; ++i) ++iterator; + + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(7, (*iterator)(0)); + EXPECT_EQ(3, (*iterator)(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(0, (*iterator)(0)); + EXPECT_EQ(1, (*iterator)(1)); + + for (int i = 0; i < 8; ++i) ++iterator; + + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(2, (*iterator)(0)); + EXPECT_EQ(3, (*iterator)(1)); + + ++iterator; + EXPECT_TRUE(iterator.isPastEnd()); +} diff --git a/ros/src/vendor/grid_map/grid_map_core/test/PolygonTest.cpp b/ros/src/vendor/grid_map/grid_map_core/test/PolygonTest.cpp new file mode 100644 index 00000000000..26531dbc5ca --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/test/PolygonTest.cpp @@ -0,0 +1,232 @@ +/* + * PolygonTest.cpp + * + * Created on: Mar 24, 2015 + * Author: Martin Wermelinger, Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/Polygon.hpp" + +// gtest +#include + +// Eigen +#include +#include + +using namespace std; +using namespace Eigen; +using namespace grid_map; + +TEST(Polygon, getCentroidTriangle) +{ + Polygon triangle; + triangle.addVertex(Vector2d(0.0, 0.0)); + triangle.addVertex(Vector2d(1.0, 0.0)); + triangle.addVertex(Vector2d(0.5, 1.0)); + + Position expectedCentroid; + expectedCentroid.x() = 1.0 / 3.0 * (1.0 + 0.5); + expectedCentroid.y() = 1.0 / 3.0; + Position centroid = triangle.getCentroid(); + EXPECT_DOUBLE_EQ(expectedCentroid.x(), centroid.x()); + EXPECT_DOUBLE_EQ(expectedCentroid.y(), centroid.y()); +} + +TEST(Polygon, getCentroidRectangle) +{ + Polygon rectangle; + rectangle.addVertex(Vector2d(-2.0, -1.0)); + rectangle.addVertex(Vector2d(-2.0, 2.0)); + rectangle.addVertex(Vector2d(1.0, 2.0)); + rectangle.addVertex(Vector2d(1.0, -1.0)); + + Position expectedCentroid(-0.5, 0.5); + Position centroid = rectangle.getCentroid(); + EXPECT_DOUBLE_EQ(expectedCentroid.x(), centroid.x()); + EXPECT_DOUBLE_EQ(expectedCentroid.y(), centroid.y()); +} + +TEST(Polygon, getBoundingBox) +{ + Polygon triangle; + triangle.addVertex(Vector2d(0.0, 0.0)); + triangle.addVertex(Vector2d(0.5, -1.2)); + triangle.addVertex(Vector2d(1.0, 0.0)); + + Position expectedCenter(0.5, -0.6); + Length expectedLength(1.0, 1.2); + Position center; + Length length; + triangle.getBoundingBox(center, length); + + EXPECT_DOUBLE_EQ(expectedCenter.x(), center.x()); + EXPECT_DOUBLE_EQ(expectedCenter.y(), center.y()); + EXPECT_DOUBLE_EQ(expectedLength.x(), length.x()); + EXPECT_DOUBLE_EQ(expectedLength.y(), length.y()); +} + +TEST(Polygon, convexHullPolygon) +{ + Polygon polygon1; + polygon1.addVertex(Vector2d(0.0, 0.0)); + polygon1.addVertex(Vector2d(1.0, 1.0)); + polygon1.addVertex(Vector2d(0.0, 1.0)); + polygon1.addVertex(Vector2d(1.0, 0.0)); + + Polygon polygon2; + polygon2.addVertex(Vector2d(0.5, 0.5)); + polygon2.addVertex(Vector2d(0.5, 1.5)); + polygon2.addVertex(Vector2d(1.5, 0.5)); + polygon2.addVertex(Vector2d(1.5, 1.5)); + + Polygon hull = Polygon::convexHull(polygon1, polygon2); + + EXPECT_EQ(6, hull.nVertices()); + EXPECT_TRUE(hull.isInside(Vector2d(0.5, 0.5))); + EXPECT_FALSE(hull.isInside(Vector2d(0.01, 1.49))); +} + +TEST(Polygon, convexHullCircles) +{ + Position center1(0.0, 0.0); + Position center2(1.0, 0.0); + double radius = 0.5; + const int nVertices = 15; + + Polygon hull = Polygon::convexHullOfTwoCircles(center1, center2, radius); + EXPECT_EQ(20, hull.nVertices()); + EXPECT_TRUE(hull.isInside(Vector2d(-0.25, 0.0))); + EXPECT_TRUE(hull.isInside(Vector2d(0.5, 0.0))); + EXPECT_TRUE(hull.isInside(Vector2d(0.5, 0.4))); + EXPECT_FALSE(hull.isInside(Vector2d(0.5, 0.6))); + EXPECT_FALSE(hull.isInside(Vector2d(1.5, 0.2))); + + hull = Polygon::convexHullOfTwoCircles(center1, center2, radius, nVertices); + EXPECT_EQ(nVertices + 1, hull.nVertices()); + EXPECT_TRUE(hull.isInside(Vector2d(-0.25, 0.0))); + EXPECT_TRUE(hull.isInside(Vector2d(0.5, 0.0))); + EXPECT_TRUE(hull.isInside(Vector2d(0.5, 0.4))); + EXPECT_FALSE(hull.isInside(Vector2d(0.5, 0.6))); + EXPECT_FALSE(hull.isInside(Vector2d(1.5, 0.2))); + + hull = Polygon::convexHullOfTwoCircles(center1, center1, radius); + EXPECT_EQ(20, hull.nVertices()); + EXPECT_TRUE(hull.isInside(Vector2d(-0.25, 0.0))); + EXPECT_TRUE(hull.isInside(Vector2d(0.25, 0.0))); + EXPECT_TRUE(hull.isInside(Vector2d(0.0, 0.25))); + EXPECT_TRUE(hull.isInside(Vector2d(0.0, -0.25))); + EXPECT_FALSE(hull.isInside(Vector2d(0.5, 0.5))); + EXPECT_FALSE(hull.isInside(Vector2d(0.6, 0.0))); + EXPECT_FALSE(hull.isInside(Vector2d(-0.6, 0.0))); + EXPECT_FALSE(hull.isInside(Vector2d(0.0, 0.6))); + EXPECT_FALSE(hull.isInside(Vector2d(0.0, -0.6))); + + hull = Polygon::convexHullOfTwoCircles(center1, center1, radius, nVertices); + EXPECT_EQ(nVertices, hull.nVertices()); + EXPECT_TRUE(hull.isInside(Vector2d(-0.25, 0.0))); + EXPECT_TRUE(hull.isInside(Vector2d(0.25, 0.0))); + EXPECT_TRUE(hull.isInside(Vector2d(0.0, 0.25))); + EXPECT_TRUE(hull.isInside(Vector2d(0.0, -0.25))); + EXPECT_FALSE(hull.isInside(Vector2d(0.5, 0.5))); + EXPECT_FALSE(hull.isInside(Vector2d(0.6, 0.0))); + EXPECT_FALSE(hull.isInside(Vector2d(-0.6, 0.0))); + EXPECT_FALSE(hull.isInside(Vector2d(0.0, 0.6))); + EXPECT_FALSE(hull.isInside(Vector2d(0.0, -0.6))); +} + +TEST(Polygon, convexHullCircle) +{ + Position center(0.0, 0.0); + double radius = 0.5; + const int nVertices = 15; + + Polygon hull = Polygon::fromCircle(center, radius); + + EXPECT_EQ(20, hull.nVertices()); + EXPECT_TRUE(hull.isInside(Vector2d(-0.25, 0.0))); + EXPECT_TRUE(hull.isInside(Vector2d(0.49, 0.0))); + EXPECT_FALSE(hull.isInside(Vector2d(0.5, 0.4))); + EXPECT_FALSE(hull.isInside(Vector2d(1.0, 0.0))); + + hull = Polygon::fromCircle(center, radius, nVertices); + EXPECT_EQ(nVertices, hull.nVertices()); + EXPECT_TRUE(hull.isInside(Vector2d(-0.25, 0.0))); + EXPECT_TRUE(hull.isInside(Vector2d(0.49, 0.0))); + EXPECT_FALSE(hull.isInside(Vector2d(0.5, 0.4))); + EXPECT_FALSE(hull.isInside(Vector2d(1.0, 0.0))); +} + +TEST(convertToInequalityConstraints, triangle1) +{ + Polygon polygon({Position(1.0, 1.0), Position(0.0, 0.0), Position(1.1, -1.1)}); + MatrixXd A; + VectorXd b; + ASSERT_TRUE(polygon.convertToInequalityConstraints(A, b)); + EXPECT_NEAR(-1.3636, A(0, 0), 1e-4); + EXPECT_NEAR( 1.3636, A(0, 1), 1e-4); + EXPECT_NEAR(-1.5000, A(1, 0), 1e-4); + EXPECT_NEAR(-1.5000, A(1, 1), 1e-4); + EXPECT_NEAR( 2.8636, A(2, 0), 1e-4); + EXPECT_NEAR( 0.1364, A(2, 1), 1e-4); + EXPECT_NEAR( 0.0000, b(0), 1e-4); + EXPECT_NEAR( 0.0000, b(1), 1e-4); + EXPECT_NEAR( 3.0000, b(2), 1e-4); +} + +TEST(convertToInequalityConstraints, triangle2) +{ + Polygon polygon({Position(-1.0, 0.5), Position(-1.0, -0.5), Position(1.0, -0.5)}); + MatrixXd A; + VectorXd b; + ASSERT_TRUE(polygon.convertToInequalityConstraints(A, b)); + EXPECT_NEAR(-1.5000, A(0, 0), 1e-4); + EXPECT_NEAR( 0.0000, A(0, 1), 1e-4); + EXPECT_NEAR( 0.0000, A(1, 0), 1e-4); + EXPECT_NEAR(-3.0000, A(1, 1), 1e-4); + EXPECT_NEAR( 1.5000, A(2, 0), 1e-4); + EXPECT_NEAR( 3.0000, A(2, 1), 1e-4); + EXPECT_NEAR( 1.5000, b(0), 1e-4); + EXPECT_NEAR( 1.5000, b(1), 1e-4); + EXPECT_NEAR( 0.0000, b(2), 1e-4); +} + +TEST(offsetInward, triangle) +{ + Polygon polygon({Position(1.0, 1.0), Position(0.0, 0.0), Position(1.0, -1.0)}); + polygon.offsetInward(0.1); + EXPECT_NEAR(0.9, polygon.getVertex(0)(0), 1e-4); + EXPECT_NEAR(0.758579, polygon.getVertex(0)(1), 1e-4); + EXPECT_NEAR(0.141421, polygon.getVertex(1)(0), 1e-4); + EXPECT_NEAR(0.0, polygon.getVertex(1)(1), 1e-4); + EXPECT_NEAR(0.9, polygon.getVertex(2)(0), 1e-4); + EXPECT_NEAR(-0.758579, polygon.getVertex(2)(1), 1e-4); +} + +TEST(triangulation, triangle) +{ + Polygon polygon({Position(1.0, 1.0), Position(0.0, 0.0), Position(1.0, -1.0)}); + std::vector polygons; + polygons = polygon.triangulate(); + ASSERT_EQ(1, polygons.size()); + EXPECT_EQ(polygon.getVertex(0).x(), polygons[0].getVertex(0).x()); + EXPECT_EQ(polygon.getVertex(0).y(), polygons[0].getVertex(0).y()); + EXPECT_EQ(polygon.getVertex(1).x(), polygons[0].getVertex(1).x()); + EXPECT_EQ(polygon.getVertex(1).y(), polygons[0].getVertex(1).y()); + EXPECT_EQ(polygon.getVertex(2).x(), polygons[0].getVertex(2).x()); + EXPECT_EQ(polygon.getVertex(2).y(), polygons[0].getVertex(2).y()); +} + +TEST(triangulation, rectangle) +{ + Polygon rectangle; + rectangle.addVertex(Vector2d(-2.0, -1.0)); + rectangle.addVertex(Vector2d(-2.0, 2.0)); + rectangle.addVertex(Vector2d(1.0, 2.0)); + rectangle.addVertex(Vector2d(1.0, -1.0)); + std::vector polygons; + polygons = rectangle.triangulate(); + ASSERT_EQ(2, polygons.size()); + // TODO Extend. +} diff --git a/ros/src/vendor/grid_map/grid_map_core/test/SlidingWindowIteratorTest.cpp b/ros/src/vendor/grid_map/grid_map_core/test/SlidingWindowIteratorTest.cpp new file mode 100644 index 00000000000..b1ff23b01d6 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/test/SlidingWindowIteratorTest.cpp @@ -0,0 +1,140 @@ +/* + * SlidingWindowIteratorTest.cpp + * + * Created on: Aug 16, 2017 + * Author: Péter Fankhauser + * Institute: ETH Zurich + */ + +#include "grid_map_core/iterators/SlidingWindowIterator.hpp" +#include "grid_map_core/GridMap.hpp" + +#include +#include +#include +#include + +using namespace std; +using namespace grid_map; + +TEST(SlidingWindowIterator, WindowSize3Cutoff) +{ + GridMap map; + map.setGeometry(Length(8.1, 5.1), 1.0, Position(0.0, 0.0)); // bufferSize(8, 5) + map.add("layer"); + map["layer"].setRandom(); + + SlidingWindowIterator iterator(map, "layer", SlidingWindowIterator::EdgeHandling::CROP, 3); + EXPECT_EQ(iterator.getData().rows(), 2); + EXPECT_EQ(iterator.getData().cols(), 2); + EXPECT_TRUE(iterator.getData().isApprox(map["layer"].block(0, 0, 2, 2))); + + ++iterator; + EXPECT_EQ(iterator.getData().rows(), 3); + EXPECT_EQ(iterator.getData().cols(), 2); + EXPECT_TRUE(iterator.getData().isApprox(map["layer"].block(0, 0, 3, 2))); + + ++iterator; + EXPECT_EQ(iterator.getData().rows(), 3); + EXPECT_EQ(iterator.getData().cols(), 2); + EXPECT_TRUE(iterator.getData().isApprox(map["layer"].block(1, 0, 3, 2))); + + for (; !iterator.isPastEnd(); ++iterator) { + EXPECT_FALSE(iterator.isPastEnd()); + if ((*iterator == Index(3, 2)).all()) break; + } + + EXPECT_EQ(iterator.getData().rows(), 3); + EXPECT_EQ(iterator.getData().cols(), 3); + EXPECT_TRUE(iterator.getData().isApprox(map["layer"].block(2, 1, 3, 3))); + + for (; !iterator.isPastEnd(); ++iterator) { + EXPECT_FALSE(iterator.isPastEnd()); + if ((*iterator == Index(7, 4)).all()) break; + } + + EXPECT_EQ(iterator.getData().rows(), 2); + EXPECT_EQ(iterator.getData().cols(), 2); + EXPECT_TRUE(iterator.getData().isApprox(map["layer"].block(6, 3, 2, 2))); + + ++iterator; + EXPECT_TRUE(iterator.isPastEnd()); +} + +TEST(SlidingWindowIterator, WindowSize5) +{ + GridMap map; + map.setGeometry(Length(8.1, 5.1), 1.0, Position(0.0, 0.0)); // bufferSize(8, 5) + map.add("layer"); + map["layer"].setRandom(); + + SlidingWindowIterator iterator(map, "layer", SlidingWindowIterator::EdgeHandling::CROP, 5); + EXPECT_EQ(iterator.getData().rows(), 3); + EXPECT_EQ(iterator.getData().cols(), 3); + EXPECT_TRUE(iterator.getData().isApprox(map["layer"].block(0, 0, 3, 3))); + + ++iterator; + EXPECT_EQ(iterator.getData().rows(), 4); + EXPECT_EQ(iterator.getData().cols(), 3); + EXPECT_TRUE(iterator.getData().isApprox(map["layer"].block(0, 0, 4, 3))); + + ++iterator; + EXPECT_EQ(iterator.getData().rows(), 5); + EXPECT_EQ(iterator.getData().cols(), 3); + EXPECT_TRUE(iterator.getData().isApprox(map["layer"].block(0, 0, 5, 3))); + + for (; !iterator.isPastEnd(); ++iterator) { + EXPECT_FALSE(iterator.isPastEnd()); + if ((*iterator == Index(3, 2)).all()) break; + } + + EXPECT_EQ(iterator.getData().rows(), 5); + EXPECT_EQ(iterator.getData().cols(), 5); + EXPECT_TRUE(iterator.getData().isApprox(map["layer"].block(1, 0, 5, 5))); + + for (; !iterator.isPastEnd(); ++iterator) { + EXPECT_FALSE(iterator.isPastEnd()); + if ((*iterator == Index(7, 4)).all()) break; + } + + EXPECT_EQ(iterator.getData().rows(), 3); + EXPECT_EQ(iterator.getData().cols(), 3); + EXPECT_TRUE(iterator.getData().isApprox(map["layer"].block(5, 2, 3, 3))); + + ++iterator; + EXPECT_TRUE(iterator.isPastEnd()); +} + +TEST(SlidingWindowIterator, WindowSize3Inside) +{ + GridMap map; + map.setGeometry(Length(8.1, 5.1), 1.0, Position(0.0, 0.0)); // bufferSize(8, 5) + map.add("layer"); + map["layer"].setRandom(); + + SlidingWindowIterator iterator(map, "layer", SlidingWindowIterator::EdgeHandling::INSIDE, 3); + EXPECT_EQ(iterator.getData().rows(), 3); + EXPECT_EQ(iterator.getData().cols(), 3); + EXPECT_TRUE(iterator.getData().isApprox(map["layer"].block(0, 0, 3, 3))); + + for (; !iterator.isPastEnd(); ++iterator) { + EXPECT_FALSE(iterator.isPastEnd()); + if ((*iterator == Index(3, 2)).all()) break; + } + + EXPECT_EQ(iterator.getData().rows(), 3); + EXPECT_EQ(iterator.getData().cols(), 3); + EXPECT_TRUE(iterator.getData().isApprox(map["layer"].block(2, 1, 3, 3))); + + for (; !iterator.isPastEnd(); ++iterator) { + EXPECT_FALSE(iterator.isPastEnd()); + if ((*iterator == Index(6, 3)).all()) break; + } + + EXPECT_EQ(iterator.getData().rows(), 3); + EXPECT_EQ(iterator.getData().cols(), 3); + EXPECT_TRUE(iterator.getData().isApprox(map["layer"].block(5, 2, 3, 3))); + + ++iterator; + EXPECT_TRUE(iterator.isPastEnd()); +} diff --git a/ros/src/vendor/grid_map/grid_map_core/test/SpiralIteratorTest.cpp b/ros/src/vendor/grid_map/grid_map_core/test/SpiralIteratorTest.cpp new file mode 100644 index 00000000000..a43dd2a8bf9 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/test/SpiralIteratorTest.cpp @@ -0,0 +1,41 @@ +/* + * SpiralIteratorTest.cpp + * + * Created on: Jul 26, 2017 + * Author: Benjamin Scholz + * Institute: University of Hamburg, TAMS + */ + +#include "grid_map_core/iterators/SpiralIterator.hpp" +#include "grid_map_core/GridMap.hpp" + +// Eigen +#include + +// gtest +#include + +// Limits +#include + +// Vector +#include + +using namespace std; +using namespace Eigen; +using namespace grid_map; + +TEST(SpiralIterator, CenterOutOfMap) +{ + GridMap map( { "types" }); + map.setGeometry(Length(8.0, 5.0), 1.0, Position(0.0, 0.0)); + Position center(8.0, 0.0); + double radius = 5.0; + + SpiralIterator iterator(map, center, radius); + + Position iterator_position; + map.getPosition(*iterator, iterator_position); + + EXPECT_TRUE(map.isInside(iterator_position)); +} diff --git a/ros/src/vendor/grid_map/grid_map_core/test/SubmapIteratorTest.cpp b/ros/src/vendor/grid_map/grid_map_core/test/SubmapIteratorTest.cpp new file mode 100644 index 00000000000..43df7f233f3 --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/test/SubmapIteratorTest.cpp @@ -0,0 +1,167 @@ +/* + * SubmapIteratorTest.cpp + * + * Created on: Sep 15, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +#include "grid_map_core/iterators/SubmapIterator.hpp" +#include "grid_map_core/GridMap.hpp" + +// Eigen +#include + +// gtest +#include + +// Limits +#include + +// Vector +#include + +using namespace std; +using namespace Eigen; +using namespace grid_map; + +TEST(SubmapIterator, Simple) +{ + Eigen::Array2i submapTopLeftIndex(3, 1); + Eigen::Array2i submapBufferSize(3, 2); + Eigen::Array2i index; + Eigen::Array2i submapIndex; + + vector types; + types.push_back("type"); + GridMap map(types); + map.setGeometry(Array2d(8.1, 5.1), 1.0, Vector2d(0.0, 0.0)); // bufferSize(8, 5) + + SubmapIterator iterator(map, submapTopLeftIndex, submapBufferSize); + + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(submapTopLeftIndex(0), (*iterator)(0)); + EXPECT_EQ(submapTopLeftIndex(1), (*iterator)(1)); + EXPECT_EQ(0, iterator.getSubmapIndex()(0)); + EXPECT_EQ(0, iterator.getSubmapIndex()(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(3, (*iterator)(0)); + EXPECT_EQ(2, (*iterator)(1)); + EXPECT_EQ(0, iterator.getSubmapIndex()(0)); + EXPECT_EQ(1, iterator.getSubmapIndex()(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(4, (*iterator)(0)); + EXPECT_EQ(1, (*iterator)(1)); + EXPECT_EQ(1, iterator.getSubmapIndex()(0)); + EXPECT_EQ(0, iterator.getSubmapIndex()(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(4, (*iterator)(0)); + EXPECT_EQ(2, (*iterator)(1)); + EXPECT_EQ(1, iterator.getSubmapIndex()(0)); + EXPECT_EQ(1, iterator.getSubmapIndex()(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(5, (*iterator)(0)); + EXPECT_EQ(1, (*iterator)(1)); + EXPECT_EQ(2, iterator.getSubmapIndex()(0)); + EXPECT_EQ(0, iterator.getSubmapIndex()(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(5, (*iterator)(0)); + EXPECT_EQ(2, (*iterator)(1)); + EXPECT_EQ(2, iterator.getSubmapIndex()(0)); + EXPECT_EQ(1, iterator.getSubmapIndex()(1)); + + ++iterator; + EXPECT_TRUE(iterator.isPastEnd()); + EXPECT_EQ(5, (*iterator)(0)); + EXPECT_EQ(2, (*iterator)(1)); + EXPECT_EQ(2, iterator.getSubmapIndex()(0)); + EXPECT_EQ(1, iterator.getSubmapIndex()(1)); +} + +TEST(SubmapIterator, CircularBuffer) +{ + Eigen::Array2i submapTopLeftIndex(6, 3); + Eigen::Array2i submapBufferSize(2, 4); + Eigen::Array2i index; + Eigen::Array2i submapIndex; + + vector types; + types.push_back("type"); + GridMap map(types); + map.setGeometry(Length(8.1, 5.1), 1.0, Position(0.0, 0.0)); // bufferSize(8, 5) + map.move(Position(-3.0, -2.0)); // bufferStartIndex(3, 2) + + SubmapIterator iterator(map, submapTopLeftIndex, submapBufferSize); + + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(submapTopLeftIndex(0), (*iterator)(0)); + EXPECT_EQ(submapTopLeftIndex(1), (*iterator)(1)); + EXPECT_EQ(0, iterator.getSubmapIndex()(0)); + EXPECT_EQ(0, iterator.getSubmapIndex()(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(6, (*iterator)(0)); + EXPECT_EQ(4, (*iterator)(1)); + EXPECT_EQ(0, iterator.getSubmapIndex()(0)); + EXPECT_EQ(1, iterator.getSubmapIndex()(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(6, (*iterator)(0)); + EXPECT_EQ(0, (*iterator)(1)); + EXPECT_EQ(0, iterator.getSubmapIndex()(0)); + EXPECT_EQ(2, iterator.getSubmapIndex()(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(6, (*iterator)(0)); + EXPECT_EQ(1, (*iterator)(1)); + EXPECT_EQ(0, iterator.getSubmapIndex()(0)); + EXPECT_EQ(3, iterator.getSubmapIndex()(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(7, (*iterator)(0)); + EXPECT_EQ(3, (*iterator)(1)); + EXPECT_EQ(1, iterator.getSubmapIndex()(0)); + EXPECT_EQ(0, iterator.getSubmapIndex()(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(7, (*iterator)(0)); + EXPECT_EQ(4, (*iterator)(1)); + EXPECT_EQ(1, iterator.getSubmapIndex()(0)); + EXPECT_EQ(1, iterator.getSubmapIndex()(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(7, (*iterator)(0)); + EXPECT_EQ(0, (*iterator)(1)); + EXPECT_EQ(1, iterator.getSubmapIndex()(0)); + EXPECT_EQ(2, iterator.getSubmapIndex()(1)); + + ++iterator; + EXPECT_FALSE(iterator.isPastEnd()); + EXPECT_EQ(7, (*iterator)(0)); + EXPECT_EQ(1, (*iterator)(1)); + EXPECT_EQ(1, iterator.getSubmapIndex()(0)); + EXPECT_EQ(3, iterator.getSubmapIndex()(1)); + + ++iterator; + EXPECT_TRUE(iterator.isPastEnd()); + EXPECT_EQ(7, (*iterator)(0)); + EXPECT_EQ(1, (*iterator)(1)); + EXPECT_EQ(1, iterator.getSubmapIndex()(0)); + EXPECT_EQ(3, iterator.getSubmapIndex()(1)); +} diff --git a/ros/src/vendor/grid_map/grid_map_core/test/test_grid_map_core.cpp b/ros/src/vendor/grid_map/grid_map_core/test/test_grid_map_core.cpp new file mode 100644 index 00000000000..c1f3a46c03c --- /dev/null +++ b/ros/src/vendor/grid_map/grid_map_core/test/test_grid_map_core.cpp @@ -0,0 +1,18 @@ +/* + * test_grid_map.cpp + * + * Created on: Feb 10, 2014 + * Author: Péter Fankhauser + * Institute: ETH Zurich, Autonomous Systems Lab + */ + +// gtest +#include + +// Run all the tests that were declared with TEST() +int main(int argc, char **argv) +{ + testing::InitGoogleTest(&argc, argv); + srand((int)time(0)); + return RUN_ALL_TESTS(); +}