++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%
++++%++++%++++%++++%++++%++++%++++%++++%++++%-------------------------------------------------------------------------------------------------------------------------------------------------------++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%
++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%
++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++-----------------------------------------------------------------------------------------------------------------------------------------------------------%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%
++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%
++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%
++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%++++%