[
  {
    "path": ".gitignore",
    "content": "# Backup files\n*~\n"
  },
  {
    "path": ".rosinstall",
    "content": "# Robotnik stacks\n\n- git: {local-name: robotnik_msgs, version: master, uri: 'https://github.com/RobotnikAutomation/robotnik_msgs.git'}\n"
  },
  {
    "path": "README.md",
    "content": "agvs\n====\n\nROS package for the robot AGVS, intended for indoor transportation tasks\n\nList of packages\n\n### agvs_complete\n\nIt contains multiple launch files to perform different tasks, from creating a map with gmapping to launching amcl.\n\n### agvs_description\n\nRobot description. Urdf and mesh files.\n\n### agvs_pad            \n\nComponent to move the robot by using a ps3 pad.\n\n### planner_msgs\n\nMessages and actions for planning the autonomous movement of the robot.\n\n### agvs_control\n\nConfig files used for Gazebo motor controllers.\n\n### agvs_gazebo \n\nLaunch files and worlds to run Gazebo.\n\n### agvs_robot_control\n\nRobot controller that interacts with Gazebo motor controllers.\n\n### purepursuit_planner\n\nPlanner to follow a list of waypoints implementing the PurePursuit algorithm.\n"
  },
  {
    "path": "agvs/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 2.8.3)\nproject(agvs)\nfind_package(catkin REQUIRED)\ncatkin_metapackage()\n"
  },
  {
    "path": "agvs/package.xml",
    "content": "<?xml version=\"1.0\"?>\n<package>\n  <name>agvs</name>\n  <version>0.1.0</version>\n  <description>The agvs package. This package contains all the components to simulate the AGVS robot. An ackermann type robot intended for logistics transport.</description>\n\n \n  <maintainer email=\"rnavarro@robotnik.es\">Román Navarro</maintainer>\n  <maintainer email=\"rguzman@robotnik.es\">Roberto Guzmán</maintainer>\n\n  <author email=\"rnavarro@robotnik.es\">Román Navarro</author>\n  \n  <license>BSD</license>\n\n  <url type=\"website\">http://wiki.ros.org/agvs</url>\n  <url type=\"repository\">https://github.com/RobotnikAutomation/agvs</url>\n  <url type=\"bugtracker\">https://github.com/RobotnikAutomation/agvs/issues</url>\n\n  <buildtool_depend>catkin</buildtool_depend>\n  \n  <run_depend>agvs_complete</run_depend>\n  <run_depend>agvs_control</run_depend>\n  <run_depend>agvs_description</run_depend>\n  <run_depend>agvs_gazebo</run_depend>\n  <run_depend>agvs_pad</run_depend>\n  <run_depend>agvs_robot_control</run_depend>\n  <run_depend>planner_msgs</run_depend>\n  <run_depend>purepursuit_planner</run_depend>\n\n  <export><metapackage/></export>\n</package>\n"
  },
  {
    "path": "agvs.rosinstall",
    "content": "# Robotnik stacks\n\n- git: {local-name: robotnik_msgs, version: master, uri: 'https://github.com/RobotnikAutomation/robotnik_msgs.git'}\n"
  },
  {
    "path": "agvs_complete/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 2.8.3)\nproject(agvs_complete)\n\n## Find catkin macros and libraries\n## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)\n## is used, also find other catkin packages\nfind_package(catkin REQUIRED)\n\n## System dependencies are found with CMake's conventions\n# find_package(Boost REQUIRED COMPONENTS system)\n\n\n## Uncomment this if the package has a setup.py. This macro ensures\n## modules and global scripts declared therein get installed\n## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html\n# catkin_python_setup()\n\n################################################\n## Declare ROS messages, services and actions ##\n################################################\n\n## To declare and build messages, services or actions from within this\n## package, follow these steps:\n## * Let MSG_DEP_SET be the set of packages whose message types you use in\n##   your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).\n## * In the file package.xml:\n##   * add a build_depend and a run_depend tag for each package in MSG_DEP_SET\n##   * If MSG_DEP_SET isn't empty the following dependencies might have been\n##     pulled in transitively but can be declared for certainty nonetheless:\n##     * add a build_depend tag for \"message_generation\"\n##     * add a run_depend tag for \"message_runtime\"\n## * In this file (CMakeLists.txt):\n##   * add \"message_generation\" and every package in MSG_DEP_SET to\n##     find_package(catkin REQUIRED COMPONENTS ...)\n##   * add \"message_runtime\" and every package in MSG_DEP_SET to\n##     catkin_package(CATKIN_DEPENDS ...)\n##   * uncomment the add_*_files sections below as needed\n##     and list every .msg/.srv/.action file to be processed\n##   * uncomment the generate_messages entry below\n##   * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)\n\n## Generate messages in the 'msg' folder\n# add_message_files(\n#   FILES\n#   Message1.msg\n#   Message2.msg\n# )\n\n## Generate services in the 'srv' folder\n# add_service_files(\n#   FILES\n#   Service1.srv\n#   Service2.srv\n# )\n\n## Generate actions in the 'action' folder\n# add_action_files(\n#   FILES\n#   Action1.action\n#   Action2.action\n# )\n\n## Generate added messages and services with any dependencies listed here\n# generate_messages(\n#   DEPENDENCIES\n#   std_msgs  # Or other packages containing msgs\n# )\n\n###################################\n## catkin specific configuration ##\n###################################\n## The catkin_package macro generates cmake config files for your package\n## Declare things to be passed to dependent projects\n## INCLUDE_DIRS: uncomment this if you package contains header files\n## LIBRARIES: libraries you create in this project that dependent projects also need\n## CATKIN_DEPENDS: catkin_packages dependent projects also need\n## DEPENDS: system dependencies of this project that dependent projects also need\ncatkin_package(\n#  INCLUDE_DIRS include\n#  LIBRARIES agvs_complete\n#  CATKIN_DEPENDS other_catkin_pkg\n#  DEPENDS system_lib\n)\n\n###########\n## Build ##\n###########\n\n## Specify additional locations of header files\n## Your package locations should be listed before other locations\n# include_directories(include)\n\n## Declare a cpp library\n# add_library(agvs_complete\n#   src/${PROJECT_NAME}/agvs_complete.cpp\n# )\n\n## Declare a cpp executable\n# add_executable(agvs_complete_node src/agvs_complete_node.cpp)\n\n## Add cmake target dependencies of the executable/library\n## as an example, message headers may need to be generated before nodes\n# add_dependencies(agvs_complete_node agvs_complete_generate_messages_cpp)\n\n## Specify libraries to link a library or executable target against\n# target_link_libraries(agvs_complete_node\n#   ${catkin_LIBRARIES}\n# )\n\n#############\n## Install ##\n#############\n\n# all install targets should use catkin DESTINATION variables\n# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html\n\n## Mark executable scripts (Python etc.) for installation\n## in contrast to setup.py, you can choose the destination\n# install(PROGRAMS\n#   scripts/my_python_script\n#   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}\n# )\n\n## Mark executables and/or libraries for installation\n# install(TARGETS agvs_complete agvs_complete_node\n#   ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}\n#   LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}\n#   RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}\n# )\n\n## Mark cpp header files for installation\n# install(DIRECTORY include/${PROJECT_NAME}/\n#   DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}\n#   FILES_MATCHING PATTERN \"*.h\"\n#   PATTERN \".svn\" EXCLUDE\n# )\n\n## Mark other files for installation (e.g. launch and bag files, etc.)\n# install(FILES\n#   # myfile1\n#   # myfile2\n#   DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}\n# )\n\n#############\n## Testing ##\n#############\n\n## Add gtest based cpp test target and link libraries\n# catkin_add_gtest(${PROJECT_NAME}-test test/test_agvs_complete.cpp)\n# if(TARGET ${PROJECT_NAME}-test)\n#   target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})\n# endif()\n\n## Add folders to be run by python nosetests\n# catkin_add_nosetests(test)\n"
  },
  {
    "path": "agvs_complete/launch/agvs_complete.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n\n    <!-- start dspic_controller - reads lateral wheels and publishes differential odom -->\n    <node pkg=\"agvs_controller\" type=\"dspic_controller\" name=\"dspic_controller_node\" output=\"screen\" respawn=\"false\">\n\t<param name=\"port\" value=\"/dev/ttyS0\"/>\n        <param name=\"publish_tf\" value=\"true\"/>\n        <param name=\"odom_frame_id\" value=\"/odom\" type=\"string\"/>\n        <param name=\"base_frame_id\" value=\"/base_footprint\" type=\"string\"/>\n        <param name=\"desired_freq\" value=\"50.0\"/>\n    </node>\n\n    <!-- start laser sensor -->\n    <node pkg=\"s3000_laser\" type=\"s3000_laser_node\" name=\"s3000_laser_front\" output=\"screen\" respawn=\"false\">\n\t<param name=\"port\" value=\"/dev/ttyUSB_FRONT_LASER\" type=\"string\"/>\n\t<param name=\"frame_id\" value=\"/laser_front\" type=\"string\"/>\n    </node>\n\n   <!-- start laser sensor -->\n    <node pkg=\"s3000_laser\" type=\"s3000_laser_node\" name=\"s3000_laser_back\" output=\"screen\" respawn=\"false\">\n\t<param name=\"port\" value=\"/dev/ttyUSB_BACK_LASER\" type=\"string\"/>\n\t<param name=\"frame_id\" value=\"/laser_back\" type=\"string\"/>\n        <param name=\"publish_scan\" value=\"false\"/>\n    </node>\n    \n    <!-- start agvs_controller - communicates with the robot contorller and publishes ackerman odom --> \n    <!-- start agvs_controller node -->\n    <node pkg=\"agvs_controller\" type=\"agvs_controller\" name=\"agvs_controller\" output=\"screen\" respawn=\"false\">\n     <rosparam command=\"load\" file=\"$(find agvs_controller)/launch/agvs_controller.yaml\" />\n        <param name=\"odom_frame_id\" value=\"/odom_ack\" type=\"string\"/>\n        <param name=\"base_frame_id\" value=\"/base_footprint\" type=\"string\"/>\n        <param name=\"publish_tf\" value=\"false\"/>\n        <param name=\"desired_freq\" value=\"50.0\"/>\n    </node>\n   \n    <!-- start agvs_pad -->\n    <include file=\"$(find agvs_pad)/launch/agvs_pad.launch\"/>\n\n    <!-- Description -->\n    <include file=\"$(find agvs_description)/launch/agvs.launch\"/>\n\n\n    <!--node pkg=\"tf\" type=\"static_transform_publisher\" name=\"laser_front_broadcaster\" args=\"0.772 0.0 0.140 0 0 0 base_link laser_front 20\" /-->\n\n      <!-- start purepursuit node -->\n     <node pkg=\"purepursuit_planner\" type=\"purepursuit_planner_node\" name=\"purepursuit_planner\" output=\"screen\">\n\t <param name=\"position_source\" value=\"MAP\" type=\"string\"/>\n\t <param name=\"d_lookahear_min\" value=\"0.6\"/>\n\t <param name=\"desired_freq\" value=\"50.0\"/>\n     </node>\n\n</launch>\n"
  },
  {
    "path": "agvs_complete/launch/agvs_gmapping.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n  <node pkg=\"gmapping\" type=\"slam_gmapping\" args=\"scan:=/scan\" name=\"slam_gmapping\" output=\"screen\"/>\n  <!-- nav_view replaced by rviz visualization and goal setting -->\n  <!-- include file=\"$(find 2dnav_testing)/rviz.xml\"/ -->\n</launch>\n\n\n"
  },
  {
    "path": "agvs_complete/launch/agvs_hector_mapping.launch",
    "content": "<?xml version=\"1.0\"?>\n\n<launch>\n  <arg name=\"tf_map_scanmatch_transform_frame_name\" default=\"scanmatcher_frame\"/>\n  <arg name=\"base_frame\" default=\"base_link\"/>\n  <arg name=\"odom_frame\" default=\"odom\"/>\n  <arg name=\"pub_map_odom_transform\" default=\"true\"/>\n  <arg name=\"scan_subscriber_queue_size\" default=\"5\"/>\n  <arg name=\"scan_topic\" default=\"scan\"/>\n  <arg name=\"map_size\" default=\"2048\"/>\n  \n  <node pkg=\"hector_mapping\" type=\"hector_mapping\" name=\"hector_mapping\" output=\"screen\">\n    \n    <!-- Frame names -->\n    <param name=\"map_frame\" value=\"map\" />\n    <param name=\"base_frame\" value=\"$(arg base_frame)\" />\n    <param name=\"odom_frame\" value=\"$(arg odom_frame)\" />\n    \n    <!-- Tf use -->\n    <param name=\"use_tf_scan_transformation\" value=\"true\"/>\n    <param name=\"use_tf_pose_start_estimate\" value=\"false\"/>\n    <param name=\"pub_map_odom_transform\" value=\"$(arg pub_map_odom_transform)\"/>\n    \n    <!-- Map size / start point -->\n    <param name=\"map_resolution\" value=\"0.050\"/>\n    <param name=\"map_size\" value=\"$(arg map_size)\"/>\n    <param name=\"map_start_x\" value=\"0.5\"/>\n    <param name=\"map_start_y\" value=\"0.5\" />\n    <param name=\"map_multi_res_levels\" value=\"2\" />\n    \n    <!-- Map update parameters -->\n    <param name=\"update_factor_free\" value=\"0.4\"/>\n    <param name=\"update_factor_occupied\" value=\"0.9\" />    \n    <param name=\"map_update_distance_thresh\" value=\"0.4\"/>\n    <param name=\"map_update_angle_thresh\" value=\"0.06\" />\n    <param name=\"laser_z_min_value\" value = \"-1.0\" />\n    <param name=\"laser_z_max_value\" value = \"1.0\" />\n    \n    <!-- Advertising config --> \n    <param name=\"advertise_map_service\" value=\"true\"/>\n    \n    <param name=\"scan_subscriber_queue_size\" value=\"$(arg scan_subscriber_queue_size)\"/>\n    <param name=\"scan_topic\" value=\"$(arg scan_topic)\"/>\n    \n    <!-- Debug parameters -->\n    <!--\n      <param name=\"output_timing\" value=\"false\"/>\n      <param name=\"pub_drawings\" value=\"true\"/>\n      <param name=\"pub_debug_output\" value=\"true\"/>\n    -->\n    <param name=\"tf_map_scanmatch_transform_frame_name\" value=\"$(arg tf_map_scanmatch_transform_frame_name)\" />\n  </node>\n    \n  <!--<node pkg=\"tf\" type=\"static_transform_publisher\" name=\"map_nav_broadcaster\" args=\"0 0 0\n 0 0 0 map nav 100\"/>-->\n</launch>\n  \n\n"
  },
  {
    "path": "agvs_complete/launch/amcl_diff.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n<node pkg=\"amcl\" type=\"amcl\" name=\"amcl\" output=\"screen\">\n  <!-- Publish scans from best pose at a max of 10 Hz -->\n  <param name=\"odom_model_type\" value=\"diff\"/>\n  <param name=\"odom_alpha5\" value=\"0.1\"/>\n  <param name=\"transform_tolerance\" value=\"0.2\" />\n  <param name=\"gui_publish_rate\" value=\"10.0\"/>\n  <!-- param name=\"laser_max_beams\" value=\"30\"/ -->\n  <param name=\"laser_max_beams\" value=\"100\" />\n  <param name=\"min_particles\" value=\"500\"/>\n  <param name=\"max_particles\" value=\"5000\"/>\n  <param name=\"kld_err\" value=\"0.05\"/>\n  <param name=\"kld_z\" value=\"0.99\"/>\n  <param name=\"odom_alpha1\" value=\"0.2\"/>\n  <param name=\"odom_alpha2\" value=\"0.2\"/>\n  <!-- translation std dev, m -->\n  <param name=\"odom_alpha3\" value=\"0.2\"/>\n  <param name=\"odom_alpha4\" value=\"0.2\"/>\n  <param name=\"laser_z_hit\" value=\"0.95\"/>\n  <param name=\"laser_z_short\" value=\"0.1\"/>\n  <param name=\"laser_z_max\" value=\"0.05\"/>\n  <param name=\"laser_z_rand\" value=\"0.05\"/>\n  <param name=\"laser_sigma_hit\" value=\"0.2\"/>\n  <param name=\"laser_lambda_short\" value=\"0.1\"/>\n  <param name=\"laser_model_type\" value=\"beam\"/>\n  <param name=\"laser_likelihood_max_dist\" value=\"2.0\"/>\n  <!--param name=\"update_min_d\" value=\"0.2\"/ -->\n  <param name=\"update_min_d\" value=\"1.5\" />\n  <!-- param name=\"update_min_a\" value=\"0.5\"/ -->\n  <param name=\"update_min_a\" value=\"0.6\" />\n  <param name=\"odom_frame_id\" value=\"odom\"/>\n  <param name=\"resample_interval\" value=\"2\"/>\n  <param name=\"transform_tolerance\" value=\"0.1\"/>\n  <!--param name=\"recovery_alpha_slow\" value=\"0.0\"/ -->\n  <param name=\"recovery_alpha_slow\" value=\"0.001\" />\n  <!-- param name=\"recovery_alpha_fast\" value=\"0.0\"/ -->\n  <param name=\"recovery_alpha_fast\" value=\"0.1\"/>\n</node>\n</launch>\n"
  },
  {
    "path": "agvs_complete/launch/amcl_diff_2.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n<node pkg=\"amcl\" type=\"amcl\" name=\"amcl\" output=\"screen\">\n  <!-- Publish scans from best pose at a max of 10 Hz -->\n  <param name=\"odom_model_type\" value=\"diff\"/>\n  <param name=\"odom_alpha5\" value=\"0.1\"/>\n  <param name=\"transform_tolerance\" value=\"0.2\" />\n  <param name=\"gui_publish_rate\" value=\"10.0\"/>\n  <!-- param name=\"laser_max_beams\" value=\"30\"/ -->\n  <param name=\"laser_max_beams\" value=\"100\" />\n  <param name=\"min_particles\" value=\"500\"/>\n  <param name=\"max_particles\" value=\"5000\"/>\n  <param name=\"kld_err\" value=\"0.05\"/>\n  <param name=\"kld_z\" value=\"0.99\"/>\n  <param name=\"odom_alpha1\" value=\"0.5\"/>\n  <param name=\"odom_alpha2\" value=\"0.5\"/>\n  <!-- translation std dev, m -->\n  <param name=\"odom_alpha3\" value=\"1.0\"/>\n  <param name=\"odom_alpha4\" value=\"1.0\"/>\n  <param name=\"laser_z_hit\" value=\"0.5\"/>\n  <param name=\"laser_z_short\" value=\"0.05\"/>\n  <param name=\"laser_z_max\" value=\"0.05\"/>\n  <param name=\"laser_z_rand\" value=\"0.5\"/>\n  <param name=\"laser_sigma_hit\" value=\"0.2\"/>\n  <param name=\"laser_lambda_short\" value=\"0.1\"/>\n  <param name=\"laser_lambda_short\" value=\"0.1\"/>\n  <param name=\"laser_model_type\" value=\"likelihood_field\"/>\n  <param name=\"laser_model_type\" value=\"beam\"/>\n  <param name=\"laser_likelihood_max_dist\" value=\"2.0\"/>\n  <!--param name=\"update_min_d\" value=\"0.2\"/ -->\n  <param name=\"update_min_d\" value=\"0.1\" />\n  <!-- param name=\"update_min_a\" value=\"0.5\"/ -->\n  <param name=\"update_min_a\" value=\"0.25\" />\n  <param name=\"odom_frame_id\" value=\"odom\"/>\n  <param name=\"resample_interval\" value=\"2\"/>\n  <param name=\"transform_tolerance\" value=\"0.1\"/>\n  <!--param name=\"recovery_alpha_slow\" value=\"0.0\"/ -->\n  <param name=\"recovery_alpha_slow\" value=\"0.001\" />\n  <!-- param name=\"recovery_alpha_fast\" value=\"0.0\"/ -->\n  <param name=\"recovery_alpha_fast\" value=\"0.1\"/>\n</node>\n</launch>\n"
  },
  {
    "path": "agvs_complete/launch/map_server.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n  <!-- Run the map server -->\n  <!-- rosrun map_server map_server -->\n  <!-- node name=\"map_server\" pkg=\"map_server\" type=\"map_server\" args=\"$(find my_map_package)/my_map.pgm my_map_resolution\" -->\n  <node name=\"map_server\" pkg=\"map_server\" type=\"map_server\" args=\"$(find agvs_complete)/maps/willow.yaml\"/>\n\n\n</launch>\n\n"
  },
  {
    "path": "agvs_complete/launch/purepursuit_nav.rviz",
    "content": "Panels:\n  - Class: rviz/Displays\n    Help Height: 78\n    Name: Displays\n    Property Tree Widget:\n      Expanded:\n        - /Global Options1\n        - /Status1\n        - /InteractiveMarkers1\n        - /PoseArray1\n      Splitter Ratio: 0.5\n    Tree Height: 669\n  - Class: rviz/Selection\n    Name: Selection\n  - Class: rviz/Tool Properties\n    Expanded:\n      - /2D Pose Estimate1\n      - /2D Nav Goal1\n      - /Publish Point1\n    Name: Tool Properties\n    Splitter Ratio: 0.588679\n  - Class: rviz/Views\n    Expanded:\n      - /Current View1\n    Name: Views\n    Splitter Ratio: 0.5\n  - Class: rviz/Time\n    Experimental: false\n    Name: Time\n    SyncMode: 0\n    SyncSource: LaserScan\nVisualization Manager:\n  Class: \"\"\n  Displays:\n    - Alpha: 0.5\n      Cell Size: 1\n      Class: rviz/Grid\n      Color: 160; 160; 164\n      Enabled: true\n      Line Style:\n        Line Width: 0.03\n        Value: Lines\n      Name: Grid\n      Normal Cell Count: 0\n      Offset:\n        X: 0\n        Y: 0\n        Z: 0\n      Plane: XY\n      Plane Cell Count: 10\n      Reference Frame: <Fixed Frame>\n      Value: true\n    - Alpha: 1\n      Class: rviz/RobotModel\n      Collision Enabled: false\n      Enabled: true\n      Links:\n        All Links Enabled: true\n        Expand Joint Details: false\n        Expand Link Details: false\n        Expand Tree: false\n        Link Tree Style: Links in Alphabetic Order\n        back_motor_wheel:\n          Alpha: 1\n          Show Axes: false\n          Show Trail: false\n          Value: true\n        back_wheel:\n          Alpha: 1\n          Show Axes: false\n          Show Trail: false\n          Value: true\n        base_footprint:\n          Alpha: 1\n          Show Axes: false\n          Show Trail: false\n          Value: true\n        base_link:\n          Alpha: 1\n          Show Axes: false\n          Show Trail: false\n          Value: true\n        elevator_link:\n          Alpha: 1\n          Show Axes: false\n          Show Trail: false\n          Value: true\n        front_motor_wheel:\n          Alpha: 1\n          Show Axes: false\n          Show Trail: false\n          Value: true\n        front_wheel:\n          Alpha: 1\n          Show Axes: false\n          Show Trail: false\n          Value: true\n        imu_link:\n          Alpha: 1\n          Show Axes: false\n          Show Trail: false\n          Value: true\n        laser_back:\n          Alpha: 1\n          Show Axes: false\n          Show Trail: false\n        laser_front:\n          Alpha: 1\n          Show Axes: false\n          Show Trail: false\n        side_wheel_left:\n          Alpha: 1\n          Show Axes: false\n          Show Trail: false\n          Value: true\n        side_wheel_right:\n          Alpha: 1\n          Show Axes: false\n          Show Trail: false\n          Value: true\n      Name: RobotModel\n      Robot Description: robot_description\n      TF Prefix: \"\"\n      Update Interval: 0\n      Value: true\n      Visual Enabled: true\n    - Alpha: 0.7\n      Class: rviz/Map\n      Color Scheme: map\n      Draw Behind: false\n      Enabled: true\n      Name: Map\n      Topic: /map\n      Value: true\n    - Alpha: 1\n      Autocompute Intensity Bounds: true\n      Autocompute Value Bounds:\n        Max Value: 10\n        Min Value: -10\n        Value: true\n      Axis: Z\n      Channel Name: intensity\n      Class: rviz/LaserScan\n      Color: 255; 255; 255\n      Color Transformer: Intensity\n      Decay Time: 0\n      Enabled: true\n      Invert Rainbow: false\n      Max Color: 255; 255; 255\n      Max Intensity: 2.70451e-43\n      Min Color: 0; 0; 0\n      Min Intensity: 0\n      Name: LaserScan\n      Position Transformer: XYZ\n      Queue Size: 10\n      Selectable: true\n      Size (Pixels): 3\n      Size (m): 0.01\n      Style: Flat Squares\n      Topic: /scan\n      Use Fixed Frame: true\n      Use rainbow: true\n      Value: true\n    - Class: rviz/InteractiveMarkers\n      Enable Transparency: true\n      Enabled: true\n      Name: InteractiveMarkers\n      Show Axes: false\n      Show Descriptions: true\n      Show Visual Aids: false\n      Update Topic: /path_marker/update\n      Value: true\n    - Arrow Length: 0.3\n      Class: rviz/PoseArray\n      Color: 255; 25; 0\n      Enabled: true\n      Name: PoseArray\n      Topic: /particlecloud\n      Value: true\n  Enabled: true\n  Global Options:\n    Background Color: 48; 48; 48\n    Fixed Frame: map\n    Frame Rate: 30\n  Name: root\n  Tools:\n    - Class: rviz/Interact\n      Hide Inactive Objects: true\n    - Class: rviz/MoveCamera\n    - Class: rviz/Select\n    - Class: rviz/FocusCamera\n    - Class: rviz/Measure\n    - Class: rviz/SetInitialPose\n      Topic: /initialpose\n    - Class: rviz/SetGoal\n      Topic: /move_base_simple/goal\n    - Class: rviz/PublishPoint\n      Single click: true\n      Topic: /clicked_point\n  Value: true\n  Views:\n    Current:\n      Class: rviz/Orbit\n      Distance: 10.1054\n      Enable Stereo Rendering:\n        Stereo Eye Separation: 0.06\n        Stereo Focal Distance: 1\n        Swap Stereo Eyes: false\n        Value: false\n      Focal Point:\n        X: 0\n        Y: 0\n        Z: 0\n      Name: Current View\n      Near Clip Distance: 0.01\n      Pitch: 0.645398\n      Target Frame: <Fixed Frame>\n      Value: Orbit (rviz)\n      Yaw: 3.1954\n    Saved: ~\nWindow Geometry:\n  Displays:\n    collapsed: false\n  Height: 950\n  Hide Left Dock: false\n  Hide Right Dock: false\n  QMainWindow State: 000000ff00000000fd00000004000000000000013c0000032cfc0200000009fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006400fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c00610079007301000000280000032c000000dd00fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000a0049006d006100670065000000028f000000c50000000000000000000000010000010f0000032cfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a0056006900650077007301000000280000032c000000b000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000006af0000003efc0100000002fb0000000800540069006d00650100000000000006af000002f600fffffffb0000000800540069006d00650100000000000004500000000000000000000004580000032c00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000\n  Selection:\n    collapsed: false\n  Time:\n    collapsed: false\n  Tool Properties:\n    collapsed: false\n  Views:\n    collapsed: false\n  Width: 1711\n  X: 58\n  Y: 60\n"
  },
  {
    "path": "agvs_complete/launch/robot_pose_ekf.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n\n<node pkg=\"robot_pose_ekf\" type=\"robot_pose_ekf\" name=\"robot_pose_ekf\">\n  <!-- param name=\"output_frame\" value=\"odom_combined\"/ -->\n  <!-- name of the frame and name of the topic -->\n  <!-- publishes /robot_pose_ekf/odom_combined -->\n  <!-- param name=\"output_frame\" value=\"odom_combined\"/ -->\n  <param name=\"output_frame\" value=\"odom\"/>\n  <param name=\"freq\" value=\"30.0\"/>\n  <param name=\"sensor_timeout\" value=\"1.0\"/>  \n  <param name=\"odom_used\" value=\"true\"/>\n  <param name=\"imu_used\" value=\"false\"/>\n  <param name=\"vo_used\" value=\"true\"/>\n\n  <!-- remap from=\"odom\" to=\"pr2_base_odometry/odom\" / -->\n  <!--remap from=\"imu_data\" to=\"imu/data\" /--> \n  <remap from=\"odom\" to=\"odom_diff\" />\n  <remap from=\"vo\" to=\"odom_ack\" />\n\n</node>\n\n</launch>\n\n"
  },
  {
    "path": "agvs_complete/maps/willow.yaml",
    "content": "image: willow.pgm\nresolution: 0.050000\norigin: [-100.000000, -100.000000, 0.000000]\nnegate: 0\noccupied_thresh: 0.65\nfree_thresh: 0.196\n\n"
  },
  {
    "path": "agvs_complete/package.xml",
    "content": "<?xml version=\"1.0\"?>\n<package>\n  <name>agvs_complete</name>\n  <version>0.1.0</version>\n  <description>The agvs_complete package. It contains multiple launch files to perform different tasks, from creating a map with gmapping to launching amcl.</description>\n\n\n  <maintainer email=\"rguzman@robotnik.es\">Roberto Guzmán</maintainer>\n  <maintainer email=\"rnavarro@robotnik.es\">Román Navarro</maintainer>\n\n  <license>BSD</license>\n\n\n  <url type=\"website\">http://wiki.ros.org/agvs_complete</url>\n  <url type=\"repository\">https://github.com/RobotnikAutomation/agvs</url>\n  <url type=\"bugtracker\">https://github.com/RobotnikAutomation/agvs/issues</url>\n\n\n  <author email=\"rnavarro@robotnik.es\">Román Navarro</author> \n\n  <buildtool_depend>catkin</buildtool_depend>\n\n\n  <export>\n  </export>\n</package>\n"
  },
  {
    "path": "agvs_complete/scripts/save_map.sh",
    "content": "#!/bin/sh\n# parameter $1: name of the map\n\nrosrun map_server map_saver -f $1\n"
  },
  {
    "path": "agvs_control/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 2.8.3)\nproject(agvs_control)\n\n## Find catkin macros and libraries\n## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)\n## is used, also find other catkin packages\n#find_package(catkin REQUIRED COMPONENTS\n#  ros_control\n#  ros_controllers\n#)\n\n## System dependencies are found with CMake's conventions\n# find_package(Boost REQUIRED COMPONENTS system)\n\n\n## Uncomment this if the package has a setup.py. This macro ensures\n## modules and global scripts declared therein get installed\n## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html\n# catkin_python_setup()\n\n################################################\n## Declare ROS messages, services and actions ##\n################################################\n\n## To declare and build messages, services or actions from within this\n## package, follow these steps:\n## * Let MSG_DEP_SET be the set of packages whose message types you use in\n##   your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).\n## * In the file package.xml:\n##   * add a build_depend and a run_depend tag for each package in MSG_DEP_SET\n##   * If MSG_DEP_SET isn't empty the following dependencies might have been\n##     pulled in transitively but can be declared for certainty nonetheless:\n##     * add a build_depend tag for \"message_generation\"\n##     * add a run_depend tag for \"message_runtime\"\n## * In this file (CMakeLists.txt):\n##   * add \"message_generation\" and every package in MSG_DEP_SET to\n##     find_package(catkin REQUIRED COMPONENTS ...)\n##   * add \"message_runtime\" and every package in MSG_DEP_SET to\n##     catkin_package(CATKIN_DEPENDS ...)\n##   * uncomment the add_*_files sections below as needed\n##     and list every .msg/.srv/.action file to be processed\n##   * uncomment the generate_messages entry below\n##   * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)\n\n## Generate messages in the 'msg' folder\n# add_message_files(\n#   FILES\n#   Message1.msg\n#   Message2.msg\n# )\n\n## Generate services in the 'srv' folder\n# add_service_files(\n#   FILES\n#   Service1.srv\n#   Service2.srv\n# )\n\n## Generate actions in the 'action' folder\n# add_action_files(\n#   FILES\n#   Action1.action\n#   Action2.action\n# )\n\n## Generate added messages and services with any dependencies listed here\n# generate_messages(\n#   DEPENDENCIES\n#   std_msgs  # Or other packages containing msgs\n# )\n\n###################################\n## catkin specific configuration ##\n###################################\n## The catkin_package macro generates cmake config files for your package\n## Declare things to be passed to dependent projects\n## INCLUDE_DIRS: uncomment this if you package contains header files\n## LIBRARIES: libraries you create in this project that dependent projects also need\n## CATKIN_DEPENDS: catkin_packages dependent projects also need\n## DEPENDS: system dependencies of this project that dependent projects also need\ncatkin_package(\n#  INCLUDE_DIRS include\n#  LIBRARIES agvs_control\n#  CATKIN_DEPENDS ros_control ros_controllers\n#  DEPENDS system_lib\n)\n\n###########\n## Build ##\n###########\n\n## Specify additional locations of header files\n## Your package locations should be listed before other locations\n# include_directories(include)\ninclude_directories(\n  ${catkin_INCLUDE_DIRS}\n)\n\n## Declare a cpp library\n# add_library(agvs_control\n#   src/${PROJECT_NAME}/agvs_control.cpp\n# )\n\n## Declare a cpp executable\n# add_executable(agvs_control_node src/agvs_control_node.cpp)\n\n## Add cmake target dependencies of the executable/library\n## as an example, message headers may need to be generated before nodes\n# add_dependencies(agvs_control_node agvs_control_generate_messages_cpp)\n\n## Specify libraries to link a library or executable target against\n# target_link_libraries(agvs_control_node\n#   ${catkin_LIBRARIES}\n# )\n\n#############\n## Install ##\n#############\n\n# all install targets should use catkin DESTINATION variables\n# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html\n\n## Mark executable scripts (Python etc.) for installation\n## in contrast to setup.py, you can choose the destination\n# install(PROGRAMS\n#   scripts/my_python_script\n#   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}\n# )\n\n## Mark executables and/or libraries for installation\n# install(TARGETS agvs_control agvs_control_node\n#   ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}\n#   LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}\n#   RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}\n# )\n\n## Mark cpp header files for installation\n# install(DIRECTORY include/${PROJECT_NAME}/\n#   DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}\n#   FILES_MATCHING PATTERN \"*.h\"\n#   PATTERN \".svn\" EXCLUDE\n# )\n\n## Mark other files for installation (e.g. launch and bag files, etc.)\n# install(FILES\n#   # myfile1\n#   # myfile2\n#   DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}\n# )\n\n#############\n## Testing ##\n#############\n\n## Add gtest based cpp test target and link libraries\n# catkin_add_gtest(${PROJECT_NAME}-test test/test_agvs_control.cpp)\n# if(TARGET ${PROJECT_NAME}-test)\n#   target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})\n# endif()\n\n## Add folders to be run by python nosetests\n# catkin_add_nosetests(test)\n"
  },
  {
    "path": "agvs_control/config/agvs_control.yaml",
    "content": "agvs:\n# Velocity controllers\n#  joint_back_wheel_effort_controller:\n#    type: effort_controllers/JointEffortController\n#    joint: joint_back_wheel\n#    pid: {p: 1000.0, i: 500, d: 500.0}\n\n  joint_back_wheel_controller:\n    type: velocity_controllers/JointVelocityController\n    joint: joint_back_wheel\n    pid: {p: 1000.0, i: 0.01, d: 100.0}\n\n#  joint_front_wheel_effort_controller:\n#    type: effort_controllers/JointEffortController\n#    joint: joint_front_wheel\n#    pid: {p: 1000.0, i: 500, d: 500.0}\n\n  joint_front_wheel_controller:\n    type: velocity_controllers/JointVelocityController\n    joint: joint_front_wheel\n    pid: {p: 1000.0, i: 0.01, d: 100.0}\n\n# Position controllers\n  joint_back_motor_wheel_controller:\n    type: effort_controllers/JointPositionController\n    joint: joint_back_motor_wheel\n    pid: {p: 100.0, i: 0.01, d: 10.0}\n# Be careful with the selection of the pid values, e.g. d: 50.0 produces a nan in the velocity ???\n\n  joint_front_motor_wheel_controller:\n    type: effort_controllers/JointPositionController\n    joint: joint_front_motor_wheel\n    pid: {p: 100.0, i: 0.01, d: 10.0}\n    \n  joint_elevator_controller:\n    type: effort_controllers/JointPositionController\n    joint: elevator_joint\n    pid: {p: 10000.0, i: 10000.0, d: 500.0}\n  \n  joint_read_state_controller:\n    type: joint_state_controller/JointStateController \n    publish_rate: 100.0\n"
  },
  {
    "path": "agvs_control/launch/agvs_control.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n\n  <!-- load the controllers -->\n  <node name=\"controller_spawner\" pkg=\"controller_manager\" type=\"spawner\" respawn=\"false\"\n    output=\"screen\" ns=\"/agvs\" args=\"--namespace=/agvs\n                      joint_back_wheel_controller\n                      joint_front_wheel_controller\n                      joint_back_motor_wheel_controller\n                      joint_front_motor_wheel_controller\n                      joint_elevator_controller\n                      joint_read_state_controller \n                      \"/>\n\n  <!-- Load joint controller configurations from YAcd .ML file to parameter server -->\n  <rosparam file=\"$(find agvs_control)/config/agvs_control.yaml\" command=\"load\"/>\n\n  <!-- once the joint_state is published, run the robot_state_publisher, the namespace has to be adapted --> \n  <!-- convert joint states to TF transforms for rviz, etc -->\n  <node name=\"robot_state_publisher\" pkg=\"robot_state_publisher\" type=\"robot_state_publisher\"\n    respawn=\"false\" output=\"screen\">\n    <remap from=\"/joint_states\" to=\"/agvs/joint_states\" />\n  </node>\n    \n</launch>\n\n"
  },
  {
    "path": "agvs_control/package.xml",
    "content": "<?xml version=\"1.0\"?>\n<package>\n  <name>agvs_control</name>\n  <version>0.1.0</version>\n  <description>The agvs_control package. Config files used for Gazebo motor controllers.</description>\n\n  <maintainer email=\"rnavarro@robotnik.es\">Román Navarro</maintainer>\n  <maintainer email=\"rguzman@robotnik.es\">Roberto Guzmán</maintainer>\n\n\n  <license>BSD</license>\n\n  <url type=\"website\">http://wiki.ros.org/agvs_control</url>\n  <url type=\"repository\">https://github.com/RobotnikAutomation/agvs</url>\n  <url type=\"bugtracker\">https://github.com/RobotnikAutomation/agvs/issues</url>\n\n  <author email=\"rguzman@robotnik.es\">Roberto Guzmán</author>\n\n \n  <buildtool_depend>catkin</buildtool_depend>\n  <build_depend>ros_controllers</build_depend>\n  <build_depend>ros_control</build_depend>\n  <run_depend>ros_controllers</run_depend>\n  <run_depend>ros_control</run_depend>\n\n  <export>\n  \n\n  </export>\n</package>\n"
  },
  {
    "path": "agvs_description/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 2.8.3)\nproject(agvs_description)\n\n## Find catkin macros and libraries\n## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)\n## is used, also find other catkin packages\nfind_package(catkin REQUIRED COMPONENTS\n  message_runtime\n  roscpp\n  std_msgs\n  std_srvs\n  tf\n)\n\n## System dependencies are found with CMake's conventions\n# find_package(Boost REQUIRED COMPONENTS system)\n\n\n## Uncomment this if the package has a setup.py. This macro ensures\n## modules and global scripts declared therein get installed\n## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html\n# catkin_python_setup()\n\n################################################\n## Declare ROS messages, services and actions ##\n################################################\n\n## To declare and build messages, services or actions from within this\n## package, follow these steps:\n## * Let MSG_DEP_SET be the set of packages whose message types you use in\n##   your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).\n## * In the file package.xml:\n##   * add a build_depend and a run_depend tag for each package in MSG_DEP_SET\n##   * If MSG_DEP_SET isn't empty the following dependencies might have been\n##     pulled in transitively but can be declared for certainty nonetheless:\n##     * add a build_depend tag for \"message_generation\"\n##     * add a run_depend tag for \"message_runtime\"\n## * In this file (CMakeLists.txt):\n##   * add \"message_generation\" and every package in MSG_DEP_SET to\n##     find_package(catkin REQUIRED COMPONENTS ...)\n##   * add \"message_runtime\" and every package in MSG_DEP_SET to\n##     catkin_package(CATKIN_DEPENDS ...)\n##   * uncomment the add_*_files sections below as needed\n##     and list every .msg/.srv/.action file to be processed\n##   * uncomment the generate_messages entry below\n##   * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)\n\n## Generate messages in the 'msg' folder\n# add_message_files(\n#   FILES\n#   Message1.msg\n#   Message2.msg\n# )\n\n## Generate services in the 'srv' folder\n# add_service_files(\n#   FILES\n#   Service1.srv\n#   Service2.srv\n# )\n\n## Generate actions in the 'action' folder\n# add_action_files(\n#   FILES\n#   Action1.action\n#   Action2.action\n# )\n\n## Generate added messages and services with any dependencies listed here\n# generate_messages(\n#   DEPENDENCIES\n#   std_msgs\n# )\n\n###################################\n## catkin specific configuration ##\n###################################\n## The catkin_package macro generates cmake config files for your package\n## Declare things to be passed to dependent projects\n## INCLUDE_DIRS: uncomment this if you package contains header files\n## LIBRARIES: libraries you create in this project that dependent projects also need\n## CATKIN_DEPENDS: catkin_packages dependent projects also need\n## DEPENDS: system dependencies of this project that dependent projects also need\ncatkin_package(\n#  INCLUDE_DIRS include\n#  LIBRARIES agvs_description\n#  CATKIN_DEPENDS gazebo_ros message_runtime roscpp std_msgs std_srvs tf\n#  DEPENDS system_lib\n)\n\n###########\n## Build ##\n###########\n\n## Specify additional locations of header files\n## Your package locations should be listed before other locations\n# include_directories(include)\ninclude_directories(\n  ${catkin_INCLUDE_DIRS}\n)\n\n## Declare a cpp library\n# add_library(agvs_description\n#   src/${PROJECT_NAME}/agvs_description.cpp\n# )\n\n## Declare a cpp executable\n# add_executable(agvs_description_node src/agvs_description_node.cpp)\n\n## Add cmake target dependencies of the executable/library\n## as an example, message headers may need to be generated before nodes\n# add_dependencies(agvs_description_node agvs_description_generate_messages_cpp)\n\n## Specify libraries to link a library or executable target against\n# target_link_libraries(agvs_description_node\n#   ${catkin_LIBRARIES}\n# )\n\n#############\n## Install ##\n#############\n\n# all install targets should use catkin DESTINATION variables\n# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html\n\n## Mark executable scripts (Python etc.) for installation\n## in contrast to setup.py, you can choose the destination\n# install(PROGRAMS\n#   scripts/my_python_script\n#   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}\n# )\n\n## Mark executables and/or libraries for installation\n# install(TARGETS agvs_description agvs_description_node\n#   ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}\n#   LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}\n#   RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}\n# )\n\n## Mark cpp header files for installation\n# install(DIRECTORY include/${PROJECT_NAME}/\n#   DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}\n#   FILES_MATCHING PATTERN \"*.h\"\n#   PATTERN \".svn\" EXCLUDE\n# )\n\n## Mark other files for installation (e.g. launch and bag files, etc.)\n# install(FILES\n#   # myfile1\n#   # myfile2\n#   DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}\n# )\n\n#############\n## Testing ##\n#############\n\n## Add gtest based cpp test target and link libraries\n# catkin_add_gtest(${PROJECT_NAME}-test test/test_agvs_description.cpp)\n# if(TARGET ${PROJECT_NAME}-test)\n#   target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})\n# endif()\n\n## Add folders to be run by python nosetests\n# catkin_add_nosetests(test)\n"
  },
  {
    "path": "agvs_description/launch/agvs.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n  <param name=\"robot_description\"\n    command=\"$(find xacro)/xacro.py '$(find agvs_description)/urdf/agvs.urdf.xacro'\" />\n\n  <!-- Combine joint values -->\n  <node name=\"robot_state_publisher\" pkg=\"robot_state_publisher\" type=\"state_publisher\"/>\n\n</launch>\n\n"
  },
  {
    "path": "agvs_description/launch/agvs_state.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n  <param name=\"robot_description\"\n    command=\"$(find xacro)/xacro.py '$(find agvs_description)/urdf/agvs.urdf.xacro'\" />\n\n  <!-- send fake joint values>\n  <node name=\"joint_state_publisher\" pkg=\"joint_state_publisher\" type=\"joint_state_publisher\">\n    <param name=\"use_gui\" value=\"TRUE\"/>\n  </node-->\n\n  <!-- Combine joint values -->\n  <!-- node name=\"robot_state_publisher\" pkg=\"robot_state_publisher\" type=\"state_publisher\"/ -->\n\n  <!-- Show in Rviz   -->\n  <!--node name=\"rviz\" pkg=\"rviz\" type=\"rviz\"/-->  <!--  args=\"-d $(find rrbot_description)/launch/rrbot.rviz\"/ -->\n\n</launch>\n\n"
  },
  {
    "path": "agvs_description/launch/rviz_agvs.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n  <param name=\"robot_description\"\n    command=\"$(find xacro)/xacro.py '$(find agvs_description)/urdf/agvs.urdf.xacro'\" />\n\n  <!-- send fake joint values>\n  <node name=\"joint_state_publisher\" pkg=\"joint_state_publisher\" type=\"joint_state_publisher\">\n    <param name=\"use_gui\" value=\"TRUE\"/>\n  </node-->\n\n  <!-- Combine joint values -->\n  <node name=\"robot_state_publisher\" pkg=\"robot_state_publisher\" type=\"state_publisher\"/>\n\n  <!-- Show in Rviz   -->\n  <!--node name=\"rviz\" pkg=\"rviz\" type=\"rviz\"/-->  <!--  args=\"-d $(find rrbot_description)/launch/rrbot.rviz\"/ -->\n\n</launch>\n\n"
  },
  {
    "path": "agvs_description/launch/rviz_agvs_alone.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n  <param name=\"robot_description\"\n    command=\"$(find xacro)/xacro.py '$(find agvs_description)/urdf/agvs.urdf.xacro'\" />\n\n  <!-- send fake joint values -->\n  <node name=\"joint_state_publisher\" pkg=\"joint_state_publisher\" type=\"joint_state_publisher\">\n    <param name=\"use_gui\" value=\"TRUE\"/>\n  </node>\n\n  <!-- Combine joint values -->\n  <node name=\"robot_state_publisher\" pkg=\"robot_state_publisher\" type=\"state_publisher\"/>\n\n  <!-- Show in Rviz   -->\n  <node name=\"rviz\" pkg=\"rviz\" type=\"rviz\"/>  <!--  args=\"-d $(find agvs_description)/launch/agvs.rviz\"/ -->\n\n</launch>\n\n"
  },
  {
    "path": "agvs_description/meshes/agvs_top.dae",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<COLLADA xmlns=\"http://www.collada.org/2005/11/COLLADASchema\" version=\"1.4.1\">\n    <asset>\n        <contributor>\n            <author>VCGLab</author>\n            <authoring_tool>VCGLib | MeshLab</authoring_tool>\n        </contributor>\n        <up_axis>Y_UP</up_axis>\n        <created>Wed Feb 26 13:35:02 2014</created>\n        <modified>Wed Feb 26 13:35:02 2014</modified>\n    </asset>\n    <library_images/>\n    <library_materials/>\n    <library_effects/>\n    <library_geometries>\n        <geometry id=\"shape0-lib\" name=\"shape0\">\n            <mesh>\n                <source id=\"shape0-lib-positions\" name=\"position\">\n                    <float_array id=\"shape0-lib-positions-array\" count=\"672\">-0.55 -0.304 0.1945 -0.616979 -0.293453 0.1945 -0.681901 -0.273895 0.1945 -0.73767 -0.235331 0.1945 -0.739541 -0.237677 0.1945 -0.821192 -0.130599 0.1945 -0.843453 -0.0669788 0.1945 -0.851 2.23517e-10 0.1945 -0.854 2.23517e-10 0.1945 -0.843453 0.0669788 0.1945 -0.821192 0.130599 0.1945 -0.785331 0.18767 0.1945 -0.787677 0.189541 0.1945 -0.739541 0.237677 0.1945 -0.616979 0.293453 0.1945 -0.538 0.298 0.1945 0.538 0.298 0.1945 0.55 0.301 0.1945 0.616979 0.293453 0.1945 0.617646 0.296378 0.1945 0.681901 0.273895 0.1945 0.785331 0.18767 0.1945 0.846378 0.0676464 0.1945 0.851 2.23517e-10 0.1945 0.823895 -0.131901 0.1945 0.739541 -0.237677 0.1945 0.617646 -0.296378 0.1945 0.55 -0.304 0.1945 0.535 -0.304 0.1945 -0.538 -0.301 0.1945 -0.535 -0.304 0.1945 -0.55 -0.301 0.1945 -0.55 -0.304 0.3445 -0.535 -0.304 0.3445 -0.535 0.304 0.1945 0.617324 -0.294595 0.332629 0.738285 -0.236034 0.3113 0.681901 -0.273895 0.1945 0.704746 -0.261667 0.317214 0.681107 -0.272097 0.321382 0.63897 -0.290689 0.328812 0.787677 -0.189541 0.1945 0.807139 -0.162159 0.29916 0.786027 -0.188204 0.302882 0.846378 -0.0676464 0.1945 0.852809 -0.0268814 0.291107 0.854 2.23517e-10 0.1945 0.850654 0.0449803 0.291487 0.844587 0.0671565 0.292556 0.831683 0.114326 0.294832 0.823895 0.131901 0.1945 0.796958 0.177278 0.300955 0.787677 0.189541 0.1945 0.739541 0.237677 0.1945 0.688787 0.27047 0.320028 0.681617 0.273133 0.321292 0.62139 0.295499 0.331912 0.55 0.304 0.1945 0.55 0.304 0.3445 -0.821972 0.130986 0.296544 -0.617646 0.296378 0.1945 -0.617324 0.294595 0.332629 -0.568219 0.303454 0.341288 -0.55 0.304 0.1945 -0.681901 0.273895 0.1945 -0.681107 0.272097 0.321382 -0.63897 0.290689 0.328812 -0.807139 0.162159 0.29916 -0.761867 0.21801 0.307142 -0.838029 0.0972397 0.293713 -0.823895 0.131901 0.1945 -0.846378 0.0676464 0.1945 -0.852809 0.0268814 0.291107 -0.850654 -0.0449803 0.291487 -0.846378 -0.0676464 0.1945 -0.823895 -0.131901 0.1945 -0.796958 -0.177278 0.300955 -0.787677 -0.189541 0.1945 -0.78662 -0.188575 0.302777 -0.748421 -0.230315 0.309513 -0.7389 -0.236726 0.311192 -0.688787 -0.27047 0.320028 -0.681617 -0.273133 0.321292 -0.617646 -0.296378 0.1945 0.535 -0.304 0.3445 0.535 0.304 0.1945 -0.617595 -0.295951 0.332581 -0.55 0.304 0.3445 -0.62139 -0.295499 0.331912 -0.704746 0.261667 0.317214 -0.738285 0.236034 0.3113 -0.822434 -0.131095 0.296463 -0.786027 0.188204 0.302882 -0.831683 -0.114326 0.294832 -0.844587 -0.0671565 0.292556 -0.844336 0.0672173 0.292601 -0.852005 5.98405e-05 0.291248 0.844336 -0.0672173 0.292601 0.748421 0.230315 0.309513 0.761867 -0.21801 0.307142 0.617595 0.295951 0.332581 0.7389 0.236726 0.311192 0.821972 -0.130986 0.296544 0.838028 -0.0972397 0.293713 0.55 -0.304 0.3445 0.852005 -5.9841e-05 0.291248 0.822434 0.131095 0.296463 0.78662 0.188575 0.302777 0.568219 -0.303454 0.341288 -0.535 0.304 0.3445 -0.535 -0.301 0.3415 -0.5305 0.24 0.3415 -0.535 0.301 0.3415 0.535 0.301 0.3415 -0.535 0.301 0.1945 -0.535 -0.301 0.1945 0.535 -0.301 0.1945 0.535 -0.301 0.3415 0.535 0.301 0.1945 0.535 0.304 0.3445 -0.5305 -0.24 0.3415 0.5305 -0.24 0.3445 0.5305 0.24 0.3415 0.5305 -0.24 0.3415 0.5305 0.24 0.3445 -0.5305 -0.24 0.3445 -0.5305 0.24 0.3445 -0.549738 -0.301 0.3415 -0.538 0.301 0.1945 0.549738 0.301 0.3415 0.849591 -0.0290913 0.288628 0.688048 0.267476 0.317112 0.680599 0.271192 0.1945 0.62103 0.292499 0.328929 0.616923 0.292991 0.329653 0.795347 0.174373 0.298192 0.784205 0.186649 0.300157 0.73767 0.235331 0.1945 0.747269 0.227345 0.30667 0.736982 0.234316 0.308484 0.848943 -4.59158e-05 0.288742 0.843453 0.0669788 0.1945 0.821192 0.130599 0.1945 0.843453 -0.0669788 0.1945 0.834265 -0.0989674 0.29133 0.819279 -0.129665 0.293973 0.802882 -0.163253 0.296864 0.821192 -0.130599 0.1945 0.785331 -0.18767 0.1945 0.736494 -0.233753 0.30857 0.73767 -0.235331 0.1945 0.680599 -0.271192 0.1945 0.699844 -0.261051 0.315032 0.616979 -0.293453 0.1945 0.563429 -0.3007 0.339086 -0.616923 -0.292991 0.329653 -0.680599 -0.271192 0.1945 -0.785331 -0.18767 0.1945 -0.784205 -0.186649 0.300157 -0.747269 -0.227345 0.30667 -0.848943 4.59154e-05 0.288742 -0.847995 -0.0424281 0.288909 -0.841582 -0.0664801 0.29004 -0.829566 -0.111551 0.292159 -0.841381 0.0665242 0.290075 -0.834265 0.0989674 0.29133 -0.819279 0.129665 0.293973 -0.802882 0.163253 0.296864 -0.73767 0.235331 0.1945 -0.680599 0.271192 0.1945 -0.679893 0.269533 0.31855 -0.634009 0.289039 0.326641 -0.61672 0.291895 0.329689 -0.563429 0.3007 0.339086 -0.55 0.301 0.1945 0.55 -0.301 0.1945 0.549738 -0.301 0.3415 0.538 -0.301 0.1945 0.538 0.301 0.1945 -0.549738 0.301 0.3415 -0.55 0.301 0.341454 -0.736494 0.233753 0.30857 -0.699844 0.261051 0.315032 -0.795347 -0.174373 0.298192 -0.819649 -0.129759 0.293907 -0.55 -0.301 0.341454 -0.62103 -0.292499 0.328929 -0.680292 -0.270372 0.31848 -0.688048 -0.267476 0.317112 -0.736982 -0.234316 0.308484 -0.849591 0.0290913 0.288628 -0.757215 0.218318 0.304916 -0.783732 0.186344 0.30024 0.55 0.301 0.341454 0.55 -0.301 0.341454 0.841381 -0.0665242 0.290075 0.783732 -0.186344 0.30024 0.829566 0.111551 0.292159 0.757215 -0.218318 0.304916 0.61672 -0.291895 0.329689 0.634009 -0.289039 0.326641 0.680292 0.270372 0.31848 0.679893 -0.269533 0.31855 0.847995 0.0424281 0.288909 0.841582 0.0664801 0.29004 0.819649 0.129759 0.293907 -0.538 -0.301 0.3415 -0.538 0.298 0.3385 -0.538 0.301 0.3415 -0.5275 -0.237 0.3385 0.5275 -0.237 0.3385 -0.5275 0.237 0.3385 -0.538 -0.298 0.3385 0.5275 0.237 0.3385 0.538 0.298 0.3385 -0.538 -0.298 0.1945 0.538 0.301 0.3415 0.538 -0.298 0.3385 0.538 -0.301 0.3415 0.538 -0.298 0.1945 0.5275 0.237 0.3415 -0.5275 0.237 0.3415 0.5275 -0.237 0.3415 -0.5275 -0.237 0.3415</float_array>\n                    <technique_common>\n                        <accessor count=\"224\" source=\"#shape0-lib-positions-array\" stride=\"3\">\n                            <param name=\"X\" type=\"float\"/>\n                            <param name=\"Y\" type=\"float\"/>\n                            <param name=\"Z\" type=\"float\"/>\n                        </accessor>\n                    </technique_common>\n                </source>\n                <source id=\"shape0-lib-normals\" name=\"normal\">\n                    <float_array id=\"shape0-lib-normals-array\" count=\"1332\">0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 -1 0 0 -1 0 0 1 0 0 1 0 0 0 1 0 0 1 0.903473 -0.428136 0.0208632 0.111955 -0.993627 0.0130914 0.174442 -0.984503 -0.017986 0.0299794 -0.999551 0 0.53195 -0.846593 0.01763 0.603245 -0.796877 -0.0329028 0.405918 -0.913778 0.015482 0.33024 -0.943771 0.0154335 0.399912 -0.916221 -0.0246854 0.179768 -0.983622 0.0131205 0.846543 -0.531918 0.020721 0.899899 -0.432727 -0.0541287 0.77806 -0.627885 0.0195856 0.706973 -0.706973 0.0194793 0.773133 -0.632802 -0.0427542 0.609117 -0.792883 0.0177043 0.97597 -0.207495 -0.0665477 0.943673 -0.330206 0.0210924 0.978575 -0.204787 0.0212705 0.993535 -0.111944 -0.0189022 0.999341 0.0298628 0.0206281 0.999341 0.0298626 0.0206281 0.993558 0.111947 -0.0176402 0.964618 0.262972 0.0189307 0.964618 0.262972 0.0189307 0.943771 0.33024 -0.0154196 0.876175 0.481715 0.0163605 0.876175 0.481716 0.0163605 0.846658 0.53199 -0.0125381 0.738703 0.673901 0.0132213 0.738706 0.673899 0.0132213 0.707076 0.707076 -0.00933625 0.559699 0.828638 0.00982396 0.559701 0.828636 0.00982396 0.532022 0.846709 -0.0060887 0.349115 0.937058 0.0064093 0.349113 0.937059 0.0064093 0.330278 0.943879 -0.00295721 0.118786 0.992915 0.00311789 0.111964 0.993707 0.00311781 0.118247 0.992984 0 -0.903473 0.428137 0.0208637 -0.111955 0.993627 0.0130914 -0.174443 0.984503 -0.0179863 -0.0299777 0.999551 0 -0.531949 0.846593 0.0176303 -0.603246 0.796876 -0.0329031 -0.405917 0.913779 0.015482 -0.33024 0.943771 0.0154335 -0.399912 0.916221 -0.0246855 -0.179767 0.983622 0.0131205 -0.846543 0.531918 0.0207214 -0.899899 0.432727 -0.0541281 -0.77806 0.627884 0.019586 -0.706973 0.706973 0.0194797 -0.773133 0.632801 -0.0427546 -0.609116 0.792884 0.0177047 -0.97597 0.207493 -0.0665484 -0.943673 0.330205 0.0210924 -0.978575 0.204788 0.0212705 -0.993535 0.111945 -0.0189024 -0.999341 -0.0298628 0.0206281 -0.999341 -0.0298626 0.0206281 -0.993558 -0.111947 -0.0176406 -0.964618 -0.262972 0.0189301 -0.964618 -0.262972 0.0189301 -0.943771 -0.33024 -0.0154198 -0.876174 -0.481718 0.0163611 -0.876175 -0.481716 0.0163611 -0.846658 -0.53199 -0.0125376 -0.738705 -0.673899 0.0132213 -0.738705 -0.673899 0.0132213 -0.707076 -0.707076 -0.00933581 -0.559702 -0.828636 0.00982396 -0.559701 -0.828637 0.00982396 -0.532022 -0.846708 -0.00608847 -0.349114 -0.937058 0.00640952 -0.349113 -0.937059 0.00640952 -0.330278 -0.943879 -0.002957 -0.118792 -0.992914 0.00311794 -0.111964 -0.993707 0.00311786 -0.118247 -0.992984 0 0 -1 0 0 -1 0 0 1 0 0 1 0 -0.173648 0 0.984808 -0.173648 -1.05245e-08 0.984808 -0.173653 4.11796e-07 0.984807 -0.173648 -1.60934e-09 0.984808 -0.173648 -2.61433e-09 0.984808 -0.173648 -6.42836e-08 0.984808 -0.173647 -1.1121e-07 0.984808 -0.173648 -1.26156e-09 0.984808 -0.173648 -4.43774e-09 0.984808 -0.173647 -8.02751e-08 0.984808 -0.173649 5.34058e-08 0.984808 -0.173649 2.09641e-08 0.984808 -0.173648 -9.82254e-09 0.984808 -0.173648 3.13512e-08 0.984808 -0.173649 8.71118e-08 0.984808 -0.173648 -2.19067e-08 0.984808 -0.173648 -6.57007e-09 0.984808 -0.173648 -3.71096e-08 0.984808 -0.173648 -1.44804e-08 0.984808 -0.17365 1.68613e-07 0.984807 -0.173648 6.13003e-08 0.984808 -0.173647 2.96292e-08 0.984808 -0.17365 1.41079e-07 0.984807 -0.17365 1.27969e-07 0.984807 -0.173646 -7.62417e-08 0.984808 -0.173644 -3.36668e-07 0.984808 0.173648 0 0.984808 0.173648 -1.09287e-07 0.984808 0.173648 -3.15486e-08 0.984808 0.17365 -2.35782e-06 0.984807 0.173659 3.00759e-05 0.984806 0.173649 -7.17395e-08 0.984808 0.173646 5.81131e-07 0.984808 0.173648 -2.05509e-08 0.984808 0.173648 -2.63192e-07 0.984808 0.173647 1.24109e-06 0.984808 0.173648 -2.86622e-07 0.984808 0.173648 -3.1666e-07 0.984808 0.173648 4.39641e-07 0.984808 0.173648 1.30904e-07 0.984808 0.173649 -5.12253e-07 0.984808 0.173648 4.9086e-08 0.984808 0.173649 -3.2021e-07 0.984808 0.173648 0 0.984808 0.173648 1.18112e-07 0.984808 0.173648 9.58969e-08 0.984808 0.173646 5.12032e-06 0.984808 0.173649 -7.23538e-07 0.984808 0.173649 -7.37716e-07 0.984808 0.173648 -6.51907e-07 0.984808 0.173648 2.26147e-07 0.984808 0.173646 3.80469e-06 0.984808 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 -1 0 0 -1 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 -1 0 0 -1 0 1 0 0 1 0 0 0 1 0 0 1 0 -1 0 0 -1 0 0 0 0 1 0 0 1 0 0 -1 0 0 -1 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 0 -1 0 0 -1 -0.999515 -0.0222201 -0.021831 -0.111964 -0.993712 0 -0.119431 -0.992837 -0.0034482 -0.532001 -0.846675 -0.0107514 -0.559881 -0.828525 0.00891155 -0.350867 -0.936399 -0.00705611 -0.330271 -0.94386 -0.00705447 -0.349183 -0.937046 0.0038721 -0.119436 -0.992836 -0.00344821 -0.846592 -0.531949 -0.0176383 -0.877 -0.479932 0.0231623 -0.741559 -0.670734 -0.0143883 -0.707034 -0.707034 -0.0143713 -0.739181 -0.673332 0.0153158 -0.562247 -0.826899 -0.010758 -0.993477 -0.111938 -0.0217429 -0.998856 -0.022459 0.042208 -0.966289 -0.256661 -0.0202618 -0.943691 -0.330212 -0.0202032 -0.965368 -0.258887 0.0322908 -0.878746 -0.476963 -0.0176726 -0.97503 0.215871 0.0521204 -0.99347 0.111938 -0.0220773 -0.97672 0.213367 -0.0221965 -0.943703 0.330216 0.0195385 -0.899156 0.437104 -0.0213931 -0.899157 0.437102 -0.021393 -0.846583 0.531943 0.0182656 -0.770996 0.636537 -0.0196429 -0.770996 0.636537 -0.0196429 -0.707014 0.707014 0.0162111 -0.599222 0.800397 -0.0172579 -0.599221 0.800398 -0.0172579 -0.531982 0.846645 0.013712 -0.393361 0.919269 -0.0145313 -0.39336 0.91927 -0.0145313 -0.330259 0.943826 0.0110334 -0.165006 0.986223 -0.0116807 -0.165005 0.986224 -0.0116807 -0.111961 0.993678 0.00833889 -0.0223118 0.999751 0 0.999515 0.0222201 -0.0218303 0.111964 0.993712 0 0.119431 0.992837 -0.00344821 0.532002 0.846675 -0.0107511 0.559881 0.828525 0.00891149 0.35087 0.936398 -0.00705589 0.330271 0.94386 -0.00705425 0.349183 0.937046 0.0038723 0.119429 0.992837 -0.00344821 0.846592 0.531949 -0.0176383 0.877 0.479932 0.0231624 0.741557 0.670736 -0.0143886 0.707033 0.707034 -0.0143716 0.739181 0.673332 0.0153158 0.562249 0.826898 -0.0107577 0.993477 0.111937 -0.0217422 0.998856 0.022459 0.042208 0.966289 0.256663 -0.0202624 0.943691 0.330212 -0.0202038 0.965368 0.258887 0.0322903 0.878747 0.476961 -0.0176726 0.97503 -0.215871 0.052121 0.99347 -0.111937 -0.0220773 0.976719 -0.213369 -0.0221965 0.943703 -0.330216 0.0195379 0.899157 -0.437103 -0.021393 0.899157 -0.437104 -0.021393 0.846583 -0.531943 0.018265 0.770996 -0.636537 -0.0196435 0.770997 -0.636536 -0.0196435 0.707014 -0.707014 0.0162113 0.599221 -0.800398 -0.0172579 0.599221 -0.800398 -0.0172579 0.531982 -0.846645 0.0137118 0.39336 -0.91927 -0.0145317 0.39336 -0.91927 -0.0145317 0.330259 -0.943826 0.0110332 0.165005 -0.986224 -0.011681 0.165005 -0.986224 -0.011681 0.11196 -0.993678 0.00833868 0.022314 -0.999751 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0.173677 0 -0.984803 0.173648 4.55282e-08 -0.984808 0.173649 -8.5481e-06 -0.984808 0.173648 -1.28438e-08 -0.984808 0.173649 3.84292e-08 -0.984808 0.173648 -4.59111e-08 -0.984808 0.173677 1.032e-05 -0.984803 0.173648 -1.48549e-07 -0.984808 0.173649 5.50891e-08 -0.984808 0.173648 -1.08779e-08 -0.984808 0.173648 1.37096e-08 -0.984808 0.173649 -2.2395e-07 -0.984808 0.173648 1.28812e-07 -0.984808 0.173648 -5.14945e-08 -0.984808 0.173647 4.12919e-07 -0.984808 0.173648 -2.67448e-08 -0.984808 0.173653 9.80474e-07 -0.984807 0.173648 4.00416e-08 -0.984808 0.173646 -1.64446e-07 -0.984808 0.173648 2.91715e-08 -0.984808 0.173649 2.894e-08 -0.984808 0.173648 1.08762e-07 -0.984808 0.173649 -4.49026e-07 -0.984808 0.173648 2.63899e-07 -0.984808 0.173645 1.15076e-06 -0.984808 0.173649 -4.08226e-07 -0.984808 0.173649 -4.04598e-07 -0.984808 0.173649 -4.87456e-07 -0.984808 -0.173648 4.26834e-09 -0.984808 -0.173639 0 -0.984809 -0.173652 4.85372e-07 -0.984807 -0.173648 -2.80772e-08 -0.984808 -0.173639 -2.29019e-06 -0.984809 -0.173648 1.66183e-07 -0.984808 -0.173648 -1.08112e-07 -0.984808 -0.173648 -2.97436e-08 -0.984808 -0.173649 -4.75594e-07 -0.984808 -0.173647 3.79865e-07 -0.984808 -0.173649 -1.42955e-07 -0.984808 -0.17365 -5.80832e-07 -0.984808 -0.173648 -8.36019e-08 -0.984808 -0.173648 2.86469e-08 -0.984808 -0.173649 -3.03909e-08 -0.984808 -0.173649 8.54796e-06 -0.984808 -0.173648 -3.10393e-08 -0.984808 -0.173649 2.10323e-08 -0.984808 -0.173648 -3.12481e-08 -0.984808 -0.173647 9.19383e-07 -0.984808 -0.173649 -4.64767e-07 -0.984808 -0.173648 -9.7092e-08 -0.984808 -0.173647 6.22445e-07 -0.984808 -0.173644 3.35656e-06 -0.984809 -0.173649 -5.31636e-07 -0.984808 -0.173648 -9.75661e-08 -0.984808 -0.173647 1.32235e-06 -0.984808 -0.173651 -1.5142e-06 -0.984807 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 -1 0 0 -1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 -1 0 0 -1 0 0 0 -1 0 0 -1 0 1 0 0 1 0 0 0 0 -1 0 0 -1</float_array>\n                    <technique_common>\n                        <accessor count=\"444\" source=\"#shape0-lib-normals-array\" stride=\"3\">\n                            <param name=\"X\" type=\"float\"/>\n                            <param name=\"Y\" type=\"float\"/>\n                            <param name=\"Z\" type=\"float\"/>\n                        </accessor>\n                    </technique_common>\n                </source>\n                <vertices id=\"shape0-lib-vertices\">\n                    <input semantic=\"POSITION\" source=\"#shape0-lib-positions\"/>\n                </vertices>\n                <triangles count=\"444\">\n                    <input offset=\"0\" semantic=\"VERTEX\" source=\"#shape0-lib-vertices\"/>\n                    <input offset=\"1\" semantic=\"NORMAL\" source=\"#shape0-lib-normals\"/>\n                    <p>31 0 0 0 1 0 1 1 0 1 83 1 1 2 83 2 156 2 156 3 83 3 2 3 156 4 2 4 3 4 3 5 2 5 4 5 3 6 4 6 157 6 157 7 4 7 77 7 157 8 77 8 5 8 5 9 77 9 75 9 5 10 75 10 6 10 6 11 75 11 74 11 6 12 74 12 7 12 7 13 74 13 8 13 7 14 8 14 9 14 9 15 8 15 71 15 9 16 71 16 10 16 10 17 71 17 70 17 10 18 70 18 11 18 11 19 70 19 12 19 11 20 12 20 168 20 168 21 12 21 13 21 168 22 13 22 169 22 169 23 13 23 64 23 169 24 64 24 14 24 14 25 64 25 60 25 14 26 60 26 174 26 174 27 60 27 63 27 174 28 63 28 128 28 128 29 63 29 34 29 128 30 34 30 15 30 15 31 34 31 114 31 15 32 114 32 16 32 16 33 114 33 118 33 16 34 118 34 178 34 178 35 118 35 85 35 178 36 85 36 17 36 17 37 85 37 57 37 17 38 57 38 18 38 18 39 57 39 19 39 18 40 19 40 132 40 132 41 19 41 20 41 132 42 20 42 137 42 137 43 20 43 53 43 137 44 53 44 21 44 21 45 53 45 52 45 21 46 52 46 142 46 142 47 52 47 50 47 142 48 50 48 141 48 141 49 50 49 22 49 141 50 22 50 23 50 23 51 22 51 46 51 23 52 46 52 143 52 143 53 46 53 44 53 143 54 44 54 147 54 147 55 44 55 24 55 147 56 24 56 148 56 148 57 24 57 41 57 148 58 41 58 150 58 150 59 41 59 25 59 150 60 25 60 151 60 151 61 25 61 37 61 151 62 37 62 153 62 153 63 37 63 26 63 153 64 26 64 175 64 175 65 26 65 27 65 175 66 27 66 177 66 177 67 27 67 28 67 177 68 28 68 219 68 219 69 28 69 116 69 219 70 116 70 215 70 215 71 116 71 115 71 215 72 115 72 29 72 29 73 115 73 30 73 29 74 30 74 31 74 31 75 30 75 0 75 87 76 32 76 109 76 109 77 32 77 33 77 33 78 32 78 30 78 30 79 32 79 0 79 34 80 63 80 109 80 109 81 63 81 87 81 84 82 104 82 119 82 119 83 104 83 58 83 103 84 102 84 24 84 26 85 35 85 27 85 27 86 35 86 108 86 27 87 108 87 104 87 37 88 25 88 36 88 36 89 38 89 37 89 37 90 38 90 39 90 37 91 39 91 26 91 26 92 39 92 40 92 26 93 40 93 35 93 24 94 102 94 41 94 102 95 42 95 41 95 41 96 42 96 43 96 41 97 43 97 25 97 25 98 43 98 99 98 25 99 99 99 36 99 103 100 24 100 97 100 97 101 24 101 44 101 97 102 44 102 45 102 45 103 44 103 46 103 45 104 46 104 105 104 105 105 46 105 47 105 47 106 46 106 22 106 47 107 22 107 48 107 48 108 22 108 49 108 49 109 22 109 50 109 49 110 50 110 106 110 106 111 50 111 51 111 51 112 50 112 52 112 51 113 52 113 107 113 107 114 52 114 98 114 98 115 52 115 53 115 98 116 53 116 101 116 101 117 53 117 54 117 54 118 53 118 20 118 54 119 20 119 55 119 55 120 20 120 56 120 56 121 20 121 19 121 56 122 19 122 100 122 100 123 19 123 57 123 100 124 57 124 58 124 69 125 59 125 70 125 60 126 61 126 63 126 63 127 61 127 62 127 63 128 62 128 87 128 64 129 13 129 90 129 90 130 89 130 64 130 64 131 89 131 65 131 64 132 65 132 60 132 60 133 65 133 66 133 60 134 66 134 61 134 70 135 59 135 12 135 59 136 67 136 12 136 12 137 67 137 92 137 12 138 92 138 13 138 13 139 92 139 68 139 13 140 68 140 90 140 69 141 70 141 95 141 95 142 70 142 71 142 95 143 71 143 72 143 72 144 71 144 8 144 72 145 8 145 96 145 96 146 8 146 73 146 73 147 8 147 74 147 73 148 74 148 94 148 94 149 74 149 93 149 93 150 74 150 75 150 93 151 75 151 91 151 91 152 75 152 76 152 76 153 75 153 77 153 76 154 77 154 78 154 78 155 77 155 79 155 79 156 77 156 4 156 79 157 4 157 80 157 80 158 4 158 81 158 81 159 4 159 2 159 81 160 2 160 82 160 82 161 2 161 88 161 88 162 2 162 83 162 88 163 83 163 86 163 86 164 83 164 0 164 86 165 0 165 32 165 27 166 104 166 28 166 28 167 104 167 84 167 58 168 57 168 119 168 119 169 57 169 85 169 32 170 87 170 86 170 86 171 87 171 62 171 86 172 62 172 88 172 88 173 62 173 61 173 88 174 61 174 82 174 82 175 61 175 66 175 82 176 66 176 81 176 81 177 66 177 65 177 81 178 65 178 80 178 80 179 65 179 89 179 80 180 89 180 79 180 79 181 89 181 90 181 79 182 90 182 78 182 78 183 90 183 68 183 78 184 68 184 76 184 76 185 68 185 92 185 76 186 92 186 91 186 91 187 92 187 67 187 91 188 67 188 93 188 93 189 67 189 59 189 93 190 59 190 94 190 94 191 59 191 69 191 94 192 69 192 73 192 73 193 69 193 95 193 73 194 95 194 96 194 96 195 95 195 72 195 100 196 58 196 104 196 103 197 97 197 104 197 98 198 101 198 104 198 36 199 99 199 43 199 56 200 100 200 55 200 55 201 100 201 104 201 55 202 104 202 54 202 54 203 104 203 101 203 43 204 42 204 104 204 104 205 42 205 102 205 104 206 102 206 103 206 97 207 45 207 104 207 104 208 45 208 105 208 104 209 105 209 47 209 47 210 48 210 104 210 104 211 48 211 49 211 104 212 49 212 106 212 106 213 51 213 104 213 104 214 51 214 107 214 104 215 107 215 98 215 35 216 40 216 39 216 104 217 108 217 43 217 43 218 108 218 35 218 43 219 35 219 36 219 36 220 35 220 39 220 36 221 39 221 38 221 114 222 34 222 112 222 112 223 34 223 109 223 112 224 109 224 110 224 110 225 109 225 33 225 110 226 33 226 115 226 115 227 33 227 30 227 110 228 120 228 111 228 120 229 110 229 123 229 123 230 110 230 117 230 123 231 117 231 122 231 122 232 117 232 113 232 122 233 113 233 111 233 111 234 113 234 112 234 111 235 112 235 110 235 112 236 113 236 114 236 114 237 113 237 118 237 115 238 116 238 110 238 110 239 116 239 117 239 116 240 28 240 117 240 117 241 28 241 84 241 117 242 84 242 113 242 113 243 84 243 119 243 113 244 119 244 118 244 118 245 119 245 85 245 123 246 121 246 120 246 120 247 121 247 125 247 122 248 124 248 123 248 123 249 124 249 121 249 111 250 126 250 122 250 122 251 126 251 124 251 120 252 125 252 111 252 111 253 125 253 126 253 121 254 124 254 125 254 125 255 124 255 126 255 127 256 179 256 206 256 206 257 179 257 208 257 206 258 29 258 127 258 127 259 29 259 31 259 127 260 31 260 185 260 180 261 174 261 179 261 179 262 174 262 128 262 179 263 128 263 208 263 176 264 218 264 129 264 129 265 218 265 216 265 130 266 140 266 23 266 17 267 18 267 193 267 193 268 18 268 134 268 132 269 137 269 139 269 139 270 131 270 132 270 132 271 131 271 201 271 132 272 201 272 18 272 18 273 201 273 133 273 18 274 133 274 134 274 21 275 142 275 205 275 205 276 135 276 21 276 21 277 135 277 136 277 21 278 136 278 137 278 137 279 136 279 138 279 137 280 138 280 139 280 23 281 140 281 141 281 140 282 203 282 141 282 141 283 203 283 204 283 141 284 204 284 142 284 142 285 204 285 197 285 142 286 197 286 205 286 130 287 23 287 195 287 195 288 23 288 143 288 195 289 143 289 144 289 144 290 143 290 147 290 144 291 147 291 145 291 145 292 147 292 146 292 146 293 147 293 148 293 146 294 148 294 196 294 196 295 148 295 198 295 198 296 148 296 150 296 198 297 150 297 149 297 149 298 150 298 152 298 152 299 150 299 151 299 152 300 151 300 202 300 202 301 151 301 200 301 200 302 151 302 153 302 200 303 153 303 199 303 199 304 153 304 154 304 154 305 153 305 175 305 154 306 175 306 194 306 190 307 160 307 7 307 31 308 1 308 185 308 185 309 1 309 155 309 156 310 3 310 189 310 189 311 188 311 156 311 156 312 188 312 187 312 156 313 187 313 1 313 1 314 187 314 186 314 1 315 186 315 155 315 157 316 5 316 184 316 184 317 183 317 157 317 157 318 183 318 158 318 157 319 158 319 3 319 3 320 158 320 159 320 3 321 159 321 189 321 7 322 160 322 6 322 160 323 161 323 6 323 6 324 161 324 162 324 6 325 162 325 5 325 5 326 162 326 163 326 5 327 163 327 184 327 190 328 7 328 164 328 164 329 7 329 9 329 164 330 9 330 165 330 165 331 9 331 10 331 165 332 10 332 166 332 166 333 10 333 167 333 167 334 10 334 11 334 167 335 11 335 192 335 192 336 11 336 191 336 191 337 11 337 168 337 191 338 168 338 181 338 181 339 168 339 182 339 182 340 168 340 169 340 182 341 169 341 170 341 170 342 169 342 171 342 171 343 169 343 14 343 171 344 14 344 172 344 172 345 14 345 173 345 173 346 14 346 174 346 173 347 174 347 180 347 194 348 175 348 176 348 176 349 175 349 177 349 176 350 177 350 218 350 216 351 178 351 129 351 129 352 178 352 17 352 129 353 17 353 193 353 180 354 179 354 127 354 159 355 158 355 181 355 173 356 180 356 172 356 172 357 180 357 127 357 172 358 127 358 171 358 171 359 127 359 170 359 185 360 181 360 127 360 127 361 181 361 182 361 127 362 182 362 170 362 158 363 183 363 181 363 181 364 183 364 184 364 181 365 184 365 163 365 163 366 162 366 181 366 181 367 162 367 161 367 181 368 161 368 160 368 185 369 155 369 181 369 181 370 155 370 186 370 181 371 186 371 187 371 187 372 188 372 181 372 181 373 188 373 189 373 181 374 189 374 159 374 160 375 190 375 181 375 181 376 190 376 164 376 181 377 164 377 191 377 164 378 165 378 166 378 191 379 164 379 192 379 192 380 164 380 166 380 192 381 166 381 167 381 134 382 176 382 193 382 193 383 176 383 129 383 134 384 133 384 176 384 176 385 133 385 201 385 176 386 201 386 194 386 130 387 195 387 201 387 146 388 196 388 201 388 201 389 196 389 198 389 195 390 144 390 201 390 201 391 144 391 145 391 201 392 145 392 146 392 205 393 197 393 204 393 198 394 149 394 201 394 201 395 149 395 152 395 201 396 152 396 202 396 154 397 194 397 199 397 199 398 194 398 201 398 199 399 201 399 200 399 200 400 201 400 202 400 204 401 203 401 201 401 201 402 203 402 140 402 201 403 140 403 130 403 139 404 138 404 136 404 201 405 131 405 204 405 204 406 131 406 139 406 204 407 139 407 205 407 205 408 139 408 136 408 205 409 136 409 135 409 215 410 29 410 212 410 212 411 29 411 206 411 212 412 206 412 207 412 207 413 206 413 208 413 207 414 208 414 15 414 15 415 208 415 128 415 209 416 210 416 212 416 209 417 212 417 211 417 211 418 212 418 207 418 211 419 207 419 213 419 213 420 207 420 214 420 213 421 214 421 210 421 210 422 214 422 217 422 210 423 217 423 212 423 214 424 207 424 16 424 16 425 207 425 15 425 219 426 215 426 217 426 217 427 215 427 212 427 16 428 178 428 214 428 214 429 178 429 216 429 214 430 216 430 217 430 217 431 216 431 218 431 217 432 218 432 219 432 219 433 218 433 177 433 222 434 210 434 223 434 223 435 210 435 209 435 220 436 213 436 222 436 222 437 213 437 210 437 221 438 211 438 220 438 220 439 211 439 213 439 223 440 209 440 221 440 221 441 209 441 211 441 220 442 222 442 221 442 221 443 222 443 223 443</p>\n                </triangles>\n            </mesh>\n        </geometry>\n    </library_geometries>\n    <library_visual_scenes>\n        <visual_scene id=\"VisualSceneNode\" name=\"VisualScene\">\n            <node id=\"node\" name=\"node\">\n                <instance_geometry url=\"#shape0-lib\">\n                    <bind_material>\n                        <technique_common/>\n                    </bind_material>\n                </instance_geometry>\n            </node>\n        </visual_scene>\n    </library_visual_scenes>\n    <scene>\n        <instance_visual_scene url=\"#VisualSceneNode\"/>\n    </scene>\n</COLLADA>\n"
  },
  {
    "path": "agvs_description/meshes/agvs_wheel.dae",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<COLLADA xmlns=\"http://www.collada.org/2005/11/COLLADASchema\" version=\"1.4.1\">\n    <asset>\n        <contributor>\n            <author>VCGLab</author>\n            <authoring_tool>VCGLib | MeshLab</authoring_tool>\n        </contributor>\n        <up_axis>Y_UP</up_axis>\n        <created>Wed Feb 26 13:35:29 2014</created>\n        <modified>Wed Feb 26 13:35:29 2014</modified>\n    </asset>\n    <library_images/>\n    <library_materials/>\n    <library_effects/>\n    <library_geometries>\n        <geometry id=\"shape0-lib\" name=\"shape0\">\n            <mesh>\n                <source id=\"shape0-lib-positions\" name=\"position\">\n                    <float_array id=\"shape0-lib-positions-array\" count=\"2367\">-0.065 0.035 0 -0.1 0.035 1.38778e-17 -0.0525861 0.035 -0.038206 -0.0593805 0.035 -0.0264379 -0.0939693 0.035 -0.034202 -0.0434935 0.035 -0.0483044 -0.0597159 0.035 -0.0802123 -0.0325 0.035 -0.0562917 -0.05 0.035 -0.0866025 0.0525861 0.035 0.038206 -0.0200861 0.035 0.0618187 -0.0173648 0.035 0.0984808 0.0173648 0.035 -0.0984808 0.00679435 0.035 -0.0646439 -0.0286803 0.035 -0.095799 0.039608 0.035 -0.0918216 0.0286803 0.035 -0.095799 -0.0993238 0.035 0.0116093 -0.0635796 0.035 0.0135143 -0.0593805 0.035 0.0264379 0.0325 0.035 0.0562917 0.039608 0.035 0.0918216 0.0597159 0.035 0.0802123 -0.00581448 0.035 0.0998308 0.00679435 0.035 0.0646439 0.0200861 0.035 0.0618187 -0.0597159 0.035 0.0802123 -0.0686242 0.035 0.0727374 0.0434935 0.035 -0.0483044 0.0597159 0.035 -0.0802123 0.0325 0.035 -0.0562917 0.0593805 0.035 0.0264379 0.0939693 0.035 0.034202 0.0939693 0.035 -0.034202 0.0893633 0.035 -0.0448799 0.0835488 0.035 -0.0549509 0.0525861 0.035 -0.038206 0.0766044 0.035 -0.0642788 0.0993238 0.035 0.0116093 0.065 0.035 1.38778e-17 0.0993238 0.035 -0.0116093 0.11 -0.025 0 0.109256 0.025 -0.0127702 0.107035 0.025 -0.0253677 0.107035 -0.025 -0.0253677 0.103945 -0.025 -0.0356886 0.0982996 0.025 -0.0493679 0.0982996 -0.025 -0.0493679 0.0966171 0.025 -0.052282 0.0866764 0.025 -0.0674674 0.0754866 0.025 -0.0800111 0.0842649 -0.025 -0.0707066 0.0754866 -0.025 -0.0800111 0.0744559 0.025 -0.0808759 0.0744559 -0.025 -0.0808759 0.0656874 -0.025 -0.0882336 0.0600623 0.025 -0.0919333 0.055 0.025 -0.0952628 0.0441698 0.025 -0.100702 0.0441698 -0.025 -0.100702 0.0435688 0.025 -0.101004 0.0435688 -0.025 -0.101004 0.0315484 0.025 -0.105379 0.0315484 -0.025 -0.105379 0.0191013 -0.025 -0.108329 0.00906937 0.025 -0.109501 0.00639593 -0.025 -0.109814 -0.00639593 0.025 -0.109814 -0.00906937 -0.025 -0.109501 -0.0269635 -0.025 -0.106465 -0.0441698 0.025 -0.100702 -0.0441698 -0.025 -0.100702 -0.055 0.025 -0.0952628 -0.0600623 -0.025 -0.0919333 -0.0656874 0.025 -0.0882336 -0.0656874 -0.025 -0.0882336 -0.0744559 -0.025 -0.0808759 -0.0754866 0.025 -0.0800111 -0.0842649 -0.025 -0.0707066 -0.0842649 0.025 -0.0707066 -0.0866764 0.025 -0.0674674 -0.0919037 0.025 -0.060446 -0.0919037 -0.025 -0.060446 -0.0966171 -0.025 -0.052282 -0.103366 0.025 -0.0376222 -0.103366 -0.025 -0.0376222 -0.107035 0.025 -0.0253677 -0.103945 -0.025 -0.0356886 -0.108321 0.025 -0.0180739 -0.107035 -0.025 -0.0253677 -0.11 0.025 1.34711e-17 -0.11 -0.025 1.34711e-17 -0.109256 0.025 0.0127702 -0.109256 -0.025 0.0127702 -0.108321 -0.025 0.0180739 -0.103945 0.025 0.0356886 -0.103945 -0.025 0.0356886 -0.103366 0.025 0.0376222 -0.0982996 0.025 0.0493679 -0.0982996 -0.025 0.0493679 -0.0919037 0.025 0.060446 -0.0866764 -0.025 0.0674674 -0.0842649 -0.025 0.0707066 -0.0754866 0.025 0.0800111 -0.0744559 0.025 0.0808759 -0.0656874 -0.025 0.0882336 -0.0600623 -0.025 0.0919333 -0.055 -0.025 0.0952628 -0.0435688 0.025 0.101004 -0.0269635 -0.025 0.106465 -0.0269635 0.025 0.106465 -0.00906937 -0.025 0.109501 0.00639593 -0.025 0.109814 0.00906937 0.025 0.109501 0.0191013 0.025 0.108329 0.00906937 -0.025 0.109501 0.0191013 -0.025 0.108329 0.0269635 -0.025 0.106465 0.0315484 -0.025 0.105379 0.0435688 0.025 0.101004 0.0441698 0.025 0.100702 0.0441698 -0.025 0.100702 0.055 0.025 0.0952628 0.0600623 0.025 0.0919333 0.0656874 -0.025 0.0882336 0.0744559 0.025 0.0808759 0.0744559 -0.025 0.0808759 0.0842649 0.025 0.0707066 0.0866764 0.025 0.0674674 0.0866764 -0.025 0.0674674 0.0919037 0.025 0.060446 0.0966171 0.025 0.052282 0.0982996 0.025 0.0493679 0.103366 0.025 0.0376222 0.103945 0.025 0.0356886 0.103945 -0.025 0.0356886 0.107035 -0.025 0.0253677 0.108321 -0.025 0.0180739 -0.039608 -0.035 -0.0918216 -0.0200861 -0.035 -0.0618187 -0.0593805 -0.035 -0.0264379 -0.0939693 -0.035 -0.034202 -0.0635796 -0.035 -0.0135143 -0.0973045 -0.035 -0.0230616 0.065 -0.035 1.38778e-17 -0.065 -0.035 -1.38778e-17 -0.0993238 -0.035 0.0116093 -0.0766044 -0.035 0.0642788 -0.0525861 -0.035 0.038206 -0.0835488 -0.035 0.0549509 -0.0593805 -0.035 0.0264379 -0.0686242 -0.035 0.0727374 -0.039608 -0.035 0.0918216 -0.05 -0.035 0.0866025 0.0173648 -0.035 0.0984808 0.00679435 -0.035 0.0646439 0.0993238 -0.035 0.0116093 0.0635796 -0.035 0.0135143 0.0939693 -0.035 0.034202 0.0593805 -0.035 0.0264379 0.0893633 -0.035 0.0448799 0.1 -0.035 1.38778e-17 -0.0325 -0.035 -0.0562917 -0.05 -0.035 -0.0866025 -0.0835488 -0.035 -0.0549509 -0.0434935 -0.035 -0.0483044 -0.0635796 -0.035 0.0135143 -0.0973045 -0.035 0.0230616 -0.0173648 -0.035 0.0984808 -0.0286803 -0.035 0.095799 0.05 -0.035 0.0866025 0.0835488 -0.035 0.0549509 0.0434935 -0.035 0.0483044 0.0766044 -0.035 0.0642788 0.0593805 -0.035 -0.0264379 0.0635796 -0.035 -0.0135143 0.039608 -0.035 -0.0918216 0.0200861 -0.035 -0.0618187 0.0286803 -0.035 -0.095799 -0.0286803 -0.035 -0.095799 -0.00679435 -0.035 -0.0646439 0.00679435 -0.035 -0.0646439 0.00581448 -0.035 -0.0998308 0.0173648 -0.035 -0.0984808 0.0597159 -0.035 -0.0802123 0.0766044 -0.035 -0.0642788 0.0525861 -0.035 -0.038206 0.0835488 -0.035 -0.0549509 0.103945 0.025 -0.0356886 0.102906 0.0280902 -0.0374548 0.103366 0.025 -0.0376222 0.0978622 0.0280902 -0.0491483 0.0919037 0.025 -0.060446 0.0842649 0.025 -0.0707066 0.0656874 0.025 -0.0882336 0.0653952 0.0280902 -0.087841 0.0547553 0.0280902 -0.0948389 0.031408 0.0280902 -0.10491 0.0269635 0.025 -0.106465 0.0191013 0.025 -0.108329 0.00636747 0.0280902 -0.109325 0.00639593 0.025 -0.109814 -0.00636747 0.0280902 -0.109325 -0.00906937 0.025 -0.109501 -0.0190163 0.0280902 -0.107847 -0.0191013 0.025 -0.108329 -0.0269635 0.025 -0.106465 -0.031408 0.0280902 -0.10491 -0.0315484 0.025 -0.105379 -0.0435688 0.025 -0.101004 -0.0433749 0.0280902 -0.100554 -0.0547553 0.0280902 -0.0948389 -0.0600623 0.025 -0.0919333 -0.0653952 0.0280902 -0.087841 -0.0744559 0.025 -0.0808759 -0.0751507 0.0280902 -0.0796551 -0.08389 0.0280902 -0.070392 -0.0966171 0.025 -0.052282 -0.0978622 0.0280902 -0.0491483 -0.0982996 0.025 -0.0493679 -0.102906 0.0280902 -0.0374548 -0.103945 0.025 -0.0356886 -0.106559 0.0280902 -0.0252549 -0.109256 0.025 -0.0127702 -0.11 0.025 1.67921e-17 -0.10877 0.0280902 0.0127134 -0.108321 0.025 0.0180739 -0.107035 0.025 0.0253677 -0.106559 0.0280902 0.0252549 -0.0966171 0.025 0.052282 -0.0866764 0.025 0.0674674 -0.0914947 0.0280902 0.060177 -0.0842649 0.025 0.0707066 -0.0653952 0.0280902 0.087841 -0.0656874 0.025 0.0882336 -0.0600623 0.025 0.0919333 -0.0547553 0.0280902 0.0948389 -0.055 0.025 0.0952628 -0.0441698 0.025 0.100702 -0.0315484 0.025 0.105379 -0.0191013 0.025 0.108329 -0.00906937 0.025 0.109501 -0.0190163 0.0280902 0.107847 -0.00636747 0.0280902 0.109325 0.00636747 0.0280902 0.109325 -0.00639593 0.025 0.109814 0.00639593 0.025 0.109814 0.0269635 0.025 0.106465 0.031408 0.0280902 0.10491 0.0315484 0.025 0.105379 0.0547553 0.0280902 0.0948389 0.0656874 0.025 0.0882336 0.0754866 0.025 0.0800111 0.08389 0.0280902 0.070392 0.0914947 0.0280902 0.060177 0.0978622 0.0280902 0.0491483 0.107035 0.025 0.0253677 0.108321 0.025 0.0180739 0.106559 0.0280902 0.0252549 0.10877 0.0280902 0.0127134 0.109256 0.025 0.0127702 0.11 0.025 0 0.109511 0.0280902 0 0.10877 0.0280902 -0.0127134 0.108321 0.025 -0.0180739 0.102906 0.0280902 0.0374548 0.105177 0.0308779 0.0249273 0.0965929 0.0308779 0.0485108 0.090308 0.0308779 0.0593965 0.0828019 0.0308779 0.069479 0.0751507 0.0280902 0.0796551 0.0653952 0.0280902 0.087841 0.064547 0.0308779 0.0867016 0.0433749 0.0280902 0.100554 0.0428123 0.0308779 0.0992501 0.0190163 0.0280902 0.107847 0.0310006 0.0308779 0.103549 -0.00628488 0.0308779 0.107907 -0.0187697 0.0308779 0.106448 -0.031408 0.0280902 0.10491 -0.0310006 0.0308779 0.103549 -0.0433749 0.0280902 0.100554 -0.064547 0.0308779 0.0867016 -0.0751507 0.0280902 0.0796551 -0.08389 0.0280902 0.070392 -0.074176 0.0308779 0.0786219 -0.0828019 0.0308779 0.069479 -0.090308 0.0308779 0.0593965 -0.0978622 0.0280902 0.0491483 -0.102906 0.0280902 0.0374548 -0.0965929 0.0308779 0.0485108 -0.101572 0.0308779 0.036969 -0.105177 0.0308779 0.0249273 -0.109511 0.0280902 1.67174e-17 -0.10809 0.0308779 1.65006e-17 -0.10877 0.0280902 -0.0127134 -0.105177 0.0308779 -0.0249273 -0.101572 0.0308779 -0.036969 -0.0965929 0.0308779 -0.0485108 -0.0914947 0.0280902 -0.060177 -0.064547 0.0308779 -0.0867016 -0.0428123 0.0308779 -0.0992501 -0.00628488 0.0308779 -0.107907 0.00628488 0.0308779 -0.107907 0.0190163 0.0280902 -0.107847 0.0187697 0.0308779 -0.106448 0.0433749 0.0280902 -0.100554 0.0428123 0.0308779 -0.0992501 0.064547 0.0308779 -0.0867016 0.074176 0.0308779 -0.0786219 0.0751507 0.0280902 -0.0796551 0.08389 0.0280902 -0.070392 0.0828019 0.0308779 -0.069479 0.090308 0.0308779 -0.0593965 0.0914947 0.0280902 -0.060177 0.0965929 0.0308779 -0.0485108 0.106559 0.0280902 -0.0252549 0.107359 0.0308779 0.0125485 0.103024 0.0330902 0.0244171 0.101572 0.0308779 0.036969 0.0994926 0.0330902 0.0362124 0.0811071 0.0330902 0.068057 0.074176 0.0308779 0.0786219 0.0540451 0.0308779 0.0936088 0.0529389 0.0330902 0.0916929 0.0419361 0.0330902 0.0972188 0.0303661 0.0330902 0.10143 0.0187697 0.0308779 0.106448 0.0183855 0.0330902 0.104269 0.00628488 0.0308779 0.107907 0.00615625 0.0330902 0.105699 -0.0428123 0.0308779 0.0992501 -0.0303661 0.0330902 0.10143 -0.0419361 0.0330902 0.0972188 -0.0540451 0.0308779 0.0936088 -0.0529389 0.0330902 0.0916929 -0.0632259 0.0330902 0.0849271 -0.0726578 0.0330902 0.0770128 -0.0946159 0.0330902 0.0475179 -0.107359 0.0308779 0.0125485 -0.105162 0.0330902 0.0122917 -0.105878 0.0330902 1.61629e-17 -0.107359 0.0308779 -0.0125485 -0.090308 0.0308779 -0.0593965 -0.0828019 0.0308779 -0.069479 -0.074176 0.0308779 -0.0786219 -0.0540451 0.0308779 -0.0936088 -0.0419361 0.0330902 -0.0972188 -0.0310006 0.0308779 -0.103549 -0.0187697 0.0308779 -0.106448 -0.0183855 0.0330902 -0.104269 -0.00615625 0.0330902 -0.105699 0.00615625 0.0330902 -0.105699 0.0310006 0.0308779 -0.103549 0.0303661 0.0330902 -0.10143 0.0419361 0.0330902 -0.0972188 0.0540451 0.0308779 -0.0936088 0.0632259 0.0330902 -0.0849271 0.0811071 0.0330902 -0.068057 0.101572 0.0308779 -0.036969 0.105177 0.0308779 -0.0249273 0.0994926 0.0330902 -0.0362124 0.107359 0.0308779 -0.0125485 0.105162 0.0330902 -0.0122917 0.10809 0.0308779 0 0.105162 0.0330902 0.0122917 0.102393 0.0345106 0.011968 0.0921247 0.0345106 0.0462668 0.0946159 0.0330902 0.0475179 0.0884597 0.0330902 0.0581808 0.0726578 0.0330902 0.0770128 0.0707448 0.0345106 0.0749851 0.0632259 0.0330902 0.0849271 0.0408319 0.0345106 0.0946591 0.0295666 0.0345106 0.0987593 -0.00615625 0.0330902 0.105699 0.00599416 0.0345106 0.102916 -0.0183855 0.0330902 0.104269 -0.00599416 0.0345106 0.102916 -0.0179014 0.0345106 0.101524 -0.0408319 0.0345106 0.0946591 -0.0515451 0.0345106 0.0892787 -0.0811071 0.0330902 0.068057 -0.0884597 0.0330902 0.0581808 -0.0861306 0.0345106 0.056649 -0.0921247 0.0345106 0.0462668 -0.0994926 0.0330902 0.0362124 -0.103024 0.0330902 0.0244171 -0.100311 0.0345106 0.0237742 -0.102393 0.0345106 0.011968 -0.10309 0.0345106 1.57373e-17 -0.105162 0.0330902 -0.0122917 -0.102393 0.0345106 -0.011968 -0.103024 0.0330902 -0.0244171 -0.0994926 0.0330902 -0.0362124 -0.100311 0.0345106 -0.0237742 -0.0968731 0.0345106 -0.0352589 -0.0946159 0.0330902 -0.0475179 -0.0921247 0.0345106 -0.0462668 -0.0884597 0.0330902 -0.0581808 -0.0811071 0.0330902 -0.068057 -0.0789717 0.0345106 -0.0662651 -0.0726578 0.0330902 -0.0770128 -0.0707448 0.0345106 -0.0749851 -0.0632259 0.0330902 -0.0849271 -0.0529389 0.0330902 -0.0916929 -0.0303661 0.0330902 -0.10143 0.00599416 0.0345106 -0.102916 0.0183855 0.0330902 -0.104269 0.0408319 0.0345106 -0.0946591 0.0529389 0.0330902 -0.0916929 0.0726578 0.0330902 -0.0770128 0.0707448 0.0345106 -0.0749851 0.0884597 0.0330902 -0.0581808 0.0789717 0.0345106 -0.0662651 0.0946159 0.0330902 -0.0475179 0.0921247 0.0345106 -0.0462668 0.103024 0.0330902 -0.0244171 0.0968731 0.0345106 -0.0352589 0.100311 0.0345106 -0.0237742 0.102393 0.0345106 -0.011968 0.105878 0.0330902 0 0.10309 0.0345106 0 0.100311 0.0345106 0.0237742 0.0973045 0.035 0.0230616 0.0968731 0.0345106 0.0352589 0.0893633 0.035 0.0448799 0.0835488 0.035 0.0549509 0.0861306 0.0345106 0.056649 0.0789717 0.0345106 0.0662651 0.0766044 0.035 0.0642788 0.0686242 0.035 0.0727374 0.0615612 0.0345106 0.082691 0.0515451 0.0345106 0.0892787 0.05 0.035 0.0866025 0.0286803 0.035 0.095799 0.0179014 0.0345106 0.101524 0.0173648 0.035 0.0984808 0.00581448 0.035 0.0998308 -0.0286803 0.035 0.095799 -0.0295666 0.0345106 0.0987593 -0.039608 0.035 0.0918216 -0.05 0.035 0.0866025 -0.0615612 0.0345106 0.082691 -0.0707448 0.0345106 0.0749851 -0.0766044 0.035 0.0642788 -0.0789717 0.0345106 0.0662651 -0.0835488 0.035 0.0549509 -0.0893633 0.035 0.0448799 -0.0939693 0.035 0.034202 -0.0968731 0.0345106 0.0352589 -0.0973045 0.035 0.0230616 -0.1 0.035 1.52656e-17 -0.0993238 0.035 -0.0116093 -0.0973045 0.035 -0.0230616 -0.0893633 0.035 -0.0448799 -0.0861306 0.0345106 -0.056649 -0.0835488 0.035 -0.0549509 -0.0766044 0.035 -0.0642788 -0.0615612 0.0345106 -0.082691 -0.0686242 0.035 -0.0727374 -0.0515451 0.0345106 -0.0892787 -0.0408319 0.0345106 -0.0946591 -0.039608 0.035 -0.0918216 -0.0295666 0.0345106 -0.0987593 -0.0179014 0.0345106 -0.101524 -0.0173648 0.035 -0.0984808 -0.00599416 0.0345106 -0.102916 -0.00581448 0.035 -0.0998308 0.00581448 0.035 -0.0998308 0.0179014 0.0345106 -0.101524 0.0295666 0.0345106 -0.0987593 0.0515451 0.0345106 -0.0892787 0.05 0.035 -0.0866025 0.0615612 0.0345106 -0.082691 0.0686242 0.035 -0.0727374 0.0861306 0.0345106 -0.056649 0.0973045 0.035 -0.0230616 0.1 0.035 0 -0.108321 -0.025 -0.0180739 -0.102906 -0.0280902 -0.0374548 -0.0978622 -0.0280902 -0.0491483 -0.0982996 -0.025 -0.0493679 -0.0866764 -0.025 -0.0674674 -0.0914947 -0.0280902 -0.060177 -0.0754866 -0.025 -0.0800111 -0.0547553 -0.0280902 -0.0948389 -0.055 -0.025 -0.0952628 -0.0435688 -0.025 -0.101004 -0.0315484 -0.025 -0.105379 -0.031408 -0.0280902 -0.10491 -0.0191013 -0.025 -0.108329 -0.00639593 -0.025 -0.109814 0.0190163 -0.0280902 -0.107847 0.00906937 -0.025 -0.109501 0.0269635 -0.025 -0.106465 0.031408 -0.0280902 -0.10491 0.0433749 -0.0280902 -0.100554 0.0547553 -0.0280902 -0.0948389 0.055 -0.025 -0.0952628 0.0600623 -0.025 -0.0919333 0.0653952 -0.0280902 -0.087841 0.0866764 -0.025 -0.0674674 0.0914947 -0.0280902 -0.060177 0.0919037 -0.025 -0.060446 0.0966171 -0.025 -0.052282 0.103366 -0.025 -0.0376222 0.108321 -0.025 -0.0180739 0.10877 -0.0280902 -0.0127134 0.109256 -0.025 -0.0127702 0.11 -0.025 1.67921e-17 0.109256 -0.025 0.0127702 0.103366 -0.025 0.0376222 0.102906 -0.0280902 0.0374548 0.0982996 -0.025 0.0493679 0.0978622 -0.0280902 0.0491483 0.0966171 -0.025 0.052282 0.0919037 -0.025 0.060446 0.0842649 -0.025 0.0707066 0.0754866 -0.025 0.0800111 0.0653952 -0.0280902 0.087841 0.0600623 -0.025 0.0919333 0.0547553 -0.0280902 0.0948389 0.055 -0.025 0.0952628 0.0433749 -0.0280902 0.100554 0.0435688 -0.025 0.101004 0.031408 -0.0280902 0.10491 0.0190163 -0.0280902 0.107847 0.00636747 -0.0280902 0.109325 -0.00639593 -0.025 0.109814 -0.00636747 -0.0280902 0.109325 -0.0191013 -0.025 0.108329 -0.031408 -0.0280902 0.10491 -0.0315484 -0.025 0.105379 -0.0435688 -0.025 0.101004 -0.0441698 -0.025 0.100702 -0.0433749 -0.0280902 0.100554 -0.0547553 -0.0280902 0.0948389 -0.0653952 -0.0280902 0.087841 -0.0744559 -0.025 0.0808759 -0.0754866 -0.025 0.0800111 -0.08389 -0.0280902 0.070392 -0.0919037 -0.025 0.060446 -0.0966171 -0.025 0.052282 -0.0978622 -0.0280902 0.0491483 -0.103366 -0.025 0.0376222 -0.107035 -0.025 0.0253677 -0.106559 -0.0280902 0.0252549 -0.10877 -0.0280902 -0.0127134 -0.11 -0.025 0 -0.109256 -0.025 -0.0127702 -0.107359 -0.0308779 0.0125485 -0.102906 -0.0280902 0.0374548 -0.101572 -0.0308779 0.036969 -0.0914947 -0.0280902 0.060177 -0.090308 -0.0308779 0.0593965 -0.0828019 -0.0308779 0.069479 -0.0751507 -0.0280902 0.0796551 -0.074176 -0.0308779 0.0786219 -0.064547 -0.0308779 0.0867016 -0.0428123 -0.0308779 0.0992501 -0.0310006 -0.0308779 0.103549 -0.0190163 -0.0280902 0.107847 -0.0187697 -0.0308779 0.106448 0.00628488 -0.0308779 0.107907 0.064547 -0.0308779 0.0867016 0.0751507 -0.0280902 0.0796551 0.08389 -0.0280902 0.070392 0.0914947 -0.0280902 0.060177 0.090308 -0.0308779 0.0593965 0.106559 -0.0280902 0.0252549 0.107359 -0.0308779 0.0125485 0.10877 -0.0280902 0.0127134 0.109511 -0.0280902 1.67174e-17 0.107359 -0.0308779 -0.0125485 0.106559 -0.0280902 -0.0252549 0.102906 -0.0280902 -0.0374548 0.0978622 -0.0280902 -0.0491483 0.090308 -0.0308779 -0.0593965 0.08389 -0.0280902 -0.070392 0.0828019 -0.0308779 -0.069479 0.0751507 -0.0280902 -0.0796551 0.064547 -0.0308779 -0.0867016 0.0428123 -0.0308779 -0.0992501 0.0187697 -0.0308779 -0.106448 0.00636747 -0.0280902 -0.109325 -0.00636747 -0.0280902 -0.109325 0.00628488 -0.0308779 -0.107907 -0.0190163 -0.0280902 -0.107847 -0.0310006 -0.0308779 -0.103549 -0.0433749 -0.0280902 -0.100554 -0.0653952 -0.0280902 -0.087841 -0.0751507 -0.0280902 -0.0796551 -0.064547 -0.0308779 -0.0867016 -0.08389 -0.0280902 -0.070392 -0.0965929 -0.0308779 -0.0485108 -0.106559 -0.0280902 -0.0252549 -0.101572 -0.0308779 -0.036969 -0.107359 -0.0308779 -0.0125485 -0.109511 -0.0280902 0 -0.10877 -0.0280902 0.0127134 -0.105177 -0.0308779 0.0249273 -0.105162 -0.0330902 0.0122917 -0.0965929 -0.0308779 0.0485108 -0.0946159 -0.0330902 0.0475179 -0.0884597 -0.0330902 0.0581808 -0.0811071 -0.0330902 0.068057 -0.0540451 -0.0308779 0.0936088 -0.0419361 -0.0330902 0.0972188 -0.0183855 -0.0330902 0.104269 -0.00628488 -0.0308779 0.107907 -0.00615625 -0.0330902 0.105699 0.0187697 -0.0308779 0.106448 0.0310006 -0.0308779 0.103549 0.0428123 -0.0308779 0.0992501 0.0419361 -0.0330902 0.0972188 0.0540451 -0.0308779 0.0936088 0.074176 -0.0308779 0.0786219 0.0726578 -0.0330902 0.0770128 0.0828019 -0.0308779 0.069479 0.0965929 -0.0308779 0.0485108 0.0884597 -0.0330902 0.0581808 0.0946159 -0.0330902 0.0475179 0.101572 -0.0308779 0.036969 0.0994926 -0.0330902 0.0362124 0.105177 -0.0308779 0.0249273 0.10809 -0.0308779 1.65006e-17 0.105878 -0.0330902 1.61629e-17 0.105177 -0.0308779 -0.0249273 0.101572 -0.0308779 -0.036969 0.0965929 -0.0308779 -0.0485108 0.074176 -0.0308779 -0.0786219 0.0726578 -0.0330902 -0.0770128 0.0540451 -0.0308779 -0.0936088 0.0310006 -0.0308779 -0.103549 0.0419361 -0.0330902 -0.0972188 -0.00628488 -0.0308779 -0.107907 0.00615625 -0.0330902 -0.105699 -0.0187697 -0.0308779 -0.106448 -0.00615625 -0.0330902 -0.105699 -0.0428123 -0.0308779 -0.0992501 -0.0529389 -0.0330902 -0.0916929 -0.0540451 -0.0308779 -0.0936088 -0.074176 -0.0308779 -0.0786219 -0.0726578 -0.0330902 -0.0770128 -0.0811071 -0.0330902 -0.068057 -0.0828019 -0.0308779 -0.069479 -0.090308 -0.0308779 -0.0593965 -0.0884597 -0.0330902 -0.0581808 -0.0946159 -0.0330902 -0.0475179 -0.0994926 -0.0330902 -0.0362124 -0.103024 -0.0330902 -0.0244171 -0.105177 -0.0308779 -0.0249273 -0.10809 -0.0308779 0 -0.105878 -0.0330902 0 -0.103024 -0.0330902 0.0244171 -0.100311 -0.0345106 0.0237742 -0.0968731 -0.0345106 0.0352589 -0.0994926 -0.0330902 0.0362124 -0.0861306 -0.0345106 0.056649 -0.0726578 -0.0330902 0.0770128 -0.0632259 -0.0330902 0.0849271 -0.0615612 -0.0345106 0.082691 -0.0529389 -0.0330902 0.0916929 -0.0303661 -0.0330902 0.10143 -0.0179014 -0.0345106 0.101524 0.00615625 -0.0330902 0.105699 -0.00599416 -0.0345106 0.102916 0.0183855 -0.0330902 0.104269 0.0303661 -0.0330902 0.10143 0.0295666 -0.0345106 0.0987593 0.0408319 -0.0345106 0.0946591 0.0529389 -0.0330902 0.0916929 0.0515451 -0.0345106 0.0892787 0.0632259 -0.0330902 0.0849271 0.0615612 -0.0345106 0.082691 0.0811071 -0.0330902 0.068057 0.0861306 -0.0345106 0.056649 0.0968731 -0.0345106 0.0352589 0.103024 -0.0330902 0.0244171 0.105162 -0.0330902 0.0122917 0.105162 -0.0330902 -0.0122917 0.102393 -0.0345106 -0.011968 0.103024 -0.0330902 -0.0244171 0.0994926 -0.0330902 -0.0362124 0.0946159 -0.0330902 -0.0475179 0.0921247 -0.0345106 -0.0462668 0.0884597 -0.0330902 -0.0581808 0.0861306 -0.0345106 -0.056649 0.0811071 -0.0330902 -0.068057 0.0789717 -0.0345106 -0.0662651 0.0632259 -0.0330902 -0.0849271 0.0529389 -0.0330902 -0.0916929 0.0408319 -0.0345106 -0.0946591 0.0303661 -0.0330902 -0.10143 0.0183855 -0.0330902 -0.104269 0.0179014 -0.0345106 -0.101524 0.00599416 -0.0345106 -0.102916 -0.00599416 -0.0345106 -0.102916 -0.0183855 -0.0330902 -0.104269 -0.0295666 -0.0345106 -0.0987593 -0.0303661 -0.0330902 -0.10143 -0.0419361 -0.0330902 -0.0972188 -0.0408319 -0.0345106 -0.0946591 -0.0632259 -0.0330902 -0.0849271 -0.0515451 -0.0345106 -0.0892787 -0.0707448 -0.0345106 -0.0749851 -0.0861306 -0.0345106 -0.056649 -0.0921247 -0.0345106 -0.0462668 -0.0968731 -0.0345106 -0.0352589 -0.100311 -0.0345106 -0.0237742 -0.105162 -0.0330902 -0.0122917 -0.102393 -0.0345106 -0.011968 -0.0939693 -0.035 0.034202 -0.0921247 -0.0345106 0.0462668 -0.0893633 -0.035 0.0448799 -0.0789717 -0.0345106 0.0662651 -0.0707448 -0.0345106 0.0749851 -0.0597159 -0.035 0.0802123 -0.0515451 -0.0345106 0.0892787 -0.0408319 -0.0345106 0.0946591 -0.0295666 -0.0345106 0.0987593 -0.00581448 -0.035 0.0998308 0.00599416 -0.0345106 0.102916 0.0179014 -0.0345106 0.101524 0.00581448 -0.035 0.0998308 0.0286803 -0.035 0.095799 0.039608 -0.035 0.0918216 0.0597159 -0.035 0.0802123 0.0707448 -0.0345106 0.0749851 0.0686242 -0.035 0.0727374 0.0789717 -0.0345106 0.0662651 0.0921247 -0.0345106 0.0462668 0.100311 -0.0345106 0.0237742 0.102393 -0.0345106 0.011968 0.0973045 -0.035 0.0230616 0.10309 -0.0345106 1.57373e-17 0.1 -0.035 1.52656e-17 0.0993238 -0.035 -0.0116093 0.100311 -0.0345106 -0.0237742 0.0973045 -0.035 -0.0230616 0.0968731 -0.0345106 -0.0352589 0.0939693 -0.035 -0.034202 0.0893633 -0.035 -0.0448799 0.0707448 -0.0345106 -0.0749851 0.0686242 -0.035 -0.0727374 0.0615612 -0.0345106 -0.082691 0.0515451 -0.0345106 -0.0892787 0.05 -0.035 -0.0866025 0.0295666 -0.0345106 -0.0987593 -0.00581448 -0.035 -0.0998308 -0.0173648 -0.035 -0.0984808 -0.0179014 -0.0345106 -0.101524 -0.0615612 -0.0345106 -0.082691 -0.0597159 -0.035 -0.0802123 -0.0789717 -0.0345106 -0.0662651 -0.0686242 -0.035 -0.0727374 -0.0766044 -0.035 -0.0642788 -0.0893633 -0.035 -0.0448799 -0.0993238 -0.035 -0.0116093 -0.10309 -0.0345106 0 -0.102393 -0.0345106 0.011968 -0.1 -0.035 0 -0.065 -0.035 -1.59204e-17 -0.065 0.035 -1.59204e-17 -0.0525861 0.035 0.038206 -0.0434935 -0.035 0.0483044 -0.0434935 0.035 0.0483044 -0.0325 0.035 0.0562917 -0.0325 -0.035 0.0562917 -0.0200861 -0.035 0.0618187 -0.00679435 -0.035 0.0646439 -0.00679435 0.035 0.0646439 0.0200861 -0.035 0.0618187 0.0325 -0.035 0.0562917 0.0434935 0.035 0.0483044 0.0525861 -0.035 0.038206 0.0635796 0.035 0.0135143 0.065 0.035 7.9602e-18 0.065 -0.035 7.9602e-18 0.0635796 0.035 -0.0135143 0.0593805 0.035 -0.0264379 0.0434935 -0.035 -0.0483044 0.0325 -0.035 -0.0562917 0.0200861 0.035 -0.0618187 -0.00679435 0.035 -0.0646439 -0.0200861 0.035 -0.0618187 -0.0525861 -0.035 -0.038206 -0.0635796 0.035 -0.0135143</float_array>\n                    <technique_common>\n                        <accessor count=\"789\" source=\"#shape0-lib-positions-array\" stride=\"3\">\n                            <param name=\"X\" type=\"float\"/>\n                            <param name=\"Y\" type=\"float\"/>\n                            <param name=\"Z\" type=\"float\"/>\n                        </accessor>\n                    </technique_common>\n                </source>\n                <source id=\"shape0-lib-normals\" name=\"normal\">\n                    <float_array id=\"shape0-lib-normals-array\" count=\"4680\">0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0.998307 0 0.058162 0.998307 0 0.058162 0.998307 0 -0.058162 0.998307 0 -0.058162 0.984814 0 -0.173614 0.984814 0 -0.173614 0.98481 0 -0.173636 0.98481 0 -0.173636 0.957986 0 -0.286814 0.957986 0 -0.286814 0.957973 0 -0.286857 0.957973 0 -0.286857 0.918222 0 -0.396067 0.918222 0 -0.396067 0.86602 0 -0.500009 0.86602 0 -0.500009 0.866029 0 -0.499993 0.866029 0 -0.499993 0.802119 0 -0.597164 0.802119 0 -0.597164 0.802123 0 -0.597159 0.802123 0 -0.597159 0.727376 0 -0.68624 0.727376 0 -0.68624 0.642764 0 -0.766065 0.642764 0 -0.766065 0.64279 0 -0.766042 0.64279 0 -0.766042 0.549511 0 -0.835487 0.549511 0 -0.835487 0.549506 0 -0.83549 0.549506 0 -0.83549 0.448804 0 -0.89363 0.448804 0 -0.89363 0.448992 0 -0.893536 0.448992 0 -0.893536 0.342016 0 -0.939694 0.342016 0 -0.939694 0.230486 0 -0.973076 0.230486 0 -0.973076 0.230689 0 -0.973028 0.230689 0 -0.973028 0.116038 0 -0.993245 0.116038 0 -0.993245 0.116286 0 -0.993216 0.116286 0 -0.993216 0 0 -1 0 0 -1 -0.116286 0 -0.993216 -0.116286 0 -0.993216 -0.116038 0 -0.993245 -0.116038 0 -0.993245 -0.230689 0 -0.973028 -0.230689 0 -0.973028 -0.230486 0 -0.973076 -0.230486 0 -0.973076 -0.342016 0 -0.939694 -0.342016 0 -0.939694 -0.448992 0 -0.893536 -0.448992 0 -0.893536 -0.448804 0 -0.89363 -0.448804 0 -0.89363 -0.549506 0 -0.83549 -0.549506 0 -0.83549 -0.549511 0 -0.835487 -0.549511 0 -0.835487 -0.64279 0 -0.766042 -0.64279 0 -0.766042 -0.642764 0 -0.766065 -0.642764 0 -0.766065 -0.727376 0 -0.68624 -0.727376 0 -0.68624 -0.802123 0 -0.597159 -0.802123 0 -0.597159 -0.802119 0 -0.597164 -0.802119 0 -0.597164 -0.866029 0 -0.499993 -0.866029 0 -0.499993 -0.86602 0 -0.500009 -0.86602 0 -0.500009 -0.918222 0 -0.396067 -0.918222 0 -0.396067 -0.957973 0 -0.286857 -0.957973 0 -0.286857 -0.957986 0 -0.286814 -0.957986 0 -0.286814 -0.98481 0 -0.173636 -0.98481 0 -0.173636 -0.984814 0 -0.173614 -0.984814 0 -0.173614 -0.998307 0 -0.058162 -0.998307 0 -0.058162 -0.998307 0 0.058162 -0.998307 0 0.058162 -0.984814 0 0.173614 -0.984814 0 0.173614 -0.98481 0 0.173636 -0.98481 0 0.173636 -0.957986 0 0.286814 -0.957986 0 0.286814 -0.957973 0 0.286857 -0.957973 0 0.286857 -0.918222 0 0.396067 -0.918222 0 0.396067 -0.86602 0 0.500009 -0.86602 0 0.500009 -0.866029 0 0.499993 -0.866029 0 0.499993 -0.802119 0 0.597164 -0.802119 0 0.597164 -0.802123 0 0.597159 -0.802123 0 0.597159 -0.727376 0 0.68624 -0.727376 0 0.68624 -0.642764 0 0.766065 -0.642764 0 0.766065 -0.64279 0 0.766042 -0.64279 0 0.766042 -0.549511 0 0.835487 -0.549511 0 0.835487 -0.549506 0 0.83549 -0.549506 0 0.83549 -0.448804 0 0.89363 -0.448804 0 0.89363 -0.448992 0 0.893536 -0.448992 0 0.893536 -0.342016 0 0.939694 -0.342016 0 0.939694 -0.230486 0 0.973076 -0.230486 0 0.973076 -0.230689 0 0.973028 -0.230689 0 0.973028 -0.116038 0 0.993245 -0.116038 0 0.993245 -0.116286 0 0.993216 -0.116286 0 0.993216 0 0 1 0 0 1 0.116286 0 0.993216 0.116286 0 0.993216 0.116038 0 0.993245 0.116038 0 0.993245 0.230689 0 0.973028 0.230689 0 0.973028 0.230486 0 0.973076 0.230486 0 0.973076 0.342016 0 0.939694 0.342016 0 0.939694 0.448992 0 0.893536 0.448992 0 0.893536 0.448804 0 0.89363 0.448804 0 0.89363 0.549506 0 0.83549 0.549506 0 0.83549 0.549511 0 0.835487 0.549511 0 0.835487 0.64279 0 0.766042 0.64279 0 0.766042 0.642764 0 0.766065 0.642764 0 0.766065 0.727376 0 0.68624 0.727376 0 0.68624 0.802123 0 0.597159 0.802123 0 0.597159 0.802119 0 0.597164 0.802119 0 0.597164 0.866029 0 0.499993 0.866029 0 0.499993 0.86602 0 0.500009 0.86602 0 0.500009 0.918222 0 0.396067 0.918222 0 0.396067 0.957973 0 0.286857 0.957973 0 0.286857 0.957986 0 0.286814 0.957986 0 0.286814 0.98481 0 0.173636 0.98481 0 0.173636 0.984814 0 0.173614 0.984814 0 0.173614 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0.972734 0.156141 -0.171488 0.972738 0.156097 -0.171507 0.946243 0.156097 -0.283298 0.946217 0.156207 -0.283324 0.946215 0.1562 -0.283336 0.906954 0.156198 -0.3912 0.906955 0.156175 -0.391207 0.855394 0.156173 -0.493874 0.855397 0.156168 -0.49387 0.855398 0.156206 -0.493856 0.792273 0.156206 -0.589833 0.792284 0.156175 -0.589827 0.792281 0.156167 -0.589833 0.718449 0.156168 -0.677822 0.71845 0.156181 -0.677818 0.634876 0.156179 -0.756664 0.634904 0.156165 -0.756644 0.634904 0.156165 -0.756644 0.542769 0.156167 -0.825236 0.542762 0.156181 -0.825238 0.542763 0.156182 -0.825237 0.443296 0.156183 -0.882664 0.443261 0.156296 -0.882661 0.44347 0.156345 -0.882548 0.337842 0.156354 -0.928125 0.337817 0.156215 -0.928158 0.227657 0.156214 -0.961129 0.2278 0.156007 -0.961129 0.227858 0.156175 -0.961088 0.114614 0.156175 -0.981057 0.114636 0.156107 -0.981065 0.114857 0.156296 -0.981009 0 0.156299 -0.98771 0 0.156299 -0.98771 -0.114857 0.156296 -0.981009 -0.114636 0.156107 -0.981065 -0.114614 0.156175 -0.981057 -0.227858 0.156175 -0.961088 -0.2278 0.156007 -0.961129 -0.227657 0.156214 -0.961129 -0.337849 0.156214 -0.928146 -0.337809 0.156354 -0.928137 -0.44347 0.156345 -0.882548 -0.443261 0.156296 -0.882661 -0.443296 0.156183 -0.882664 -0.542763 0.156182 -0.825237 -0.542762 0.156181 -0.825238 -0.542769 0.156167 -0.825236 -0.634904 0.156165 -0.756644 -0.634904 0.156165 -0.756644 -0.634876 0.156179 -0.756664 -0.718447 0.156181 -0.677821 -0.718451 0.156168 -0.67782 -0.792281 0.156167 -0.589833 -0.792284 0.156175 -0.589827 -0.792273 0.156206 -0.589833 -0.855398 0.156206 -0.493856 -0.855397 0.156168 -0.49387 -0.855394 0.156173 -0.493874 -0.906957 0.156175 -0.391201 -0.906951 0.156198 -0.391205 -0.946215 0.1562 -0.283336 -0.946217 0.156207 -0.283324 -0.946243 0.156097 -0.283298 -0.972738 0.156097 -0.171507 -0.972734 0.156141 -0.171488 -0.972736 0.156136 -0.171485 -0.986062 0.156136 -0.057473 -0.986079 0.156038 -0.0574496 -0.986078 0.156038 0.0574739 -0.986063 0.156136 0.0574487 -0.972736 0.156136 0.171485 -0.972734 0.156141 0.171488 -0.972738 0.156097 0.171507 -0.946243 0.156097 0.283298 -0.946217 0.156207 0.283324 -0.946215 0.1562 0.283336 -0.906954 0.156198 0.3912 -0.906955 0.156175 0.391207 -0.855394 0.156173 0.493874 -0.855397 0.156168 0.49387 -0.855398 0.156206 0.493856 -0.792273 0.156206 0.589833 -0.792284 0.156175 0.589827 -0.792281 0.156167 0.589833 -0.718449 0.156168 0.677822 -0.71845 0.156181 0.677818 -0.634876 0.156179 0.756664 -0.634904 0.156165 0.756644 -0.634904 0.156165 0.756644 -0.542769 0.156167 0.825236 -0.542762 0.156181 0.825238 -0.542763 0.156182 0.825237 -0.443296 0.156183 0.882664 -0.443261 0.156296 0.882661 -0.44347 0.156345 0.882548 -0.337842 0.156354 0.928125 -0.337817 0.156215 0.928158 -0.227657 0.156214 0.961129 -0.2278 0.156007 0.961129 -0.227858 0.156175 0.961088 -0.114614 0.156175 0.981057 -0.114636 0.156107 0.981065 -0.114857 0.156296 0.981009 0 0.156299 0.98771 0 0.156299 0.98771 0.114857 0.156296 0.981009 0.114636 0.156107 0.981065 0.114614 0.156175 0.981057 0.227858 0.156175 0.961088 0.2278 0.156007 0.961129 0.227657 0.156214 0.961129 0.337849 0.156214 0.928146 0.337809 0.156354 0.928137 0.44347 0.156345 0.882548 0.443261 0.156296 0.882661 0.443296 0.156183 0.882664 0.542763 0.156182 0.825237 0.542762 0.156181 0.825238 0.542769 0.156167 0.825236 0.634904 0.156165 0.756644 0.634904 0.156165 0.756644 0.634876 0.156179 0.756664 0.718447 0.156181 0.677821 0.718451 0.156168 0.67782 0.792281 0.156167 0.589833 0.792284 0.156175 0.589827 0.792273 0.156206 0.589833 0.855398 0.156206 0.493856 0.855397 0.156168 0.49387 0.855394 0.156173 0.493874 0.906957 0.156175 0.391201 0.906951 0.156198 0.391205 0.946215 0.1562 0.283336 0.946217 0.156207 0.283324 0.946243 0.156097 0.283298 0.972738 0.156097 0.171507 0.972734 0.156141 0.171488 0.972736 0.156136 0.171485 0.986062 0.156136 0.057473 0.986079 0.156038 0.0574496 0.986078 0.156038 -0.0574739 0.986063 0.156136 -0.0574487 0.972736 0.156136 -0.171485 0.877756 0.453431 0.154743 0.877799 0.453352 0.154729 0.853874 0.453354 0.255674 0.853961 0.4532 0.255656 0.81851 0.453208 0.353051 0.818411 0.453378 0.35306 0.771902 0.453378 0.445663 0.771907 0.45337 0.445663 0.714953 0.45337 0.532257 0.714949 0.453378 0.532257 0.648321 0.453377 0.61166 0.64832 0.453379 0.61166 0.57293 0.453381 0.682786 0.572925 0.45339 0.682784 0.489781 0.453391 0.744682 0.489786 0.45338 0.744685 0.400003 0.45338 0.79652 0.400039 0.453304 0.796546 0.304888 0.4533 0.837593 0.304824 0.453446 0.837537 0.205551 0.453448 0.867257 0.205562 0.453419 0.867269 0.103443 0.453421 0.885273 0.103457 0.453381 0.885292 0 0.453381 0.891317 0 0.453381 0.891317 -0.103446 0.453381 0.885293 -0.103454 0.453421 0.885272 -0.205555 0.453419 0.867271 -0.205559 0.453448 0.867255 -0.304862 0.453445 0.837524 -0.30485 0.453299 0.837608 -0.40002 0.453304 0.796555 -0.400021 0.45338 0.796511 -0.489784 0.45338 0.744687 -0.489783 0.453391 0.744681 -0.572927 0.45339 0.682783 -0.572928 0.453381 0.682788 -0.648321 0.453379 0.61166 -0.648321 0.453377 0.611661 -0.71495 0.453378 0.532255 -0.714952 0.45337 0.532259 -0.771906 0.45337 0.445665 -0.771903 0.453378 0.445661 -0.818431 0.453377 0.353017 -0.818491 0.453207 0.353095 -0.853949 0.453201 0.255697 -0.853886 0.453355 0.255633 -0.877795 0.453352 0.15475 -0.877759 0.453431 0.154722 -0.889781 0.453432 0.0518612 -0.889731 0.453532 0.0518303 -0.88973 0.453532 -0.0518582 -0.889783 0.453431 -0.0518333 -0.877756 0.453431 -0.154743 -0.877799 0.453352 -0.154729 -0.853874 0.453354 -0.255674 -0.853961 0.4532 -0.255656 -0.81851 0.453208 -0.353051 -0.818411 0.453378 -0.35306 -0.771902 0.453378 -0.445663 -0.771907 0.45337 -0.445663 -0.714953 0.45337 -0.532257 -0.714949 0.453378 -0.532257 -0.648321 0.453377 -0.61166 -0.64832 0.453379 -0.61166 -0.57293 0.453381 -0.682786 -0.572925 0.45339 -0.682784 -0.489781 0.453391 -0.744682 -0.489786 0.45338 -0.744685 -0.400003 0.45338 -0.79652 -0.400039 0.453304 -0.796546 -0.304888 0.4533 -0.837593 -0.304824 0.453446 -0.837537 -0.205551 0.453448 -0.867257 -0.205562 0.453419 -0.867269 -0.103443 0.453421 -0.885273 -0.103457 0.453381 -0.885292 0 0.453381 -0.891317 0 0.453381 -0.891317 0.103446 0.453381 -0.885293 0.103454 0.453421 -0.885272 0.205555 0.453419 -0.867271 0.205559 0.453448 -0.867255 0.304862 0.453445 -0.837524 0.30485 0.453299 -0.837608 0.40002 0.453304 -0.796555 0.400021 0.45338 -0.796511 0.489784 0.45338 -0.744687 0.489783 0.453391 -0.744681 0.572927 0.45339 -0.682783 0.572928 0.453381 -0.682788 0.648321 0.453379 -0.61166 0.648321 0.453377 -0.611661 0.71495 0.453378 -0.532255 0.714952 0.45337 -0.532259 0.771906 0.45337 -0.445665 0.771903 0.453378 -0.445661 0.818431 0.453377 -0.353017 0.818491 0.453207 -0.353095 0.853949 0.453201 -0.255697 0.853886 0.453355 -0.255633 0.877795 0.453352 -0.15475 0.877759 0.453431 -0.154722 0.889781 0.453432 -0.0518612 0.889731 0.453532 -0.0518303 0.88973 0.453532 0.0518582 0.889783 0.453431 0.0518333 0.697014 0.706454 0.122862 0.696902 0.706561 0.122881 0.677926 0.706559 0.202955 0.677899 0.706585 0.202956 0.649751 0.70658 0.280301 0.649823 0.706512 0.280305 0.612886 0.706512 0.353852 0.612896 0.706503 0.353854 0.567671 0.706504 0.422613 0.56766 0.706514 0.42261 0.514762 0.706513 0.485654 0.514771 0.706503 0.485658 0.454908 0.706502 0.542138 0.454906 0.706504 0.542136 0.388892 0.706504 0.591283 0.388887 0.70651 0.591279 0.317616 0.706509 0.632428 0.317627 0.706495 0.632438 0.242044 0.706495 0.665041 0.242071 0.706454 0.665074 0.163233 0.706453 0.68868 0.163172 0.706559 0.688585 0.0821387 0.706558 0.702872 0.0822047 0.706417 0.703006 0 0.706418 0.707795 0 0.706418 0.707795 -0.0821548 0.706419 0.70301 -0.0821882 0.706559 0.702865 -0.163208 0.706558 0.688578 -0.163196 0.706452 0.688689 -0.242057 0.706455 0.665079 -0.242057 0.706495 0.665036 -0.317622 0.706495 0.63244 -0.317621 0.706509 0.632425 -0.388888 0.70651 0.591277 -0.38889 0.706504 0.591284 -0.454907 0.706504 0.542136 -0.454908 0.706502 0.542138 -0.514769 0.706503 0.485661 -0.514764 0.706513 0.485651 -0.567663 0.706514 0.422607 -0.567669 0.706504 0.422616 -0.612894 0.706503 0.353857 -0.612887 0.706513 0.353849 -0.649813 0.706513 0.280327 -0.64976 0.70658 0.280278 -0.677902 0.706584 0.202948 -0.677923 0.706559 0.202964 -0.69691 0.70656 0.122844 -0.697008 0.706453 0.1229 -0.706563 0.706453 0.04116 -0.706556 0.706459 0.0411574 -0.706556 0.706459 -0.0411597 -0.706563 0.706453 -0.0411578 -0.697014 0.706454 -0.122862 -0.696902 0.706561 -0.122881 -0.677926 0.706559 -0.202955 -0.677899 0.706585 -0.202956 -0.649751 0.70658 -0.280301 -0.649823 0.706512 -0.280305 -0.612886 0.706512 -0.353852 -0.612896 0.706503 -0.353854 -0.567671 0.706504 -0.422613 -0.56766 0.706514 -0.42261 -0.514762 0.706513 -0.485654 -0.514771 0.706503 -0.485658 -0.454908 0.706502 -0.542138 -0.454906 0.706504 -0.542136 -0.388892 0.706504 -0.591283 -0.388887 0.70651 -0.591279 -0.317616 0.706509 -0.632428 -0.317627 0.706495 -0.632438 -0.242044 0.706495 -0.665041 -0.242071 0.706454 -0.665074 -0.163233 0.706453 -0.68868 -0.163172 0.706559 -0.688585 -0.0821387 0.706558 -0.702872 -0.0822047 0.706417 -0.703006 0 0.706418 -0.707795 0 0.706418 -0.707795 0.0821548 0.706419 -0.70301 0.0821882 0.706559 -0.702865 0.163208 0.706558 -0.688578 0.163196 0.706452 -0.688689 0.242057 0.706455 -0.665079 0.242057 0.706495 -0.665036 0.317622 0.706495 -0.63244 0.317621 0.706509 -0.632425 0.388888 0.70651 -0.591277 0.38889 0.706504 -0.591284 0.454907 0.706504 -0.542136 0.454908 0.706502 -0.542138 0.514769 0.706503 -0.485661 0.514764 0.706513 -0.485651 0.567663 0.706514 -0.422607 0.567669 0.706504 -0.422616 0.612894 0.706503 -0.353857 0.612887 0.706513 -0.353849 0.649813 0.706513 -0.280327 0.64976 0.70658 -0.280278 0.677902 0.706584 -0.202948 0.677923 0.706559 -0.202964 0.69691 0.70656 -0.122844 0.697008 0.706453 -0.1229 0.706563 0.706453 -0.04116 0.706556 0.706459 -0.0411574 0.706556 0.706459 0.0411597 0.706563 0.706453 0.0411578 0.447674 0.890706 0.0789358 0.447637 0.890724 0.0789397 0.435449 0.890724 0.130369 0.435514 0.890691 0.13037 0.417427 0.890692 0.18006 0.417419 0.890696 0.180059 0.393695 0.890696 0.227299 0.393699 0.890694 0.2273 0.364647 0.890694 0.271471 0.364654 0.890691 0.271474 0.330672 0.890691 0.311971 0.330666 0.890694 0.311968 0.292213 0.890694 0.348246 0.292209 0.890697 0.348243 0.249804 0.890697 0.379812 0.24981 0.890693 0.379817 0.204029 0.890693 0.406248 0.204025 0.890696 0.406244 0.155484 0.890696 0.427183 0.155477 0.890702 0.427173 0.104819 0.890702 0.442338 0.104848 0.890673 0.442389 0.0528032 0.890673 0.451568 0.0527847 0.890697 0.451524 0 0.890697 0.454598 0 0.890697 0.454598 -0.052798 0.890696 0.451523 -0.0527901 0.890673 0.45157 -0.104832 0.890674 0.442392 -0.104835 0.890702 0.442333 -0.15548 0.890702 0.427172 -0.155481 0.890696 0.427184 -0.204026 0.890696 0.406243 -0.204027 0.890693 0.406249 -0.249808 0.890693 0.379818 -0.249806 0.890697 0.379811 -0.29221 0.890697 0.348242 -0.292212 0.890694 0.348247 -0.330668 0.890694 0.311967 -0.330671 0.890691 0.311972 -0.364653 0.890691 0.271475 -0.364649 0.890694 0.27147 -0.393698 0.890694 0.227301 -0.393696 0.890696 0.227298 -0.41742 0.890696 0.180057 -0.417427 0.890692 0.180062 -0.435508 0.890692 0.130387 -0.435453 0.890724 0.130351 -0.447639 0.890724 0.0789296 -0.447672 0.890706 0.078946 -0.453811 0.890706 0.0264348 -0.453792 0.890715 0.0264283 -0.453792 0.890715 -0.0264337 -0.453811 0.890706 -0.0264294 -0.447674 0.890706 -0.0789358 -0.447637 0.890724 -0.0789397 -0.435449 0.890724 -0.130369 -0.435514 0.890691 -0.13037 -0.417427 0.890692 -0.18006 -0.417419 0.890696 -0.180059 -0.393695 0.890696 -0.227299 -0.393699 0.890694 -0.2273 -0.364647 0.890694 -0.271471 -0.364654 0.890691 -0.271474 -0.330672 0.890691 -0.311971 -0.330666 0.890694 -0.311968 -0.292213 0.890694 -0.348246 -0.292209 0.890697 -0.348243 -0.249804 0.890697 -0.379812 -0.24981 0.890693 -0.379817 -0.204029 0.890693 -0.406248 -0.204025 0.890696 -0.406244 -0.155484 0.890696 -0.427183 -0.155477 0.890702 -0.427173 -0.104819 0.890702 -0.442338 -0.104848 0.890673 -0.442389 -0.0528032 0.890673 -0.451568 -0.0527847 0.890697 -0.451524 0 0.890697 -0.454598 0 0.890697 -0.454598 0.052798 0.890696 -0.451523 0.0527901 0.890673 -0.45157 0.104832 0.890674 -0.442392 0.104835 0.890702 -0.442333 0.15548 0.890702 -0.427172 0.155481 0.890696 -0.427184 0.204026 0.890696 -0.406243 0.204027 0.890693 -0.406249 0.249808 0.890693 -0.379818 0.249806 0.890697 -0.379811 0.29221 0.890697 -0.348242 0.292212 0.890694 -0.348247 0.330668 0.890694 -0.311967 0.330671 0.890691 -0.311972 0.364653 0.890691 -0.271475 0.364649 0.890694 -0.27147 0.393698 0.890694 -0.227301 0.393696 0.890696 -0.227298 0.41742 0.890696 -0.180057 0.417427 0.890692 -0.180062 0.435508 0.890692 -0.130387 0.435453 0.890724 -0.130351 0.447639 0.890724 -0.0789296 0.447672 0.890706 -0.078946 0.453811 0.890706 -0.0264348 0.453792 0.890715 -0.0264283 0.453792 0.890715 0.0264337 0.453811 0.890706 0.0264294 0.154305 0.987648 0.0272114 0.15432 0.987646 0.0272101 0.150118 0.987646 0.0449374 0.1501 0.987649 0.0449368 0.143868 0.987649 0.0620593 0.14387 0.987649 0.0620596 0.135693 0.987649 0.0783415 0.13569 0.987649 0.0783407 0.125678 0.987649 0.0935633 0.125676 0.98765 0.0935625 0.113964 0.98765 0.10752 0.113967 0.987649 0.107521 0.100713 0.987649 0.120026 0.100713 0.987649 0.120026 0.0860984 0.987649 0.130906 0.0860967 0.987649 0.130905 0.0703182 0.987649 0.140014 0.0703187 0.987649 0.140015 0.0535875 0.987649 0.147232 0.0535894 0.987649 0.147234 0.0361338 0.987649 0.15246 0.0361332 0.987649 0.152459 0.0181929 0.987649 0.155623 0.0181876 0.987651 0.15561 0 0.987651 0.156669 0 0.987651 0.156669 -0.0181913 0.987651 0.155609 -0.0181893 0.987649 0.155623 -0.0361335 0.987649 0.152459 -0.0361335 0.987649 0.15246 -0.0535886 0.987649 0.147235 -0.0535883 0.987649 0.147231 -0.0703185 0.987649 0.140015 -0.0703184 0.987649 0.140014 -0.0860972 0.987649 0.130904 -0.086098 0.987649 0.130907 -0.100713 0.987649 0.120026 -0.100713 0.987649 0.120026 -0.113967 0.987649 0.107522 -0.113965 0.98765 0.107519 -0.125676 0.98765 0.093562 -0.125677 0.987649 0.0935639 -0.13569 0.987649 0.0783401 -0.135692 0.987649 0.0783421 -0.14387 0.987649 0.0620601 -0.143868 0.987649 0.0620588 -0.150102 0.987649 0.0449325 -0.150117 0.987646 0.0449419 -0.154319 0.987646 0.0272138 -0.154306 0.987648 0.0272076 -0.156421 0.987649 0.00910975 -0.156425 0.987648 0.00911119 -0.156425 0.987648 -0.00911001 -0.156421 0.987649 -0.00911093 -0.154305 0.987648 -0.0272114 -0.15432 0.987646 -0.0272101 -0.150118 0.987646 -0.0449374 -0.1501 0.987649 -0.0449368 -0.143868 0.987649 -0.0620593 -0.14387 0.987649 -0.0620596 -0.135693 0.987649 -0.0783415 -0.13569 0.987649 -0.0783407 -0.125678 0.987649 -0.0935633 -0.125676 0.98765 -0.0935625 -0.113964 0.98765 -0.10752 -0.113967 0.987649 -0.107521 -0.100713 0.987649 -0.120026 -0.100713 0.987649 -0.120026 -0.0860984 0.987649 -0.130906 -0.0860967 0.987649 -0.130905 -0.0703182 0.987649 -0.140014 -0.0703187 0.987649 -0.140015 -0.0535875 0.987649 -0.147232 -0.0535894 0.987649 -0.147234 -0.0361338 0.987649 -0.15246 -0.0361332 0.987649 -0.152459 -0.0181929 0.987649 -0.155623 -0.0181876 0.987651 -0.15561 0 0.987651 -0.156669 0 0.987651 -0.156669 0.0181913 0.987651 -0.155609 0.0181893 0.987649 -0.155623 0.0361335 0.987649 -0.152459 0.0361335 0.987649 -0.15246 0.0535886 0.987649 -0.147235 0.0535883 0.987649 -0.147231 0.0703185 0.987649 -0.140015 0.0703184 0.987649 -0.140014 0.0860972 0.987649 -0.130904 0.086098 0.987649 -0.130907 0.100713 0.987649 -0.120026 0.100713 0.987649 -0.120026 0.113967 0.987649 -0.107522 0.113965 0.98765 -0.107519 0.125676 0.98765 -0.093562 0.125677 0.987649 -0.0935639 0.13569 0.987649 -0.0783401 0.135692 0.987649 -0.0783421 0.14387 0.987649 -0.0620601 0.143868 0.987649 -0.0620588 0.150102 0.987649 -0.0449325 0.150117 0.987646 -0.0449419 0.154319 0.987646 -0.0272138 0.154306 0.987648 -0.0272076 0.156421 0.987649 -0.00910975 0.156425 0.987648 -0.00911119 0.156425 0.987648 0.00911001 0.156421 0.987649 0.00911093 -0.972734 -0.156141 -0.171488 -0.972738 -0.156097 -0.171507 -0.946243 -0.156097 -0.283298 -0.946217 -0.156207 -0.283324 -0.946215 -0.1562 -0.283336 -0.906954 -0.156198 -0.3912 -0.906955 -0.156175 -0.391207 -0.855394 -0.156173 -0.493874 -0.855397 -0.156168 -0.49387 -0.855398 -0.156206 -0.493856 -0.792273 -0.156206 -0.589833 -0.792284 -0.156175 -0.589827 -0.792281 -0.156167 -0.589833 -0.718449 -0.156168 -0.677822 -0.71845 -0.156181 -0.677818 -0.634876 -0.156179 -0.756664 -0.634904 -0.156165 -0.756644 -0.634904 -0.156165 -0.756644 -0.542769 -0.156167 -0.825236 -0.542762 -0.156181 -0.825238 -0.542763 -0.156182 -0.825237 -0.443296 -0.156183 -0.882664 -0.443261 -0.156296 -0.882661 -0.44347 -0.156345 -0.882548 -0.337842 -0.156354 -0.928125 -0.337817 -0.156215 -0.928158 -0.227657 -0.156214 -0.961129 -0.2278 -0.156007 -0.961129 -0.227858 -0.156175 -0.961088 -0.114614 -0.156175 -0.981057 -0.114636 -0.156107 -0.981065 -0.114857 -0.156296 -0.981009 0 -0.156299 -0.98771 0 -0.156299 -0.98771 0.114857 -0.156296 -0.981009 0.114636 -0.156107 -0.981065 0.114614 -0.156175 -0.981057 0.227858 -0.156175 -0.961088 0.2278 -0.156007 -0.961129 0.227657 -0.156214 -0.961129 0.337849 -0.156214 -0.928146 0.337809 -0.156354 -0.928137 0.44347 -0.156345 -0.882548 0.443261 -0.156296 -0.882661 0.443296 -0.156183 -0.882664 0.542763 -0.156182 -0.825237 0.542762 -0.156181 -0.825238 0.542769 -0.156167 -0.825236 0.634904 -0.156165 -0.756644 0.634904 -0.156165 -0.756644 0.634876 -0.156179 -0.756664 0.718447 -0.156181 -0.677821 0.718451 -0.156168 -0.67782 0.792281 -0.156167 -0.589833 0.792284 -0.156175 -0.589827 0.792273 -0.156206 -0.589833 0.855398 -0.156206 -0.493856 0.855397 -0.156168 -0.49387 0.855394 -0.156173 -0.493874 0.906957 -0.156175 -0.391201 0.906951 -0.156198 -0.391205 0.946215 -0.1562 -0.283336 0.946217 -0.156207 -0.283324 0.946243 -0.156097 -0.283298 0.972738 -0.156097 -0.171507 0.972734 -0.156141 -0.171488 0.972736 -0.156136 -0.171485 0.986062 -0.156136 -0.057473 0.986079 -0.156038 -0.0574496 0.986078 -0.156038 0.0574739 0.986063 -0.156136 0.0574487 0.972736 -0.156136 0.171485 0.972734 -0.156141 0.171488 0.972738 -0.156097 0.171507 0.946243 -0.156097 0.283298 0.946217 -0.156207 0.283324 0.946215 -0.1562 0.283336 0.906954 -0.156198 0.3912 0.906955 -0.156175 0.391207 0.855394 -0.156173 0.493874 0.855397 -0.156168 0.49387 0.855398 -0.156206 0.493856 0.792273 -0.156206 0.589833 0.792284 -0.156175 0.589827 0.792281 -0.156167 0.589833 0.718449 -0.156168 0.677822 0.71845 -0.156181 0.677818 0.634876 -0.156179 0.756664 0.634904 -0.156165 0.756644 0.634904 -0.156165 0.756644 0.542769 -0.156167 0.825236 0.542762 -0.156181 0.825238 0.542763 -0.156182 0.825237 0.443296 -0.156183 0.882664 0.443261 -0.156296 0.882661 0.44347 -0.156345 0.882548 0.337842 -0.156354 0.928125 0.337817 -0.156215 0.928158 0.227657 -0.156214 0.961129 0.2278 -0.156007 0.961129 0.227858 -0.156175 0.961088 0.114614 -0.156175 0.981057 0.114636 -0.156107 0.981065 0.114857 -0.156296 0.981009 0 -0.156299 0.98771 0 -0.156299 0.98771 -0.114857 -0.156296 0.981009 -0.114636 -0.156107 0.981065 -0.114614 -0.156175 0.981057 -0.227858 -0.156175 0.961088 -0.2278 -0.156007 0.961129 -0.227657 -0.156214 0.961129 -0.337849 -0.156214 0.928146 -0.337809 -0.156354 0.928137 -0.44347 -0.156345 0.882548 -0.443261 -0.156296 0.882661 -0.443296 -0.156183 0.882664 -0.542763 -0.156182 0.825237 -0.542762 -0.156181 0.825238 -0.542769 -0.156167 0.825236 -0.634904 -0.156165 0.756644 -0.634904 -0.156165 0.756644 -0.634876 -0.156179 0.756664 -0.718447 -0.156181 0.677821 -0.718451 -0.156168 0.67782 -0.792281 -0.156167 0.589833 -0.792284 -0.156175 0.589827 -0.792273 -0.156206 0.589833 -0.855398 -0.156206 0.493856 -0.855397 -0.156168 0.49387 -0.855394 -0.156173 0.493874 -0.906957 -0.156175 0.391201 -0.906951 -0.156198 0.391205 -0.946215 -0.1562 0.283336 -0.946217 -0.156207 0.283324 -0.946243 -0.156097 0.283298 -0.972738 -0.156097 0.171507 -0.972734 -0.156141 0.171488 -0.972736 -0.156136 0.171485 -0.986062 -0.156136 0.057473 -0.986079 -0.156038 0.0574496 -0.986078 -0.156038 -0.0574739 -0.986063 -0.156136 -0.0574487 -0.972736 -0.156136 -0.171485 -0.877756 -0.453431 0.154743 -0.877799 -0.453352 0.154729 -0.853874 -0.453354 0.255674 -0.853961 -0.4532 0.255656 -0.81851 -0.453208 0.353051 -0.818411 -0.453378 0.35306 -0.771902 -0.453378 0.445663 -0.771907 -0.45337 0.445663 -0.714953 -0.45337 0.532257 -0.714949 -0.453378 0.532257 -0.648321 -0.453377 0.61166 -0.64832 -0.453379 0.61166 -0.57293 -0.453381 0.682786 -0.572925 -0.45339 0.682784 -0.489781 -0.453391 0.744682 -0.489786 -0.45338 0.744685 -0.400003 -0.45338 0.79652 -0.400039 -0.453304 0.796546 -0.304888 -0.4533 0.837593 -0.304824 -0.453446 0.837537 -0.205551 -0.453448 0.867257 -0.205562 -0.453419 0.867269 -0.103443 -0.453421 0.885273 -0.103457 -0.453381 0.885292 0 -0.453381 0.891317 0 -0.453381 0.891317 0.103446 -0.453381 0.885293 0.103454 -0.453421 0.885272 0.205555 -0.453419 0.867271 0.205559 -0.453448 0.867255 0.304862 -0.453445 0.837524 0.30485 -0.453299 0.837608 0.40002 -0.453304 0.796555 0.400021 -0.45338 0.796511 0.489784 -0.45338 0.744687 0.489783 -0.453391 0.744681 0.572927 -0.45339 0.682783 0.572928 -0.453381 0.682788 0.648321 -0.453379 0.61166 0.648321 -0.453377 0.611661 0.71495 -0.453378 0.532255 0.714952 -0.45337 0.532259 0.771906 -0.45337 0.445665 0.771903 -0.453378 0.445661 0.818431 -0.453377 0.353017 0.818491 -0.453207 0.353095 0.853949 -0.453201 0.255697 0.853886 -0.453355 0.255633 0.877795 -0.453352 0.15475 0.877759 -0.453431 0.154722 0.889781 -0.453432 0.0518612 0.889731 -0.453532 0.0518303 0.88973 -0.453532 -0.0518582 0.889783 -0.453431 -0.0518333 0.877756 -0.453431 -0.154743 0.877799 -0.453352 -0.154729 0.853874 -0.453354 -0.255674 0.853961 -0.4532 -0.255656 0.81851 -0.453208 -0.353051 0.818411 -0.453378 -0.35306 0.771902 -0.453378 -0.445663 0.771907 -0.45337 -0.445663 0.714953 -0.45337 -0.532257 0.714949 -0.453378 -0.532257 0.648321 -0.453377 -0.61166 0.64832 -0.453379 -0.61166 0.57293 -0.453381 -0.682786 0.572925 -0.45339 -0.682784 0.489781 -0.453391 -0.744682 0.489786 -0.45338 -0.744685 0.400003 -0.45338 -0.79652 0.400039 -0.453304 -0.796546 0.304888 -0.4533 -0.837593 0.304824 -0.453446 -0.837537 0.205551 -0.453448 -0.867257 0.205562 -0.453419 -0.867269 0.103443 -0.453421 -0.885273 0.103457 -0.453381 -0.885292 0 -0.453381 -0.891317 0 -0.453381 -0.891317 -0.103446 -0.453381 -0.885293 -0.103454 -0.453421 -0.885272 -0.205555 -0.453419 -0.867271 -0.205559 -0.453448 -0.867255 -0.304862 -0.453445 -0.837524 -0.30485 -0.453299 -0.837608 -0.40002 -0.453304 -0.796555 -0.400021 -0.45338 -0.796511 -0.489784 -0.45338 -0.744687 -0.489783 -0.453391 -0.744681 -0.572927 -0.45339 -0.682783 -0.572928 -0.453381 -0.682788 -0.648321 -0.453379 -0.61166 -0.648321 -0.453377 -0.611661 -0.71495 -0.453378 -0.532255 -0.714952 -0.45337 -0.532259 -0.771906 -0.45337 -0.445665 -0.771903 -0.453378 -0.445661 -0.818431 -0.453377 -0.353017 -0.818491 -0.453207 -0.353095 -0.853949 -0.453201 -0.255697 -0.853886 -0.453355 -0.255633 -0.877795 -0.453352 -0.15475 -0.877759 -0.453431 -0.154722 -0.889781 -0.453432 -0.0518612 -0.889731 -0.453532 -0.0518303 -0.88973 -0.453532 0.0518582 -0.889783 -0.453431 0.0518333 -0.697014 -0.706454 0.122862 -0.696902 -0.706561 0.122881 -0.677926 -0.706559 0.202955 -0.677899 -0.706585 0.202956 -0.649751 -0.70658 0.280301 -0.649823 -0.706512 0.280305 -0.612886 -0.706512 0.353852 -0.612896 -0.706503 0.353854 -0.567671 -0.706504 0.422613 -0.56766 -0.706514 0.42261 -0.514762 -0.706513 0.485654 -0.514771 -0.706503 0.485658 -0.454908 -0.706502 0.542138 -0.454906 -0.706504 0.542136 -0.388892 -0.706504 0.591283 -0.388887 -0.70651 0.591279 -0.317616 -0.706509 0.632428 -0.317627 -0.706495 0.632438 -0.242044 -0.706495 0.665041 -0.242071 -0.706454 0.665074 -0.163233 -0.706453 0.68868 -0.163172 -0.706559 0.688585 -0.0821387 -0.706558 0.702872 -0.0822047 -0.706417 0.703006 0 -0.706418 0.707795 0 -0.706418 0.707795 0.0821548 -0.706419 0.70301 0.0821882 -0.706559 0.702865 0.163208 -0.706558 0.688578 0.163196 -0.706452 0.688689 0.242057 -0.706455 0.665079 0.242057 -0.706495 0.665036 0.317622 -0.706495 0.63244 0.317621 -0.706509 0.632425 0.388888 -0.70651 0.591277 0.38889 -0.706504 0.591284 0.454907 -0.706504 0.542136 0.454908 -0.706502 0.542138 0.514769 -0.706503 0.485661 0.514764 -0.706513 0.485651 0.567663 -0.706514 0.422607 0.567669 -0.706504 0.422616 0.612894 -0.706503 0.353857 0.612887 -0.706513 0.353849 0.649813 -0.706513 0.280327 0.64976 -0.70658 0.280278 0.677902 -0.706584 0.202948 0.677923 -0.706559 0.202964 0.69691 -0.70656 0.122844 0.697008 -0.706453 0.1229 0.706563 -0.706453 0.04116 0.706556 -0.706459 0.0411574 0.706556 -0.706459 -0.0411597 0.706563 -0.706453 -0.0411578 0.697014 -0.706454 -0.122862 0.696902 -0.706561 -0.122881 0.677926 -0.706559 -0.202955 0.677899 -0.706585 -0.202956 0.649751 -0.70658 -0.280301 0.649823 -0.706512 -0.280305 0.612886 -0.706512 -0.353852 0.612896 -0.706503 -0.353854 0.567671 -0.706504 -0.422613 0.56766 -0.706514 -0.42261 0.514762 -0.706513 -0.485654 0.514771 -0.706503 -0.485658 0.454908 -0.706502 -0.542138 0.454906 -0.706504 -0.542136 0.388892 -0.706504 -0.591283 0.388887 -0.70651 -0.591279 0.317616 -0.706509 -0.632428 0.317627 -0.706495 -0.632438 0.242044 -0.706495 -0.665041 0.242071 -0.706454 -0.665074 0.163233 -0.706453 -0.68868 0.163172 -0.706559 -0.688585 0.0821387 -0.706558 -0.702872 0.0822047 -0.706417 -0.703006 0 -0.706418 -0.707795 0 -0.706418 -0.707795 -0.0821548 -0.706419 -0.70301 -0.0821882 -0.706559 -0.702865 -0.163208 -0.706558 -0.688578 -0.163196 -0.706452 -0.688689 -0.242057 -0.706455 -0.665079 -0.242057 -0.706495 -0.665036 -0.317622 -0.706495 -0.63244 -0.317621 -0.706509 -0.632425 -0.388888 -0.70651 -0.591277 -0.38889 -0.706504 -0.591284 -0.454907 -0.706504 -0.542136 -0.454908 -0.706502 -0.542138 -0.514769 -0.706503 -0.485661 -0.514764 -0.706513 -0.485651 -0.567663 -0.706514 -0.422607 -0.567669 -0.706504 -0.422616 -0.612894 -0.706503 -0.353857 -0.612887 -0.706513 -0.353849 -0.649813 -0.706513 -0.280327 -0.64976 -0.70658 -0.280278 -0.677902 -0.706584 -0.202948 -0.677923 -0.706559 -0.202964 -0.69691 -0.70656 -0.122844 -0.697008 -0.706453 -0.1229 -0.706563 -0.706453 -0.04116 -0.706556 -0.706459 -0.0411574 -0.706556 -0.706459 0.0411597 -0.706563 -0.706453 0.0411578 -0.447674 -0.890706 0.0789358 -0.447637 -0.890724 0.0789397 -0.435449 -0.890724 0.130369 -0.435514 -0.890691 0.13037 -0.417427 -0.890692 0.18006 -0.417419 -0.890696 0.180059 -0.393695 -0.890696 0.227299 -0.393699 -0.890694 0.2273 -0.364647 -0.890694 0.271471 -0.364654 -0.890691 0.271474 -0.330672 -0.890691 0.311971 -0.330666 -0.890694 0.311968 -0.292213 -0.890694 0.348246 -0.292209 -0.890697 0.348243 -0.249804 -0.890697 0.379812 -0.24981 -0.890693 0.379817 -0.204029 -0.890693 0.406248 -0.204025 -0.890696 0.406244 -0.155484 -0.890696 0.427183 -0.155477 -0.890702 0.427173 -0.104819 -0.890702 0.442338 -0.104848 -0.890673 0.442389 -0.0528032 -0.890673 0.451568 -0.0527847 -0.890697 0.451524 0 -0.890697 0.454598 0 -0.890697 0.454598 0.052798 -0.890696 0.451523 0.0527901 -0.890673 0.45157 0.104832 -0.890674 0.442392 0.104835 -0.890702 0.442333 0.15548 -0.890702 0.427172 0.155481 -0.890696 0.427184 0.204026 -0.890696 0.406243 0.204027 -0.890693 0.406249 0.249808 -0.890693 0.379818 0.249806 -0.890697 0.379811 0.29221 -0.890697 0.348242 0.292212 -0.890694 0.348247 0.330668 -0.890694 0.311967 0.330671 -0.890691 0.311972 0.364653 -0.890691 0.271475 0.364649 -0.890694 0.27147 0.393698 -0.890694 0.227301 0.393696 -0.890696 0.227298 0.41742 -0.890696 0.180057 0.417427 -0.890692 0.180062 0.435508 -0.890692 0.130387 0.435453 -0.890724 0.130351 0.447639 -0.890724 0.0789296 0.447672 -0.890706 0.078946 0.453811 -0.890706 0.0264348 0.453792 -0.890715 0.0264283 0.453792 -0.890715 -0.0264337 0.453811 -0.890706 -0.0264294 0.447674 -0.890706 -0.0789358 0.447637 -0.890724 -0.0789397 0.435449 -0.890724 -0.130369 0.435514 -0.890691 -0.13037 0.417427 -0.890692 -0.18006 0.417419 -0.890696 -0.180059 0.393695 -0.890696 -0.227299 0.393699 -0.890694 -0.2273 0.364647 -0.890694 -0.271471 0.364654 -0.890691 -0.271474 0.330672 -0.890691 -0.311971 0.330666 -0.890694 -0.311968 0.292213 -0.890694 -0.348246 0.292209 -0.890697 -0.348243 0.249804 -0.890697 -0.379812 0.24981 -0.890693 -0.379817 0.204029 -0.890693 -0.406248 0.204025 -0.890696 -0.406244 0.155484 -0.890696 -0.427183 0.155477 -0.890702 -0.427173 0.104819 -0.890702 -0.442338 0.104848 -0.890673 -0.442389 0.0528032 -0.890673 -0.451568 0.0527847 -0.890697 -0.451524 0 -0.890697 -0.454598 0 -0.890697 -0.454598 -0.052798 -0.890696 -0.451523 -0.0527901 -0.890673 -0.45157 -0.104832 -0.890674 -0.442392 -0.104835 -0.890702 -0.442333 -0.15548 -0.890702 -0.427172 -0.155481 -0.890696 -0.427184 -0.204026 -0.890696 -0.406243 -0.204027 -0.890693 -0.406249 -0.249808 -0.890693 -0.379818 -0.249806 -0.890697 -0.379811 -0.29221 -0.890697 -0.348242 -0.292212 -0.890694 -0.348247 -0.330668 -0.890694 -0.311967 -0.330671 -0.890691 -0.311972 -0.364653 -0.890691 -0.271475 -0.364649 -0.890694 -0.27147 -0.393698 -0.890694 -0.227301 -0.393696 -0.890696 -0.227298 -0.41742 -0.890696 -0.180057 -0.417427 -0.890692 -0.180062 -0.435508 -0.890692 -0.130387 -0.435453 -0.890724 -0.130351 -0.447639 -0.890724 -0.0789296 -0.447672 -0.890706 -0.078946 -0.453811 -0.890706 -0.0264348 -0.453792 -0.890715 -0.0264283 -0.453792 -0.890715 0.0264337 -0.453811 -0.890706 0.0264294 -0.154305 -0.987648 0.0272114 -0.15432 -0.987646 0.0272101 -0.150118 -0.987646 0.0449374 -0.1501 -0.987649 0.0449368 -0.143868 -0.987649 0.0620593 -0.14387 -0.987649 0.0620596 -0.135693 -0.987649 0.0783415 -0.13569 -0.987649 0.0783407 -0.125678 -0.987649 0.0935633 -0.125676 -0.98765 0.0935625 -0.113964 -0.98765 0.10752 -0.113967 -0.987649 0.107521 -0.100713 -0.987649 0.120026 -0.100713 -0.987649 0.120026 -0.0860984 -0.987649 0.130906 -0.0860967 -0.987649 0.130905 -0.0703182 -0.987649 0.140014 -0.0703187 -0.987649 0.140015 -0.0535875 -0.987649 0.147232 -0.0535894 -0.987649 0.147234 -0.0361338 -0.987649 0.15246 -0.0361332 -0.987649 0.152459 -0.0181929 -0.987649 0.155623 -0.0181876 -0.987651 0.15561 0 -0.987651 0.156669 0 -0.987651 0.156669 0.0181913 -0.987651 0.155609 0.0181893 -0.987649 0.155623 0.0361335 -0.987649 0.152459 0.0361335 -0.987649 0.15246 0.0535886 -0.987649 0.147235 0.0535883 -0.987649 0.147231 0.0703185 -0.987649 0.140015 0.0703184 -0.987649 0.140014 0.0860972 -0.987649 0.130904 0.086098 -0.987649 0.130907 0.100713 -0.987649 0.120026 0.100713 -0.987649 0.120026 0.113967 -0.987649 0.107522 0.113965 -0.98765 0.107519 0.125676 -0.98765 0.093562 0.125677 -0.987649 0.0935639 0.13569 -0.987649 0.0783401 0.135692 -0.987649 0.0783421 0.14387 -0.987649 0.0620601 0.143868 -0.987649 0.0620588 0.150102 -0.987649 0.0449325 0.150117 -0.987646 0.0449419 0.154319 -0.987646 0.0272138 0.154306 -0.987648 0.0272076 0.156421 -0.987649 0.00910975 0.156425 -0.987648 0.00911119 0.156425 -0.987648 -0.00911001 0.156421 -0.987649 -0.00911093 0.154305 -0.987648 -0.0272114 0.15432 -0.987646 -0.0272101 0.150118 -0.987646 -0.0449374 0.1501 -0.987649 -0.0449368 0.143868 -0.987649 -0.0620593 0.14387 -0.987649 -0.0620596 0.135693 -0.987649 -0.0783415 0.13569 -0.987649 -0.0783407 0.125678 -0.987649 -0.0935633 0.125676 -0.98765 -0.0935625 0.113964 -0.98765 -0.10752 0.113967 -0.987649 -0.107521 0.100713 -0.987649 -0.120026 0.100713 -0.987649 -0.120026 0.0860984 -0.987649 -0.130906 0.0860967 -0.987649 -0.130905 0.0703182 -0.987649 -0.140014 0.0703187 -0.987649 -0.140015 0.0535875 -0.987649 -0.147232 0.0535894 -0.987649 -0.147234 0.0361338 -0.987649 -0.15246 0.0361332 -0.987649 -0.152459 0.0181929 -0.987649 -0.155623 0.0181876 -0.987651 -0.15561 0 -0.987651 -0.156669 0 -0.987651 -0.156669 -0.0181913 -0.987651 -0.155609 -0.0181893 -0.987649 -0.155623 -0.0361335 -0.987649 -0.152459 -0.0361335 -0.987649 -0.15246 -0.0535886 -0.987649 -0.147235 -0.0535883 -0.987649 -0.147231 -0.0703185 -0.987649 -0.140015 -0.0703184 -0.987649 -0.140014 -0.0860972 -0.987649 -0.130904 -0.086098 -0.987649 -0.130907 -0.100713 -0.987649 -0.120026 -0.100713 -0.987649 -0.120026 -0.113967 -0.987649 -0.107522 -0.113965 -0.98765 -0.107519 -0.125676 -0.98765 -0.093562 -0.125677 -0.987649 -0.0935639 -0.13569 -0.987649 -0.0783401 -0.135692 -0.987649 -0.0783421 -0.14387 -0.987649 -0.0620601 -0.143868 -0.987649 -0.0620588 -0.150102 -0.987649 -0.0449325 -0.150117 -0.987646 -0.0449419 -0.154319 -0.987646 -0.0272138 -0.154306 -0.987648 -0.0272076 -0.156421 -0.987649 -0.00910975 -0.156425 -0.987648 -0.00911119 -0.156425 -0.987648 0.00911001 -0.156421 -0.987649 0.00911093 0.994522 0 0.104528 0.994522 0 -0.104528 0.994522 0 -0.104528 0.951057 0 -0.309015 0.951057 0 -0.309015 0.866023 0 -0.500005 0.866023 0 -0.500005 0.743146 0 -0.669129 0.743146 0 -0.669129 0.587788 0 -0.809015 0.587788 0 -0.809015 0.406735 0 -0.913546 0.406735 0 -0.913546 0.207908 0 -0.978148 0.207908 0 -0.978148 0 0 -1 0 0 -1 -0.207908 0 -0.978148 -0.207908 0 -0.978148 -0.406735 0 -0.913546 -0.406735 0 -0.913546 -0.587788 0 -0.809015 -0.587788 0 -0.809015 -0.743146 0 -0.669129 -0.743146 0 -0.669129 -0.866023 0 -0.500005 -0.866023 0 -0.500005 -0.951057 0 -0.309015 -0.951057 0 -0.309015 -0.994522 0 -0.104528 -0.994522 0 -0.104528 -0.994522 0 0.104528 -0.994522 0 0.104528 -0.951057 0 0.309015 -0.951057 0 0.309015 -0.866023 0 0.500005 -0.866023 0 0.500005 -0.743146 0 0.669129 -0.743146 0 0.669129 -0.587788 0 0.809015 -0.587788 0 0.809015 -0.406735 0 0.913546 -0.406735 0 0.913546 -0.207908 0 0.978148 -0.207908 0 0.978148 0 0 1 0 0 1 0.207908 0 0.978148 0.207908 0 0.978148 0.406735 0 0.913546 0.406735 0 0.913546 0.587788 0 0.809015 0.587788 0 0.809015 0.743146 0 0.669129 0.743146 0 0.669129 0.866023 0 0.500005 0.866023 0 0.500005 0.951057 0 0.309015 0.951057 0 0.309015 0.994522 0 0.104528</float_array>\n                    <technique_common>\n                        <accessor count=\"1560\" source=\"#shape0-lib-normals-array\" stride=\"3\">\n                            <param name=\"X\" type=\"float\"/>\n                            <param name=\"Y\" type=\"float\"/>\n                            <param name=\"Z\" type=\"float\"/>\n                        </accessor>\n                    </technique_common>\n                </source>\n                <vertices id=\"shape0-lib-vertices\">\n                    <input semantic=\"POSITION\" source=\"#shape0-lib-positions\"/>\n                </vertices>\n                <triangles count=\"1560\">\n                    <input offset=\"0\" semantic=\"VERTEX\" source=\"#shape0-lib-vertices\"/>\n                    <input offset=\"1\" semantic=\"NORMAL\" source=\"#shape0-lib-normals\"/>\n                    <p>0 0 788 0 453 0 453 1 1 1 0 1 0 2 1 2 17 2 0 3 17 3 18 3 3 4 4 4 788 4 788 5 4 5 454 5 788 6 454 6 453 6 5 7 458 7 2 7 2 8 458 8 457 8 2 9 457 9 3 9 3 10 457 10 455 10 3 11 455 11 4 11 7 12 6 12 5 12 5 13 6 13 460 13 5 14 460 14 458 14 786 15 463 15 7 15 7 16 463 16 8 16 7 17 8 17 6 17 775 18 430 18 9 18 9 19 430 19 427 19 9 20 427 20 31 20 10 21 11 21 772 21 772 22 11 22 23 22 772 23 23 23 24 23 768 24 441 24 10 24 10 25 441 25 439 25 10 26 439 26 11 26 784 27 12 27 13 27 13 28 12 28 469 28 13 29 469 29 785 29 20 30 22 30 775 30 775 31 22 31 431 31 775 32 431 32 430 32 469 33 468 33 785 33 785 34 468 34 466 34 785 35 466 35 786 35 786 36 466 36 14 36 786 37 14 37 463 37 30 38 15 38 784 38 784 39 15 39 16 39 784 40 16 40 12 40 17 41 451 41 18 41 18 42 451 42 449 42 18 43 449 43 19 43 19 44 449 44 448 44 19 45 448 45 765 45 25 46 21 46 20 46 20 47 21 47 434 47 20 48 434 48 22 48 23 49 438 49 24 49 24 50 438 50 437 50 24 51 437 51 25 51 25 52 437 52 435 52 25 53 435 53 21 53 767 54 26 54 768 54 768 55 26 55 442 55 768 56 442 56 441 56 448 57 447 57 765 57 765 58 447 58 445 58 765 59 445 59 767 59 767 60 445 60 27 60 767 61 27 61 26 61 28 62 29 62 30 62 30 63 29 63 473 63 30 64 473 64 15 64 427 65 426 65 31 65 31 66 426 66 32 66 31 67 32 67 777 67 780 68 33 68 781 68 781 69 33 69 34 69 781 70 34 70 36 70 34 71 35 71 36 71 36 72 35 72 37 72 36 73 37 73 28 73 28 74 37 74 475 74 28 75 475 75 29 75 39 76 40 76 780 76 780 77 40 77 477 77 780 78 477 78 33 78 32 79 424 79 777 79 777 80 424 80 38 80 777 81 38 81 39 81 39 82 38 82 478 82 39 83 478 83 40 83 260 84 511 84 261 84 261 85 511 85 41 85 261 86 41 86 42 86 42 87 41 87 509 87 42 88 509 88 264 88 264 89 509 89 507 89 264 90 507 90 43 90 43 91 507 91 44 91 43 92 44 92 188 92 188 93 44 93 45 93 188 94 45 94 190 94 190 95 45 95 506 95 190 96 506 96 46 96 46 97 506 97 47 97 46 98 47 98 48 98 48 99 47 99 505 99 48 100 505 100 192 100 192 101 505 101 504 101 192 102 504 102 49 102 49 103 504 103 502 103 49 104 502 104 193 104 193 105 502 105 51 105 193 106 51 106 50 106 50 107 51 107 52 107 50 108 52 108 53 108 53 109 52 109 54 109 53 110 54 110 194 110 194 111 54 111 55 111 194 112 55 112 56 112 56 113 55 113 500 113 56 114 500 114 57 114 57 115 500 115 499 115 57 116 499 116 58 116 58 117 499 117 59 117 58 118 59 118 60 118 60 119 59 119 61 119 60 120 61 120 62 120 62 121 61 121 63 121 62 122 63 122 198 122 198 123 63 123 495 123 198 124 495 124 199 124 199 125 495 125 64 125 199 126 64 126 65 126 65 127 64 127 494 127 65 128 494 128 201 128 201 129 494 129 66 129 201 130 66 130 67 130 67 131 66 131 492 131 67 132 492 132 203 132 203 133 492 133 68 133 203 134 68 134 205 134 205 135 68 135 491 135 205 136 491 136 206 136 206 137 491 137 69 137 206 138 69 138 208 138 208 139 69 139 489 139 208 140 489 140 209 140 209 141 489 141 488 141 209 142 488 142 70 142 70 143 488 143 71 143 70 144 71 144 72 144 72 145 71 145 487 145 72 146 487 146 212 146 212 147 487 147 73 147 212 148 73 148 74 148 74 149 73 149 75 149 74 150 75 150 214 150 214 151 75 151 76 151 214 152 76 152 77 152 77 153 76 153 485 153 77 154 485 154 79 154 79 155 485 155 78 155 79 156 78 156 80 156 80 157 78 157 483 157 80 158 483 158 81 158 81 159 483 159 82 159 81 160 82 160 217 160 217 161 82 161 83 161 217 162 83 162 219 162 219 163 83 163 482 163 219 164 482 164 84 164 84 165 482 165 85 165 84 166 85 166 221 166 221 167 85 167 87 167 221 168 87 168 86 168 86 169 87 169 89 169 86 170 89 170 88 170 88 171 89 171 479 171 88 172 479 172 223 172 223 173 479 173 550 173 223 174 550 174 90 174 90 175 550 175 91 175 90 176 91 176 92 176 92 177 91 177 93 177 92 178 93 178 226 178 226 179 93 179 94 179 226 180 94 180 227 180 227 181 94 181 546 181 227 182 546 182 95 182 95 183 546 183 96 183 95 184 96 184 97 184 97 185 96 185 545 185 97 186 545 186 98 186 98 187 545 187 99 187 98 188 99 188 229 188 229 189 99 189 543 189 229 190 543 190 100 190 100 191 543 191 542 191 100 192 542 192 230 192 230 193 542 193 101 193 230 194 101 194 232 194 232 195 101 195 102 195 232 196 102 196 103 196 103 197 102 197 540 197 103 198 540 198 104 198 104 199 540 199 539 199 104 200 539 200 234 200 234 201 539 201 105 201 234 202 105 202 235 202 235 203 105 203 106 203 235 204 106 204 237 204 237 205 106 205 107 205 237 206 107 206 238 206 238 207 107 207 535 207 238 208 535 208 108 208 108 209 535 209 534 209 108 210 534 210 239 210 239 211 534 211 533 211 239 212 533 212 110 212 110 213 533 213 109 213 110 214 109 214 240 214 240 215 109 215 531 215 240 216 531 216 241 216 241 217 531 217 111 217 241 218 111 218 245 218 245 219 111 219 529 219 245 220 529 220 246 220 246 221 529 221 112 221 246 222 112 222 113 222 113 223 112 223 115 223 113 224 115 224 114 224 114 225 115 225 116 225 114 226 116 226 247 226 247 227 116 227 117 227 247 228 117 228 249 228 249 229 117 229 118 229 249 230 118 230 119 230 119 231 118 231 525 231 119 232 525 232 120 232 120 233 525 233 121 233 120 234 121 234 122 234 122 235 121 235 523 235 122 236 523 236 123 236 123 237 523 237 521 237 123 238 521 238 251 238 251 239 521 239 124 239 251 240 124 240 125 240 125 241 124 241 126 241 125 242 126 242 252 242 252 243 126 243 519 243 252 244 519 244 127 244 127 245 519 245 518 245 127 246 518 246 128 246 128 247 518 247 129 247 128 248 129 248 130 248 130 249 129 249 517 249 130 250 517 250 131 250 131 251 517 251 516 251 131 252 516 252 132 252 132 253 516 253 514 253 132 254 514 254 133 254 133 255 514 255 512 255 133 256 512 256 134 256 134 257 512 257 135 257 134 258 135 258 256 258 256 259 135 259 136 259 256 260 136 260 257 260 257 261 136 261 137 261 257 262 137 262 260 262 260 263 137 263 511 263 138 264 139 264 162 264 142 265 141 265 140 265 140 266 141 266 758 266 140 267 758 267 787 267 145 268 759 268 142 268 142 269 759 269 143 269 142 270 143 270 141 270 156 271 157 271 144 271 166 272 146 272 145 272 145 273 146 273 762 273 145 274 762 274 759 274 766 275 147 275 148 275 148 276 147 276 149 276 148 277 149 277 150 277 769 278 718 278 766 278 766 279 718 279 151 279 766 280 151 280 147 280 770 281 152 281 769 281 769 282 152 282 153 282 769 283 153 283 718 283 773 284 154 284 155 284 155 285 154 285 725 285 155 286 725 286 771 286 774 287 727 287 773 287 773 288 727 288 726 288 773 289 726 289 154 289 156 290 735 290 157 290 157 291 735 291 158 291 157 292 158 292 159 292 159 293 158 293 160 293 159 294 160 294 776 294 175 295 738 295 144 295 144 296 738 296 161 296 144 297 161 297 156 297 783 298 177 298 176 298 165 299 754 299 162 299 162 300 754 300 163 300 162 301 163 301 138 301 758 302 164 302 787 302 787 303 164 303 757 303 787 304 757 304 165 304 165 305 757 305 756 305 165 306 756 306 754 306 149 307 715 307 150 307 150 308 715 308 713 308 150 309 713 309 166 309 166 310 713 310 167 310 166 311 167 311 146 311 725 312 722 312 771 312 771 313 722 313 168 313 771 314 168 314 770 314 770 315 168 315 169 315 770 316 169 316 152 316 172 317 728 317 774 317 774 318 728 318 170 318 774 319 170 319 727 319 160 320 171 320 776 320 776 321 171 321 173 321 776 322 173 322 172 322 172 323 173 323 730 323 172 324 730 324 728 324 174 325 742 325 175 325 175 326 742 326 740 326 175 327 740 327 738 327 176 328 748 328 783 328 783 329 748 329 184 329 783 330 184 330 782 330 181 331 183 331 177 331 177 332 183 332 178 332 177 333 178 333 176 333 138 334 179 334 139 334 139 335 179 335 751 335 139 336 751 336 180 336 180 337 751 337 750 337 180 338 750 338 181 338 181 339 750 339 182 339 181 340 182 340 183 340 184 341 745 341 782 341 782 342 745 342 185 342 782 343 185 343 186 343 186 344 185 344 187 344 186 345 187 345 174 345 174 346 187 346 743 346 174 347 743 347 742 347 316 348 263 348 264 348 264 349 43 349 316 349 316 350 43 350 188 350 316 351 188 351 189 351 189 352 188 352 190 352 189 353 190 353 191 353 190 354 46 354 191 354 191 355 46 355 48 355 191 356 48 356 314 356 48 357 192 357 314 357 314 358 192 358 49 358 314 359 49 359 311 359 311 360 49 360 193 360 311 361 193 361 310 361 193 362 50 362 310 362 310 363 50 363 53 363 310 364 53 364 195 364 53 365 194 365 195 365 195 366 194 366 56 366 195 367 56 367 196 367 56 368 57 368 196 368 196 369 57 369 58 369 196 370 58 370 306 370 306 371 58 371 60 371 306 372 60 372 197 372 60 373 62 373 197 373 197 374 62 374 198 374 197 375 198 375 304 375 198 376 199 376 304 376 304 377 199 377 65 377 304 378 65 378 200 378 200 379 65 379 201 379 200 380 201 380 202 380 201 381 67 381 202 381 202 382 67 382 203 382 202 383 203 383 204 383 203 384 205 384 204 384 204 385 205 385 206 385 204 386 206 386 207 386 207 387 206 387 208 387 207 388 208 388 210 388 208 389 209 389 210 389 210 390 209 390 70 390 210 391 70 391 211 391 70 392 72 392 211 392 211 393 72 393 212 393 211 394 212 394 213 394 212 395 74 395 213 395 213 396 74 396 214 396 213 397 214 397 215 397 215 398 214 398 77 398 215 399 77 399 216 399 77 400 79 400 216 400 216 401 79 401 80 401 216 402 80 402 299 402 80 403 81 403 299 403 299 404 81 404 217 404 299 405 217 405 218 405 218 406 217 406 219 406 218 407 219 407 220 407 219 408 84 408 220 408 220 409 84 409 221 409 220 410 221 410 222 410 221 411 86 411 222 411 222 412 86 412 88 412 222 413 88 413 295 413 295 414 88 414 223 414 295 415 223 415 293 415 293 416 223 416 224 416 293 417 224 417 225 417 224 418 92 418 225 418 225 419 92 419 226 419 225 420 226 420 228 420 226 421 227 421 228 421 228 422 227 422 95 422 228 423 95 423 289 423 289 424 95 424 97 424 289 425 97 425 288 425 97 426 98 426 288 426 288 427 98 427 229 427 288 428 229 428 231 428 229 429 100 429 231 429 231 430 100 430 230 430 231 431 230 431 284 431 284 432 230 432 232 432 284 433 232 433 283 433 232 434 103 434 283 434 283 435 103 435 104 435 283 436 104 436 233 436 104 437 234 437 233 437 233 438 234 438 235 438 233 439 235 439 236 439 235 440 237 440 236 440 236 441 237 441 238 441 236 442 238 442 281 442 281 443 238 443 108 443 281 444 108 444 279 444 108 445 239 445 279 445 279 446 239 446 110 446 279 447 110 447 242 447 110 448 240 448 242 448 242 449 240 449 241 449 242 450 241 450 243 450 243 451 241 451 245 451 243 452 245 452 244 452 245 453 246 453 244 453 244 454 246 454 113 454 244 455 113 455 275 455 113 456 114 456 275 456 275 457 114 457 247 457 275 458 247 458 248 458 248 459 247 459 249 459 248 460 249 460 273 460 249 461 119 461 273 461 273 462 119 462 120 462 273 463 120 463 250 463 120 464 122 464 250 464 250 465 122 465 123 465 250 466 123 466 271 466 123 467 251 467 271 467 271 468 251 468 125 468 271 469 125 469 270 469 270 470 125 470 252 470 270 471 252 471 253 471 252 472 127 472 253 472 253 473 127 473 128 473 253 474 128 474 254 474 128 475 130 475 254 475 254 476 130 476 131 476 254 477 131 477 255 477 255 478 131 478 132 478 255 479 132 479 265 479 132 480 133 480 265 480 265 481 133 481 134 481 265 482 134 482 258 482 134 483 256 483 258 483 258 484 256 484 257 484 258 485 257 485 259 485 259 486 257 486 260 486 259 487 260 487 262 487 262 488 260 488 261 488 262 489 261 489 263 489 263 490 261 490 42 490 263 491 42 491 264 491 259 492 317 492 258 492 258 493 317 493 266 493 258 494 266 494 265 494 265 495 266 495 319 495 265 496 319 496 255 496 255 497 319 497 267 497 255 498 267 498 254 498 254 499 267 499 268 499 254 500 268 500 253 500 253 501 268 501 269 501 253 502 269 502 270 502 270 503 269 503 322 503 270 504 322 504 271 504 271 505 322 505 272 505 271 506 272 506 250 506 250 507 272 507 323 507 250 508 323 508 273 508 273 509 323 509 274 509 273 510 274 510 248 510 248 511 274 511 276 511 248 512 276 512 275 512 275 513 276 513 327 513 275 514 327 514 244 514 244 515 327 515 329 515 244 516 329 516 243 516 243 517 329 517 277 517 243 518 277 518 242 518 242 519 277 519 278 519 242 520 278 520 279 520 279 521 278 521 280 521 279 522 280 522 281 522 281 523 280 523 331 523 281 524 331 524 236 524 236 525 331 525 334 525 236 526 334 526 233 526 233 527 334 527 282 527 233 528 282 528 283 528 283 529 282 529 285 529 283 530 285 530 284 530 284 531 285 531 286 531 284 532 286 532 231 532 231 533 286 533 287 533 231 534 287 534 288 534 288 535 287 535 290 535 288 536 290 536 289 536 289 537 290 537 291 537 289 538 291 538 228 538 228 539 291 539 292 539 228 540 292 540 225 540 225 541 292 541 339 541 225 542 339 542 293 542 293 543 339 543 294 543 293 544 294 544 295 544 295 545 294 545 342 545 295 546 342 546 222 546 222 547 342 547 296 547 222 548 296 548 220 548 220 549 296 549 297 549 220 550 297 550 218 550 218 551 297 551 298 551 218 552 298 552 299 552 299 553 298 553 343 553 299 554 343 554 216 554 216 555 343 555 344 555 216 556 344 556 215 556 215 557 344 557 345 557 215 558 345 558 213 558 213 559 345 559 300 559 213 560 300 560 211 560 211 561 300 561 346 561 211 562 346 562 210 562 210 563 346 563 301 563 210 564 301 564 207 564 207 565 301 565 348 565 207 566 348 566 204 566 204 567 348 567 349 567 204 568 349 568 202 568 202 569 349 569 302 569 202 570 302 570 200 570 200 571 302 571 303 571 200 572 303 572 304 572 304 573 303 573 305 573 304 574 305 574 197 574 197 575 305 575 353 575 197 576 353 576 306 576 306 577 353 577 307 577 306 578 307 578 196 578 196 579 307 579 356 579 196 580 356 580 195 580 195 581 356 581 308 581 195 582 308 582 310 582 310 583 308 583 309 583 310 584 309 584 311 584 311 585 309 585 312 585 311 586 312 586 314 586 314 587 312 587 313 587 314 588 313 588 191 588 191 589 313 589 315 589 191 590 315 590 189 590 189 591 315 591 359 591 189 592 359 592 316 592 316 593 359 593 360 593 316 594 360 594 263 594 263 595 360 595 362 595 263 596 362 596 262 596 262 597 362 597 364 597 262 598 364 598 259 598 259 599 364 599 317 599 317 600 365 600 266 600 266 601 365 601 318 601 266 602 318 602 319 602 319 603 318 603 320 603 319 604 320 604 267 604 267 605 320 605 368 605 267 606 368 606 268 606 268 607 368 607 369 607 268 608 369 608 269 608 269 609 369 609 321 609 269 610 321 610 322 610 322 611 321 611 370 611 322 612 370 612 272 612 272 613 370 613 372 613 272 614 372 614 323 614 323 615 372 615 324 615 323 616 324 616 274 616 274 617 324 617 325 617 274 618 325 618 276 618 276 619 325 619 326 619 276 620 326 620 327 620 327 621 326 621 328 621 327 622 328 622 329 622 329 623 328 623 330 623 329 624 330 624 277 624 277 625 330 625 375 625 277 626 375 626 278 626 278 627 375 627 377 627 278 628 377 628 280 628 280 629 377 629 332 629 280 630 332 630 331 630 331 631 332 631 333 631 331 632 333 632 334 632 334 633 333 633 335 633 334 634 335 634 282 634 282 635 335 635 336 635 282 636 336 636 285 636 285 637 336 637 337 637 285 638 337 638 286 638 286 639 337 639 382 639 286 640 382 640 287 640 287 641 382 641 383 641 287 642 383 642 290 642 290 643 383 643 338 643 290 644 338 644 291 644 291 645 338 645 386 645 291 646 386 646 292 646 292 647 386 647 387 647 292 648 387 648 339 648 339 649 387 649 340 649 339 650 340 650 294 650 294 651 340 651 341 651 294 652 341 652 342 652 342 653 341 653 391 653 342 654 391 654 296 654 296 655 391 655 393 655 296 656 393 656 297 656 297 657 393 657 394 657 297 658 394 658 298 658 298 659 394 659 397 659 298 660 397 660 343 660 343 661 397 661 399 661 343 662 399 662 344 662 344 663 399 663 400 663 344 664 400 664 345 664 345 665 400 665 402 665 345 666 402 666 300 666 300 667 402 667 404 667 300 668 404 668 346 668 346 669 404 669 405 669 346 670 405 670 301 670 301 671 405 671 347 671 301 672 347 672 348 672 348 673 347 673 406 673 348 674 406 674 349 674 349 675 406 675 350 675 349 676 350 676 302 676 302 677 350 677 351 677 302 678 351 678 303 678 303 679 351 679 352 679 303 680 352 680 305 680 305 681 352 681 408 681 305 682 408 682 353 682 353 683 408 683 354 683 353 684 354 684 307 684 307 685 354 685 355 685 307 686 355 686 356 686 356 687 355 687 410 687 356 688 410 688 308 688 308 689 410 689 357 689 308 690 357 690 309 690 309 691 357 691 411 691 309 692 411 692 312 692 312 693 411 693 358 693 312 694 358 694 313 694 313 695 358 695 413 695 313 696 413 696 315 696 315 697 413 697 415 697 315 698 415 698 359 698 359 699 415 699 361 699 359 700 361 700 360 700 360 701 361 701 417 701 360 702 417 702 362 702 362 703 417 703 363 703 362 704 363 704 364 704 364 705 363 705 421 705 364 706 421 706 317 706 317 707 421 707 365 707 365 708 366 708 318 708 318 709 366 709 423 709 318 710 423 710 320 710 320 711 423 711 425 711 320 712 425 712 368 712 368 713 425 713 367 713 368 714 367 714 369 714 369 715 367 715 428 715 369 716 428 716 321 716 321 717 428 717 429 717 321 718 429 718 370 718 370 719 429 719 371 719 370 720 371 720 372 720 372 721 371 721 432 721 372 722 432 722 324 722 324 723 432 723 433 723 324 724 433 724 325 724 325 725 433 725 373 725 325 726 373 726 326 726 326 727 373 727 374 727 326 728 374 728 328 728 328 729 374 729 436 729 328 730 436 730 330 730 330 731 436 731 376 731 330 732 376 732 375 732 375 733 376 733 378 733 375 734 378 734 377 734 377 735 378 735 379 735 377 736 379 736 332 736 332 737 379 737 440 737 332 738 440 738 333 738 333 739 440 739 380 739 333 740 380 740 335 740 335 741 380 741 381 741 335 742 381 742 336 742 336 743 381 743 443 743 336 744 443 744 337 744 337 745 443 745 444 745 337 746 444 746 382 746 382 747 444 747 446 747 382 748 446 748 383 748 383 749 446 749 384 749 383 750 384 750 338 750 338 751 384 751 385 751 338 752 385 752 386 752 386 753 385 753 450 753 386 754 450 754 387 754 387 755 450 755 388 755 387 756 388 756 340 756 340 757 388 757 389 757 340 758 389 758 341 758 341 759 389 759 390 759 341 760 390 760 391 760 391 761 390 761 392 761 391 762 392 762 393 762 393 763 392 763 395 763 393 764 395 764 394 764 394 765 395 765 396 765 394 766 396 766 397 766 397 767 396 767 398 767 397 768 398 768 399 768 399 769 398 769 456 769 399 770 456 770 400 770 400 771 456 771 401 771 400 772 401 772 402 772 402 773 401 773 403 773 402 774 403 774 404 774 404 775 403 775 459 775 404 776 459 776 405 776 405 777 459 777 461 777 405 778 461 778 347 778 347 779 461 779 462 779 347 780 462 780 406 780 406 781 462 781 464 781 406 782 464 782 350 782 350 783 464 783 465 783 350 784 465 784 351 784 351 785 465 785 467 785 351 786 467 786 352 786 352 787 467 787 407 787 352 788 407 788 408 788 408 789 407 789 470 789 408 790 470 790 354 790 354 791 470 791 471 791 354 792 471 792 355 792 355 793 471 793 409 793 355 794 409 794 410 794 410 795 409 795 472 795 410 796 472 796 357 796 357 797 472 797 474 797 357 798 474 798 411 798 411 799 474 799 412 799 411 800 412 800 358 800 358 801 412 801 414 801 358 802 414 802 413 802 413 803 414 803 476 803 413 804 476 804 415 804 415 805 476 805 416 805 415 806 416 806 361 806 361 807 416 807 418 807 361 808 418 808 417 808 417 809 418 809 419 809 417 810 419 810 363 810 363 811 419 811 420 811 363 812 420 812 421 812 421 813 420 813 422 813 421 814 422 814 365 814 365 815 422 815 366 815 366 816 38 816 423 816 423 817 38 817 424 817 423 818 424 818 425 818 425 819 424 819 32 819 425 820 32 820 367 820 367 821 32 821 426 821 367 822 426 822 428 822 428 823 426 823 427 823 428 824 427 824 429 824 429 825 427 825 430 825 429 826 430 826 371 826 371 827 430 827 431 827 371 828 431 828 432 828 432 829 431 829 22 829 432 830 22 830 433 830 433 831 22 831 434 831 433 832 434 832 373 832 373 833 434 833 21 833 373 834 21 834 374 834 374 835 21 835 435 835 374 836 435 836 436 836 436 837 435 837 437 837 436 838 437 838 376 838 376 839 437 839 438 839 376 840 438 840 378 840 378 841 438 841 23 841 378 842 23 842 379 842 379 843 23 843 11 843 379 844 11 844 440 844 440 845 11 845 439 845 440 846 439 846 380 846 380 847 439 847 441 847 380 848 441 848 381 848 381 849 441 849 442 849 381 850 442 850 443 850 443 851 442 851 26 851 443 852 26 852 444 852 444 853 26 853 27 853 444 854 27 854 446 854 446 855 27 855 445 855 446 856 445 856 384 856 384 857 445 857 447 857 384 858 447 858 385 858 385 859 447 859 448 859 385 860 448 860 450 860 450 861 448 861 449 861 450 862 449 862 388 862 388 863 449 863 451 863 388 864 451 864 389 864 389 865 451 865 17 865 389 866 17 866 390 866 390 867 17 867 452 867 390 868 452 868 392 868 392 869 452 869 453 869 392 870 453 870 395 870 395 871 453 871 454 871 395 872 454 872 396 872 396 873 454 873 4 873 396 874 4 874 398 874 398 875 4 875 455 875 398 876 455 876 456 876 456 877 455 877 457 877 456 878 457 878 401 878 401 879 457 879 458 879 401 880 458 880 403 880 403 881 458 881 460 881 403 882 460 882 459 882 459 883 460 883 6 883 459 884 6 884 461 884 461 885 6 885 8 885 461 886 8 886 462 886 462 887 8 887 463 887 462 888 463 888 464 888 464 889 463 889 14 889 464 890 14 890 465 890 465 891 14 891 466 891 465 892 466 892 467 892 467 893 466 893 468 893 467 894 468 894 407 894 407 895 468 895 469 895 407 896 469 896 470 896 470 897 469 897 12 897 470 898 12 898 471 898 471 899 12 899 16 899 471 900 16 900 409 900 409 901 16 901 15 901 409 902 15 902 472 902 472 903 15 903 473 903 472 904 473 904 474 904 474 905 473 905 29 905 474 906 29 906 412 906 412 907 29 907 475 907 412 908 475 908 414 908 414 909 475 909 37 909 414 910 37 910 476 910 476 911 37 911 35 911 476 912 35 912 416 912 416 913 35 913 34 913 416 914 34 914 418 914 418 915 34 915 33 915 418 916 33 916 419 916 419 917 33 917 477 917 419 918 477 918 420 918 420 919 477 919 40 919 420 920 40 920 422 920 422 921 40 921 478 921 422 922 478 922 366 922 366 923 478 923 38 923 596 924 548 924 479 924 479 925 89 925 596 925 596 926 89 926 87 926 596 927 87 927 480 927 480 928 87 928 85 928 480 929 85 929 481 929 85 930 482 930 481 930 481 931 482 931 83 931 481 932 83 932 484 932 83 933 82 933 484 933 484 934 82 934 483 934 484 935 483 935 594 935 594 936 483 936 78 936 594 937 78 937 592 937 78 938 485 938 592 938 592 939 485 939 76 939 592 940 76 940 591 940 76 941 75 941 591 941 591 942 75 942 73 942 591 943 73 943 486 943 73 944 487 944 486 944 486 945 487 945 71 945 486 946 71 946 590 946 590 947 71 947 488 947 590 948 488 948 490 948 488 949 489 949 490 949 490 950 489 950 69 950 490 951 69 951 588 951 69 952 491 952 588 952 588 953 491 953 68 953 588 954 68 954 586 954 586 955 68 955 492 955 586 956 492 956 585 956 492 957 66 957 585 957 585 958 66 958 494 958 585 959 494 959 493 959 494 960 64 960 493 960 493 961 64 961 495 961 493 962 495 962 496 962 496 963 495 963 63 963 496 964 63 964 497 964 63 965 61 965 497 965 497 966 61 966 59 966 497 967 59 967 498 967 59 968 499 968 498 968 498 969 499 969 500 969 498 970 500 970 501 970 500 971 55 971 501 971 501 972 55 972 54 972 501 973 54 973 581 973 581 974 54 974 52 974 581 975 52 975 579 975 52 976 51 976 579 976 579 977 51 977 502 977 579 978 502 978 503 978 502 979 504 979 503 979 503 980 504 980 505 980 503 981 505 981 577 981 577 982 505 982 47 982 577 983 47 983 576 983 47 984 506 984 576 984 576 985 506 985 45 985 576 986 45 986 575 986 45 987 44 987 575 987 575 988 44 988 507 988 575 989 507 989 508 989 508 990 507 990 509 990 508 991 509 991 573 991 573 992 509 992 510 992 573 993 510 993 572 993 510 994 511 994 572 994 572 995 511 995 137 995 572 996 137 996 570 996 137 997 136 997 570 997 570 998 136 998 135 998 570 999 135 999 513 999 513 1000 135 1000 512 1000 513 1001 512 1001 515 1001 512 1002 514 1002 515 1002 515 1003 514 1003 516 1003 515 1004 516 1004 568 1004 516 1005 517 1005 568 1005 568 1006 517 1006 129 1006 568 1007 129 1007 567 1007 567 1008 129 1008 518 1008 567 1009 518 1009 566 1009 518 1010 519 1010 566 1010 566 1011 519 1011 126 1011 566 1012 126 1012 520 1012 126 1013 124 1013 520 1013 520 1014 124 1014 521 1014 520 1015 521 1015 522 1015 521 1016 523 1016 522 1016 522 1017 523 1017 121 1017 522 1018 121 1018 524 1018 524 1019 121 1019 525 1019 524 1020 525 1020 526 1020 525 1021 118 1021 526 1021 526 1022 118 1022 117 1022 526 1023 117 1023 527 1023 117 1024 116 1024 527 1024 527 1025 116 1025 115 1025 527 1026 115 1026 528 1026 528 1027 115 1027 112 1027 528 1028 112 1028 530 1028 112 1029 529 1029 530 1029 530 1030 529 1030 111 1030 530 1031 111 1031 562 1031 111 1032 531 1032 562 1032 562 1033 531 1033 109 1033 562 1034 109 1034 532 1034 532 1035 109 1035 533 1035 532 1036 533 1036 536 1036 533 1037 534 1037 536 1037 536 1038 534 1038 535 1038 536 1039 535 1039 537 1039 535 1040 107 1040 537 1040 537 1041 107 1041 106 1041 537 1042 106 1042 538 1042 106 1043 105 1043 538 1043 538 1044 105 1044 539 1044 538 1045 539 1045 557 1045 557 1046 539 1046 540 1046 557 1047 540 1047 541 1047 540 1048 102 1048 541 1048 541 1049 102 1049 101 1049 541 1050 101 1050 554 1050 101 1051 542 1051 554 1051 554 1052 542 1052 543 1052 554 1053 543 1053 544 1053 544 1054 543 1054 99 1054 544 1055 99 1055 552 1055 99 1056 545 1056 552 1056 552 1057 545 1057 96 1057 552 1058 96 1058 547 1058 96 1059 546 1059 547 1059 547 1060 546 1060 94 1060 547 1061 94 1061 600 1061 600 1062 94 1062 93 1062 600 1063 93 1063 599 1063 599 1064 93 1064 549 1064 599 1065 549 1065 548 1065 548 1066 549 1066 550 1066 548 1067 550 1067 479 1067 600 1068 551 1068 547 1068 547 1069 551 1069 601 1069 547 1070 601 1070 552 1070 552 1071 601 1071 553 1071 552 1072 553 1072 544 1072 544 1073 553 1073 603 1073 544 1074 603 1074 554 1074 554 1075 603 1075 555 1075 554 1076 555 1076 541 1076 541 1077 555 1077 556 1077 541 1078 556 1078 557 1078 557 1079 556 1079 558 1079 557 1080 558 1080 538 1080 538 1081 558 1081 559 1081 538 1082 559 1082 537 1082 537 1083 559 1083 607 1083 537 1084 607 1084 536 1084 536 1085 607 1085 560 1085 536 1086 560 1086 532 1086 532 1087 560 1087 561 1087 532 1088 561 1088 562 1088 562 1089 561 1089 563 1089 562 1090 563 1090 530 1090 530 1091 563 1091 610 1091 530 1092 610 1092 528 1092 528 1093 610 1093 564 1093 528 1094 564 1094 527 1094 527 1095 564 1095 612 1095 527 1096 612 1096 526 1096 526 1097 612 1097 613 1097 526 1098 613 1098 524 1098 524 1099 613 1099 614 1099 524 1100 614 1100 522 1100 522 1101 614 1101 616 1101 522 1102 616 1102 520 1102 520 1103 616 1103 565 1103 520 1104 565 1104 566 1104 566 1105 565 1105 617 1105 566 1106 617 1106 567 1106 567 1107 617 1107 619 1107 567 1108 619 1108 568 1108 568 1109 619 1109 569 1109 568 1110 569 1110 515 1110 515 1111 569 1111 620 1111 515 1112 620 1112 513 1112 513 1113 620 1113 623 1113 513 1114 623 1114 570 1114 570 1115 623 1115 625 1115 570 1116 625 1116 572 1116 572 1117 625 1117 571 1117 572 1118 571 1118 573 1118 573 1119 571 1119 626 1119 573 1120 626 1120 508 1120 508 1121 626 1121 574 1121 508 1122 574 1122 575 1122 575 1123 574 1123 628 1123 575 1124 628 1124 576 1124 576 1125 628 1125 629 1125 576 1126 629 1126 577 1126 577 1127 629 1127 630 1127 577 1128 630 1128 503 1128 503 1129 630 1129 578 1129 503 1130 578 1130 579 1130 579 1131 578 1131 580 1131 579 1132 580 1132 581 1132 581 1133 580 1133 631 1133 581 1134 631 1134 501 1134 501 1135 631 1135 582 1135 501 1136 582 1136 498 1136 498 1137 582 1137 633 1137 498 1138 633 1138 497 1138 497 1139 633 1139 583 1139 497 1140 583 1140 496 1140 496 1141 583 1141 634 1141 496 1142 634 1142 493 1142 493 1143 634 1143 584 1143 493 1144 584 1144 585 1144 585 1145 584 1145 587 1145 585 1146 587 1146 586 1146 586 1147 587 1147 636 1147 586 1148 636 1148 588 1148 588 1149 636 1149 638 1149 588 1150 638 1150 490 1150 490 1151 638 1151 589 1151 490 1152 589 1152 590 1152 590 1153 589 1153 640 1153 590 1154 640 1154 486 1154 486 1155 640 1155 642 1155 486 1156 642 1156 591 1156 591 1157 642 1157 593 1157 591 1158 593 1158 592 1158 592 1159 593 1159 643 1159 592 1160 643 1160 594 1160 594 1161 643 1161 646 1161 594 1162 646 1162 484 1162 484 1163 646 1163 647 1163 484 1164 647 1164 481 1164 481 1165 647 1165 595 1165 481 1166 595 1166 480 1166 480 1167 595 1167 597 1167 480 1168 597 1168 596 1168 596 1169 597 1169 652 1169 596 1170 652 1170 548 1170 548 1171 652 1171 598 1171 548 1172 598 1172 599 1172 599 1173 598 1173 653 1173 599 1174 653 1174 600 1174 600 1175 653 1175 551 1175 551 1176 602 1176 601 1176 601 1177 602 1177 655 1177 601 1178 655 1178 553 1178 553 1179 655 1179 658 1179 553 1180 658 1180 603 1180 603 1181 658 1181 604 1181 603 1182 604 1182 555 1182 555 1183 604 1183 605 1183 555 1184 605 1184 556 1184 556 1185 605 1185 606 1185 556 1186 606 1186 558 1186 558 1187 606 1187 660 1187 558 1188 660 1188 559 1188 559 1189 660 1189 661 1189 559 1190 661 1190 607 1190 607 1191 661 1191 663 1191 607 1192 663 1192 560 1192 560 1193 663 1193 608 1193 560 1194 608 1194 561 1194 561 1195 608 1195 664 1195 561 1196 664 1196 563 1196 563 1197 664 1197 609 1197 563 1198 609 1198 610 1198 610 1199 609 1199 611 1199 610 1200 611 1200 564 1200 564 1201 611 1201 666 1201 564 1202 666 1202 612 1202 612 1203 666 1203 668 1203 612 1204 668 1204 613 1204 613 1205 668 1205 669 1205 613 1206 669 1206 614 1206 614 1207 669 1207 615 1207 614 1208 615 1208 616 1208 616 1209 615 1209 672 1209 616 1210 672 1210 565 1210 565 1211 672 1211 674 1211 565 1212 674 1212 617 1212 617 1213 674 1213 618 1213 617 1214 618 1214 619 1214 619 1215 618 1215 676 1215 619 1216 676 1216 569 1216 569 1217 676 1217 621 1217 569 1218 621 1218 620 1218 620 1219 621 1219 622 1219 620 1220 622 1220 623 1220 623 1221 622 1221 624 1221 623 1222 624 1222 625 1222 625 1223 624 1223 679 1223 625 1224 679 1224 571 1224 571 1225 679 1225 680 1225 571 1226 680 1226 626 1226 626 1227 680 1227 627 1227 626 1228 627 1228 574 1228 574 1229 627 1229 681 1229 574 1230 681 1230 628 1230 628 1231 681 1231 683 1231 628 1232 683 1232 629 1232 629 1233 683 1233 684 1233 629 1234 684 1234 630 1234 630 1235 684 1235 685 1235 630 1236 685 1236 578 1236 578 1237 685 1237 687 1237 578 1238 687 1238 580 1238 580 1239 687 1239 689 1239 580 1240 689 1240 631 1240 631 1241 689 1241 632 1241 631 1242 632 1242 582 1242 582 1243 632 1243 691 1243 582 1244 691 1244 633 1244 633 1245 691 1245 692 1245 633 1246 692 1246 583 1246 583 1247 692 1247 635 1247 583 1248 635 1248 634 1248 634 1249 635 1249 694 1249 634 1250 694 1250 584 1250 584 1251 694 1251 695 1251 584 1252 695 1252 587 1252 587 1253 695 1253 637 1253 587 1254 637 1254 636 1254 636 1255 637 1255 639 1255 636 1256 639 1256 638 1256 638 1257 639 1257 699 1257 638 1258 699 1258 589 1258 589 1259 699 1259 701 1259 589 1260 701 1260 640 1260 640 1261 701 1261 702 1261 640 1262 702 1262 642 1262 642 1263 702 1263 641 1263 642 1264 641 1264 593 1264 593 1265 641 1265 704 1265 593 1266 704 1266 643 1266 643 1267 704 1267 644 1267 643 1268 644 1268 646 1268 646 1269 644 1269 645 1269 646 1270 645 1270 647 1270 647 1271 645 1271 648 1271 647 1272 648 1272 595 1272 595 1273 648 1273 649 1273 595 1274 649 1274 597 1274 597 1275 649 1275 650 1275 597 1276 650 1276 652 1276 652 1277 650 1277 651 1277 652 1278 651 1278 598 1278 598 1279 651 1279 711 1279 598 1280 711 1280 653 1280 653 1281 711 1281 654 1281 653 1282 654 1282 551 1282 551 1283 654 1283 602 1283 602 1284 761 1284 655 1284 655 1285 761 1285 656 1285 655 1286 656 1286 658 1286 658 1287 656 1287 657 1287 658 1288 657 1288 604 1288 604 1289 657 1289 714 1289 604 1290 714 1290 605 1290 605 1291 714 1291 659 1291 605 1292 659 1292 606 1292 606 1293 659 1293 716 1293 606 1294 716 1294 660 1294 660 1295 716 1295 717 1295 660 1296 717 1296 661 1296 661 1297 717 1297 662 1297 661 1298 662 1298 663 1298 663 1299 662 1299 719 1299 663 1300 719 1300 608 1300 608 1301 719 1301 720 1301 608 1302 720 1302 664 1302 664 1303 720 1303 721 1303 664 1304 721 1304 609 1304 609 1305 721 1305 665 1305 609 1306 665 1306 611 1306 611 1307 665 1307 667 1307 611 1308 667 1308 666 1308 666 1309 667 1309 723 1309 666 1310 723 1310 668 1310 668 1311 723 1311 724 1311 668 1312 724 1312 669 1312 669 1313 724 1313 670 1313 669 1314 670 1314 615 1314 615 1315 670 1315 671 1315 615 1316 671 1316 672 1316 672 1317 671 1317 673 1317 672 1318 673 1318 674 1318 674 1319 673 1319 675 1319 674 1320 675 1320 618 1320 618 1321 675 1321 729 1321 618 1322 729 1322 676 1322 676 1323 729 1323 731 1323 676 1324 731 1324 621 1324 621 1325 731 1325 677 1325 621 1326 677 1326 622 1326 622 1327 677 1327 732 1327 622 1328 732 1328 624 1328 624 1329 732 1329 678 1329 624 1330 678 1330 679 1330 679 1331 678 1331 733 1331 679 1332 733 1332 680 1332 680 1333 733 1333 734 1333 680 1334 734 1334 627 1334 627 1335 734 1335 736 1335 627 1336 736 1336 681 1336 681 1337 736 1337 682 1337 681 1338 682 1338 683 1338 683 1339 682 1339 739 1339 683 1340 739 1340 684 1340 684 1341 739 1341 741 1341 684 1342 741 1342 685 1342 685 1343 741 1343 686 1343 685 1344 686 1344 687 1344 687 1345 686 1345 688 1345 687 1346 688 1346 689 1346 689 1347 688 1347 690 1347 689 1348 690 1348 632 1348 632 1349 690 1349 744 1349 632 1350 744 1350 691 1350 691 1351 744 1351 746 1351 691 1352 746 1352 692 1352 692 1353 746 1353 747 1353 692 1354 747 1354 635 1354 635 1355 747 1355 693 1355 635 1356 693 1356 694 1356 694 1357 693 1357 749 1357 694 1358 749 1358 695 1358 695 1359 749 1359 696 1359 695 1360 696 1360 637 1360 637 1361 696 1361 697 1361 637 1362 697 1362 639 1362 639 1363 697 1363 698 1363 639 1364 698 1364 699 1364 699 1365 698 1365 752 1365 699 1366 752 1366 701 1366 701 1367 752 1367 700 1367 701 1368 700 1368 702 1368 702 1369 700 1369 703 1369 702 1370 703 1370 641 1370 641 1371 703 1371 705 1371 641 1372 705 1372 704 1372 704 1373 705 1373 753 1373 704 1374 753 1374 644 1374 644 1375 753 1375 706 1375 644 1376 706 1376 645 1376 645 1377 706 1377 755 1377 645 1378 755 1378 648 1378 648 1379 755 1379 707 1379 648 1380 707 1380 649 1380 649 1381 707 1381 708 1381 649 1382 708 1382 650 1382 650 1383 708 1383 709 1383 650 1384 709 1384 651 1384 651 1385 709 1385 710 1385 651 1386 710 1386 711 1386 711 1387 710 1387 712 1387 711 1388 712 1388 654 1388 654 1389 712 1389 760 1389 654 1390 760 1390 602 1390 602 1391 760 1391 761 1391 761 1392 146 1392 656 1392 656 1393 146 1393 167 1393 656 1394 167 1394 657 1394 657 1395 167 1395 713 1395 657 1396 713 1396 714 1396 714 1397 713 1397 715 1397 714 1398 715 1398 659 1398 659 1399 715 1399 149 1399 659 1400 149 1400 716 1400 716 1401 149 1401 147 1401 716 1402 147 1402 717 1402 717 1403 147 1403 151 1403 717 1404 151 1404 662 1404 662 1405 151 1405 718 1405 662 1406 718 1406 719 1406 719 1407 718 1407 153 1407 719 1408 153 1408 720 1408 720 1409 153 1409 152 1409 720 1410 152 1410 721 1410 721 1411 152 1411 169 1411 721 1412 169 1412 665 1412 665 1413 169 1413 168 1413 665 1414 168 1414 667 1414 667 1415 168 1415 722 1415 667 1416 722 1416 723 1416 723 1417 722 1417 725 1417 723 1418 725 1418 724 1418 724 1419 725 1419 154 1419 724 1420 154 1420 670 1420 670 1421 154 1421 726 1421 670 1422 726 1422 671 1422 671 1423 726 1423 727 1423 671 1424 727 1424 673 1424 673 1425 727 1425 170 1425 673 1426 170 1426 675 1426 675 1427 170 1427 728 1427 675 1428 728 1428 729 1428 729 1429 728 1429 730 1429 729 1430 730 1430 731 1430 731 1431 730 1431 173 1431 731 1432 173 1432 677 1432 677 1433 173 1433 171 1433 677 1434 171 1434 732 1434 732 1435 171 1435 160 1435 732 1436 160 1436 678 1436 678 1437 160 1437 158 1437 678 1438 158 1438 733 1438 733 1439 158 1439 735 1439 733 1440 735 1440 734 1440 734 1441 735 1441 156 1441 734 1442 156 1442 736 1442 736 1443 156 1443 737 1443 736 1444 737 1444 682 1444 682 1445 737 1445 738 1445 682 1446 738 1446 739 1446 739 1447 738 1447 740 1447 739 1448 740 1448 741 1448 741 1449 740 1449 742 1449 741 1450 742 1450 686 1450 686 1451 742 1451 743 1451 686 1452 743 1452 688 1452 688 1453 743 1453 187 1453 688 1454 187 1454 690 1454 690 1455 187 1455 185 1455 690 1456 185 1456 744 1456 744 1457 185 1457 745 1457 744 1458 745 1458 746 1458 746 1459 745 1459 184 1459 746 1460 184 1460 747 1460 747 1461 184 1461 748 1461 747 1462 748 1462 693 1462 693 1463 748 1463 176 1463 693 1464 176 1464 749 1464 749 1465 176 1465 178 1465 749 1466 178 1466 696 1466 696 1467 178 1467 183 1467 696 1468 183 1468 697 1468 697 1469 183 1469 182 1469 697 1470 182 1470 698 1470 698 1471 182 1471 750 1471 698 1472 750 1472 752 1472 752 1473 750 1473 751 1473 752 1474 751 1474 700 1474 700 1475 751 1475 179 1475 700 1476 179 1476 703 1476 703 1477 179 1477 138 1477 703 1478 138 1478 705 1478 705 1479 138 1479 163 1479 705 1480 163 1480 753 1480 753 1481 163 1481 754 1481 753 1482 754 1482 706 1482 706 1483 754 1483 756 1483 706 1484 756 1484 755 1484 755 1485 756 1485 757 1485 755 1486 757 1486 707 1486 707 1487 757 1487 164 1487 707 1488 164 1488 708 1488 708 1489 164 1489 758 1489 708 1490 758 1490 709 1490 709 1491 758 1491 141 1491 709 1492 141 1492 710 1492 710 1493 141 1493 143 1493 710 1494 143 1494 712 1494 712 1495 143 1495 759 1495 712 1496 759 1496 760 1496 760 1497 759 1497 762 1497 760 1498 762 1498 761 1498 761 1499 762 1499 146 1499 142 1500 764 1500 763 1500 763 1501 764 1501 18 1501 763 1502 18 1502 166 1502 166 1503 18 1503 19 1503 166 1504 19 1504 150 1504 150 1505 19 1505 765 1505 150 1506 765 1506 148 1506 148 1507 765 1507 767 1507 148 1508 767 1508 766 1508 766 1509 767 1509 768 1509 766 1510 768 1510 769 1510 769 1511 768 1511 10 1511 769 1512 10 1512 770 1512 770 1513 10 1513 772 1513 770 1514 772 1514 771 1514 771 1515 772 1515 24 1515 771 1516 24 1516 155 1516 155 1517 24 1517 25 1517 155 1518 25 1518 773 1518 773 1519 25 1519 20 1519 773 1520 20 1520 774 1520 774 1521 20 1521 775 1521 774 1522 775 1522 172 1522 172 1523 775 1523 9 1523 172 1524 9 1524 776 1524 776 1525 9 1525 31 1525 776 1526 31 1526 159 1526 159 1527 31 1527 777 1527 159 1528 777 1528 157 1528 157 1529 777 1529 778 1529 157 1530 778 1530 779 1530 779 1531 778 1531 780 1531 779 1532 780 1532 175 1532 175 1533 780 1533 781 1533 175 1534 781 1534 174 1534 174 1535 781 1535 36 1535 174 1536 36 1536 186 1536 186 1537 36 1537 28 1537 186 1538 28 1538 782 1538 782 1539 28 1539 30 1539 782 1540 30 1540 783 1540 783 1541 30 1541 784 1541 783 1542 784 1542 177 1542 177 1543 784 1543 13 1543 177 1544 13 1544 181 1544 181 1545 13 1545 785 1545 181 1546 785 1546 180 1546 180 1547 785 1547 786 1547 180 1548 786 1548 139 1548 139 1549 786 1549 7 1549 139 1550 7 1550 162 1550 162 1551 7 1551 5 1551 162 1552 5 1552 165 1552 165 1553 5 1553 2 1553 165 1554 2 1554 787 1554 787 1555 2 1555 3 1555 787 1556 3 1556 140 1556 140 1557 3 1557 788 1557 140 1558 788 1558 142 1558 142 1559 788 1559 764 1559</p>\n                </triangles>\n            </mesh>\n        </geometry>\n    </library_geometries>\n    <library_visual_scenes>\n        <visual_scene id=\"VisualSceneNode\" name=\"VisualScene\">\n            <node id=\"node\" name=\"node\">\n                <instance_geometry url=\"#shape0-lib\">\n                    <bind_material>\n                        <technique_common/>\n                    </bind_material>\n                </instance_geometry>\n            </node>\n        </visual_scene>\n    </library_visual_scenes>\n    <scene>\n        <instance_visual_scene url=\"#VisualSceneNode\"/>\n    </scene>\n</COLLADA>\n"
  },
  {
    "path": "agvs_description/meshes/chassis_agvs.dae",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<COLLADA xmlns=\"http://www.collada.org/2005/11/COLLADASchema\" version=\"1.4.1\">\n    <asset>\n        <contributor>\n            <author>VCGLab</author>\n            <authoring_tool>VCGLib | MeshLab</authoring_tool>\n        </contributor>\n        <up_axis>Y_UP</up_axis>\n        <created>Wed Feb 26 13:36:10 2014</created>\n        <modified>Wed Feb 26 13:36:10 2014</modified>\n    </asset>\n    <library_images/>\n    <library_materials/>\n    <library_effects/>\n    <library_geometries>\n        <geometry id=\"shape0-lib\" name=\"shape0\">\n            <mesh>\n                <source id=\"shape0-lib-positions\" name=\"position\">\n                    <float_array id=\"shape0-lib-positions-array\" count=\"5709\">-0.55 0.224 0.281297 -0.55 0.224 0.3335 0.4615 0.224 0.272 0.3455 0.224 0.272 0.153 0.224 0.272 -0.4615 0.224 0.0335 -0.461 0.224 0.055 -0.3455 0.224 0.0335 0.4615 0.224 0.085 0.361 0.224 0.055 0.361 0.224 0.085 0.461 0.224 0.085 -0.06 0.224 0.1595 -0.5495 0.224 0.272 -0.5495 0.224 0.281297 -0.153 0.224 0.272 -0.4615 0.224 0.272 0.74 -0.0825 0.273 0.74 -0.0825 0.272 0.74 -0.0795 0.272 0.5495 0.204 0.272 0.5495 0.204 0.085 0.5495 0.205 0.272 0.5495 0.205 0.085 0.5495 -0.204 0.272 -0.74 -0.0825 0.272 -0.5495 0.204 0.085 -0.5495 0.204 0.272 -0.5495 -0.205 0.272 -0.5495 -0.204 0.085 -0.4615 0.204 0.085 0.4615 0.224 0.0335 0.4615 -0.204 0.0335 -0.4615 -0.204 0.085 -0.74 0.0825 0.272 -0.69 -0.0945 0.272 -0.676101 0.0825 0.272 -0.4915 0.224 0.272 -0.3505 -0.05 0.272 -0.3605 -0.204 0.272 -0.4615 -0.204 0.272 -0.606769 0.196838 0.272 -0.4615 0.204 0.272 -0.3605 0.204 0.272 -0.412544 0.0529966 0.272 -0.396131 0.0189143 0.272 -0.5495 -0.204 0.272 -0.545456 0.0529966 0.272 -0.545456 -0.0529966 0.272 -0.4915 -0.204 0.272 -0.44212 -0.0765824 0.272 -0.3605 0.05 0.272 -0.396131 -0.0189143 0.272 -0.4915 0.204 0.272 -0.4615 0.204 0.242 -0.3605 0.204 0.0335 -0.4615 -0.204 0.242 -0.3455 0.224 0.272 0.4615 -0.224 0.272 0.479 0.085 0.272 0.3605 0.166 0.272 0.44212 0.0765823 0.272 0.69 -0.0825 0.272 0.5495 -0.205 0.272 0.659477 -0.173003 0.272 0.69 -0.0945 0.272 0.703429 0.135392 0.272 0.606769 0.196838 0.272 0.4915 0.224 0.272 0.3455 -0.166 0.272 0.412544 0.0529966 0.272 0.561869 -0.0189143 0.272 0.561869 0.0189143 0.272 0.4915 0.204 0.272 0.396131 0.0189143 0.272 0.396131 -0.0189143 0.272 0.412544 -0.0529966 0.272 0.3605 0.204 0.272 0.3605 0.204 0.0335 0.4615 0.204 0.085 0.4615 0.204 0.242 0.4915 -0.204 0.272 0.5495 -0.204 0.085 0.4615 -0.204 0.242 0.138 0.204 0.272 -0.138 -0.204 0.272 -0.153 -0.224 0.0335 0.3455 0.166 0.272 0.3455 0.166 0.0535 0.3455 0.224 0.0335 0.3455 -0.224 0.0335 0.4615 0.204 0.272 0.06 0.204 0.0335 0.138 0.204 0.0335 -0.138 0.204 0.272 -0.55 0.204 0.3335 -0.55 0.222 0.282 -0.4615 0.204 0.0335 -0.4615 -0.204 0.0335 -0.3455 -0.224 0.0335 -0.06 -0.204 0.0335 -0.138 -0.204 0.0335 -0.06 -0.224 0.0335 -0.138 0.204 0.0335 -0.153 0.224 0.0335 -0.06 0.224 0.0335 -0.06 0.204 0.0335 0.06 0.224 0.1595 -0.06 0.204 0.1595 0.06 0.204 0.1595 0.06 0.224 0.0335 0.153 0.224 0.0335 0.138 -0.204 0.0335 0.06 -0.204 0.0335 0.4615 0.204 0.0335 0.55 0.222 0.281297 0.55 0.224 0.3335 0.55 0.204 0.3335 -0.55 0.204 0.282 -0.704606 -0.159314 0.282 -0.704606 0.159314 0.282 -0.74 0.0825 0.282 -0.659072 0.193358 0.282 -0.606385 -0.21472 0.282 -0.659072 -0.193358 0.282 -0.676101 -0.0825 0.282 0.704606 -0.159314 0.282 0.659072 -0.193358 0.282 0.606385 0.21472 0.282 0.55 0.204 0.282 0.676101 0.0825 0.282 0.704606 0.159314 0.282 0.74 0.114822 0.282 0.606385 -0.21472 0.282 0.545456 -0.0529966 0.282 0.51588 -0.0765824 0.282 -0.51588 -0.0765824 0.282 -0.545456 -0.0529966 0.282 0.55 -0.204 0.282 -0.55 -0.204 0.282 -0.51588 0.0765823 0.282 -0.676101 0.0825 0.282 -0.479 0.085 0.282 -0.44212 0.0765823 0.282 0.396131 -0.0189143 0.282 0.396131 0.0189143 0.282 0.44212 0.0765823 0.282 0.561869 0.0189143 0.282 -0.412544 0.0529966 0.282 -0.396131 -0.0189143 0.282 -0.412544 -0.0529966 0.282 0.4615 -0.204 0.272 -0.55 -0.224 0.3335 -0.55 -0.204 0.3335 0.55 -0.224 0.3335 0.55 -0.224 0.281297 0.06 -0.204 0.1595 0.06 -0.224 0.1595 -0.06 -0.224 0.1595 -0.06 -0.204 0.1595 -0.55 -0.224 0.281297 -0.5495 -0.224 0.281297 0.5495 -0.224 0.281297 -0.153 -0.224 0.272 -0.461 -0.224 0.055 -0.4615 -0.224 0.0335 -0.361 -0.224 0.085 0.06 -0.224 0.0335 0.153 -0.224 0.0335 0.153 -0.224 0.272 -0.3455 -0.224 0.272 -0.4615 -0.224 0.272 0.461 -0.224 0.055 0.4615 -0.224 0.0335 0.461 -0.224 0.085 0.3455 -0.224 0.272 0.55 -0.204 0.3335 0.74 -0.114822 0.281297 0.704606 -0.159314 0.281297 0.659072 -0.193358 0.281297 0.55 -0.222 0.282 0.74 -0.114822 0.282 0.74 -0.0825 0.281297 0.676101 -0.0825 0.282 0.737167 -0.0825 0.281297 0.74 -0.0825 0.282 0.676101 0.0825 0.272 0.676101 -0.0825 0.272 0.737167 0.0825 0.281297 0.69 0.0825 0.272 0.74 0.0825 0.272 0.74 0.0825 0.282 0.74 0.114822 0.281297 0.74 0.0825 0.281297 0.55 0.222 0.282 0.606385 0.21472 0.281297 0.659072 0.193358 0.282 -0.74 0.114822 0.282 -0.606385 0.21472 0.282 -0.659072 0.193358 0.281297 -0.606385 0.21472 0.281297 -0.55 0.222 0.281297 -0.737167 0.0825 0.273 -0.737167 0.0825 0.281297 -0.676101 -0.0825 0.272 -0.737167 -0.0825 0.281297 -0.69 -0.0825 0.272 -0.737167 -0.0825 0.273 -0.74 -0.114822 0.282 -0.74 -0.114822 0.281297 -0.74 -0.0825 0.282 -0.55 -0.222 0.281297 -0.55 -0.222 0.282 -0.606385 -0.21472 0.281297 -0.659072 -0.193358 0.281297 -0.704606 -0.159314 0.281297 0.479 -0.085 0.272 0.479 -0.085 0.282 0.51588 -0.0765824 0.272 0.545456 -0.0529966 0.272 0.561869 -0.0189143 0.282 0.545456 0.0529966 0.282 0.545456 0.0529966 0.272 0.51588 0.0765823 0.282 0.51588 0.0765823 0.272 0.479 0.085 0.282 0.412544 0.0529966 0.282 0.412544 -0.0529966 0.282 0.44212 -0.0765824 0.282 0.44212 -0.0765824 0.272 -0.479 -0.085 0.282 -0.479 -0.085 0.272 -0.44212 -0.0765824 0.282 -0.412544 -0.0529966 0.272 -0.396131 0.0189143 0.282 -0.44212 0.0765823 0.272 -0.479 0.085 0.272 -0.51588 0.0765823 0.272 -0.545456 0.0529966 0.282 -0.561869 0.0189143 0.282 -0.561869 -0.0189143 0.282 -0.561869 0.0189143 0.272 -0.561869 -0.0189143 0.272 -0.51588 -0.0765824 0.272 0.3605 -0.166 0.272 0.3605 -0.204 0.272 0.3605 -0.166 0.0535 0.3605 -0.204 0.0335 0.3455 -0.166 0.0535 0.3605 0.166 0.0535 0.138 -0.204 0.272 -0.3605 -0.204 0.0335 -0.3605 -0.05 0.237 0.5495 0.294 0.085 0.4615 0.292 0.085 -0.4615 0.292 0.085 0.659477 0.173003 0.085 0.763976 0.147697 0.085 0.670828 0.230219 0.085 0.722412 0.194613 0.085 0.4615 0.224 0.242 0.4615 0.26 0.085 0.4615 0.292 0.242 0.4915 0.294 0.272 0.5495 0.224 0.272 0.5495 0.257142 0.272 0.5495 0.294 0.272 0.5495 0.279484 0.221099 0.5495 0.257817 0.185407 0.5495 0.285376 0.0958323 0.5495 0.238324 0.176784 0.5495 0.233891 0.116524 0.4815 0.294 0.262 -0.4815 0.294 0.262 -0.5495 0.294 0.085 0.4615 0.29 0.085 0.461 0.26 0.085 0.361 0.29 0.085 -0.4615 0.26 0.085 -0.55 0.26 0.085 -0.5495 0.205 0.085 -0.612222 0.252445 0.085 -0.606769 0.196838 0.085 -0.703429 0.135392 0.085 -0.793104 0.0921973 0.085 -0.5495 0.268506 0.261385 -0.5495 0.294 0.272 -0.5495 0.278139 0.242371 -0.5495 0.272322 0.201024 -0.5495 0.285376 0.0958323 -0.5495 0.233891 0.116524 -0.4915 0.294 0.272 -0.4815 0.292 0.262 -0.4615 0.292 0.242 -0.4615 0.224 0.242 -0.4615 0.224 0.085 -0.55 -0.29 0.085 -0.808104 0.0313395 0.085 -0.847813 0.036161 0.085 -0.847813 -0.036161 0.085 -0.756736 -0.202862 0.085 -0.786277 -0.167441 0.085 -0.809829 -0.127785 0.085 -0.595477 0.286332 0.085 -0.689417 -0.265637 0.085 -0.621795 -0.291283 0.085 -0.640291 -0.275422 0.085 -0.796895 0.170419 0.085 -0.786277 0.167441 0.085 0.4615 -0.292 0.085 0.5495 -0.294 0.085 -0.795012 -0.087 0.085 -0.703429 -0.135392 0.085 -0.793104 -0.0921973 0.085 -0.5495 -0.205 0.085 -0.612222 -0.252445 0.085 -0.722412 -0.194613 0.085 -0.4615 -0.224 0.085 -0.4615 -0.224 0.242 -0.4615 -0.29 0.085 -0.4915 -0.294 0.272 -0.4815 -0.294 0.262 -0.4915 -0.224 0.272 -0.4815 -0.292 0.262 -0.5495 -0.257142 0.272 -0.5495 -0.29 0.085 -0.5495 -0.268506 0.261385 -0.5495 -0.278139 0.242371 -0.5495 -0.294 0.085 -0.5495 -0.28029 0.0990362 -0.5495 -0.257817 0.185407 -0.5495 -0.224062 0.169534 -0.5495 -0.294 0.272 0.4815 -0.294 0.262 -0.4615 0.29 0.085 -0.461 0.26 0.085 -0.361 0.224 0.085 -0.361 0.29 0.085 0.4615 -0.204 0.085 0.612222 -0.252445 0.085 0.670828 -0.230219 0.085 0.606769 -0.196838 0.085 0.722412 -0.194613 0.085 0.703429 -0.135392 0.085 0.735123 -0.087 0.085 0.793104 -0.0921973 0.085 0.5495 -0.278139 0.242371 0.5495 -0.294 0.272 0.5495 -0.288796 0.090889 0.5495 -0.272322 0.201024 0.5495 -0.220843 0.125783 0.5495 -0.224062 0.169534 0.5495 -0.215202 0.156213 0.5495 -0.224 0.272 0.4915 -0.224 0.272 0.4915 -0.294 0.272 0.4615 -0.292 0.242 0.4615 -0.224 0.242 0.4815 -0.292 0.262 0.4615 -0.224 0.085 0.4615 -0.26 0.085 0.461 -0.26 0.085 0.361 -0.224 0.085 0.361 -0.29 0.085 -0.55 0.29 0.08475 -0.5495 0.29 0.085 -0.361 -0.29 0.08475 -0.55 -0.26 0.085 -0.612222 -0.252445 0.055 -0.670828 -0.230219 0.085 -0.763976 -0.147697 0.055 -0.763976 -0.147697 0.085 -0.808104 -0.0313395 0.085 -0.795012 0.087 0.085 -0.763976 0.147697 0.085 -0.722412 0.194613 0.085 -0.670828 0.230219 0.055 -0.670828 0.230219 0.085 -0.612222 0.252445 0.055 -0.461 0.26 0.055 -0.361 0.29 0.08475 -0.361 0.224 0.055 -0.361 -0.224 0.055 -0.4615 -0.26 0.085 0.361 -0.29 0.055 -0.361 -0.29 0.055 0.361 0.29 0.055 -0.55 -0.26 0.055 -0.361 0.29 0.055 0.55 0.302 0.055 0.55 0.3 0.055 -0.461 -0.26 0.055 -0.55 -0.302 0.055 -0.08 -0.292 0.055 -0.55 0.302 0.055 -0.08 0.292 0.055 -0.08 0.29 0.055 -0.621795 -0.291283 0.055 -0.670828 -0.230219 0.055 -0.689417 -0.265637 0.055 -0.722412 -0.194613 0.055 -0.748937 -0.224553 0.055 -0.793104 -0.0921973 0.055 -0.830505 -0.106381 0.055 -0.808104 -0.0313395 0.055 -0.808104 0.0313395 0.055 -0.847813 -0.036161 0.055 -0.847813 0.036161 0.055 -0.793104 0.0921973 0.055 -0.763976 0.147697 0.055 -0.830505 0.106381 0.055 -0.796895 0.170419 0.055 -0.722412 0.194613 0.055 -0.748937 0.224553 0.055 -0.689417 0.265637 0.055 -0.55 0.3 0.055 -0.55 0.26 0.055 0.361 -0.224 0.055 0.461 -0.26 0.055 0.55 -0.26 0.055 0.689417 -0.265637 0.055 0.670828 -0.230219 0.055 0.722412 -0.194613 0.055 0.763976 -0.147697 0.055 0.830505 -0.106381 0.055 0.808104 -0.0313395 0.055 0.808104 0.0313395 0.055 0.796895 0.170419 0.055 0.763976 0.147697 0.055 0.748937 0.224553 0.055 0.670828 0.230219 0.055 0.612222 0.252445 0.055 -0.461 -0.26 0.085 -0.361 -0.29 0.085 -0.461 -0.224 0.085 -0.461 0.224 0.085 0.361 -0.29 0.08475 0.4615 -0.29 0.085 0.55 -0.29 0.085 0.55 0.29 0.08475 0.55 0.26 0.085 0.55 0.26 0.055 0.612222 0.252445 0.085 0.722412 0.194613 0.055 0.793104 0.0921973 0.085 0.793104 0.0921973 0.055 0.795012 0.087 0.085 0.808104 -0.0313395 0.085 0.793104 -0.0921973 0.055 0.763976 -0.147697 0.085 0.612222 -0.252445 0.055 0.55 -0.26 0.085 0.461 0.26 0.055 0.826142 -0.087 0.085 0.55 0.29 0.085 0.5495 0.29 0.085 0.830505 -0.106381 0.085 0.748937 -0.224553 0.085 0.595477 0.286332 0.085 0.847813 0.036161 0.085 0.808104 0.0313395 0.085 0.721953 -0.233152 0.085 0.689417 -0.265637 0.085 0.682808 0.257544 0.085 0.689417 0.265637 0.085 0.721953 0.233152 0.085 0.748937 0.224553 0.085 0.809829 0.127785 0.085 0.461 0.224 0.055 -0.55 -0.3 0.085 -0.55 0.29 0.085 -0.55 0.3 0.08475 -0.55 0.3 0.085 -0.621795 0.291283 0.085 -0.621795 0.291283 0.055 -0.689417 0.265637 0.085 -0.748937 0.224553 0.085 -0.830505 0.106381 0.085 -0.796895 -0.170419 0.055 -0.830505 -0.106381 0.085 -0.796895 -0.170419 0.085 -0.748937 -0.224553 0.085 0.55 0.3 0.085 0.621795 -0.291283 0.055 0.55 -0.3 0.085 0.621795 -0.291283 0.085 0.748937 -0.224553 0.055 0.796895 -0.170419 0.055 0.796895 -0.170419 0.085 0.847813 -0.036161 0.085 0.847813 -0.036161 0.055 0.847813 0.036161 0.055 0.830505 0.106381 0.055 0.830505 0.106381 0.085 0.796895 0.170419 0.085 0.689417 0.265637 0.055 0.621795 0.291283 0.085 0.621795 0.291283 0.055 -0.55 -0.302 0.084585 -0.55 -0.3 0.055 -0.55 -0.3 0.08475 0.55 -0.302 0.055 -0.55 -0.302 0.069915 0.55 -0.302 0.084585 0.55 -0.302 0.069915 0.55 -0.3 0.055 0.08 -0.29 0.055 0.08 -0.29 0.08475 0.08 -0.292 0.055 -0.08 -0.292 0.08475 -0.08 -0.29 0.055 -0.08 -0.29 0.08475 0.08 -0.292 0.08475 -0.55 -0.29 0.08475 0.55 -0.302 0.08475 0.55 -0.3 0.08475 0.55 -0.29 0.08475 -0.55 -0.302 0.08475 0.55 0.3 0.08475 0.55 0.302 0.069665 0.55 0.302 0.08475 0.55 0.302 0.084335 0.55 0.3261 0.0799167 -0.08 0.29 0.08475 -0.08 0.292 0.08475 0.08 0.292 0.055 0.08 0.29 0.055 0.361 0.29 0.08475 0.08 0.29 0.08475 -0.55 0.302 0.08475 0.08 0.292 0.08475 -0.55 -0.3261 0.0743333 0.55 -0.3261 0.0743333 0.55 -0.3261 0.0801667 -0.55 -0.3261 0.0801667 -0.55 0.302 0.084335 -0.55 0.3261 0.0799167 0.55 0.3261 0.0740833 -0.55 0.3261 0.0740833 -0.55 0.302 0.069665 -0.4615 -0.292 0.085 -0.4615 -0.292 0.242 0.4815 0.292 0.262 -0.74 0.087 0.272 -0.744692 0.087 0.142433 -0.74 0.087 0.116457 -0.745228 0.087 0.152569 -0.746767 0.087 0.156051 -0.749709 0.087 0.162705 -0.791927 0.087 0.185753 -0.808647 0.087 0.202813 -0.812358 0.087 0.210575 -0.796955 0.087 0.188988 -0.781415 0.087 0.179752 -0.771377 0.087 0.176784 -0.788628 0.087 0.183631 -0.769102 0.087 0.176248 -0.74 0.087 0.272 -0.745322 0.087 0.140326 -0.815625 0.087 0.2272 -0.80424 0.087 0.26051 -0.813447 0.087 0.242331 -0.826142 0.087 0.085 -0.761614 0.087 0.118713 -0.815946 0.087 0.0990362 -0.822758 0.087 0.0942941 -0.824644 0.087 0.0913897 -0.821133 0.087 0.095664 -0.818582 0.087 0.0978142 -0.752891 -0.087 0.126114 -0.74 -0.087 0.116457 -0.757224 -0.087 0.121495 -0.821248 -0.087 0.0957765 -0.749234 -0.087 0.130012 -0.745061 -0.087 0.140191 -0.74 -0.087 0.273 -0.826142 -0.087 0.085 -0.824644 -0.087 0.0913897 -0.747789 -0.087 0.159491 -0.762336 -0.087 0.173661 -0.771377 -0.087 0.176784 -0.809878 -0.087 0.251893 -0.799625 -0.087 0.265546 -0.797134 -0.087 0.189139 -0.814696 -0.087 0.218762 -0.807387 -0.087 0.201133 -0.791926 -0.087 0.18575 -0.813249 -0.087 0.242259 -0.8151 -0.087 0.235825 -0.735123 -0.087 0.085 -0.703429 -0.135392 0.272 -0.659477 -0.173003 0.085 -0.659477 -0.173003 0.272 -0.606769 -0.196838 0.272 -0.606769 -0.196838 0.085 -0.735123 0.087 0.085 -0.73142 0.0945 0.116457 -0.703429 0.135392 0.272 -0.659477 0.173003 0.085 -0.659477 0.173003 0.272 -0.5495 0.205 0.272 -0.758101 0.087 0.171137 -0.755655 0.119045 0.176784 -0.733233 0.109772 0.140258 -0.747468 0.087 0.133147 -0.752358 0.115774 0.116524 -0.766608 0.087 0.116524 -0.752603 0.087 0.125855 -0.753162 0.087 0.125062 -0.731875 0.153053 0.176784 -0.756262 0.087 0.169289 -0.754091 0.122233 0.176784 -0.730145 0.155454 0.176784 -0.700865 0.184084 0.176784 -0.63097 0.223861 0.176784 -0.625084 0.210929 0.169534 -0.719335 0.146151 0.169534 -0.741848 0.114919 0.169534 -0.734241 0.110374 0.156213 -0.711729 0.139606 0.140258 -0.739084 0.113268 0.125783 -0.750285 0.11996 0.116524 -0.712618 0.140371 0.156213 -0.685434 0.165317 0.140258 -0.716895 0.144051 0.125783 -0.658489 0.192076 0.125783 -0.668579 0.206274 0.176784 -0.691807 0.173068 0.169534 -0.655705 0.187169 0.156213 -0.68618 0.166224 0.156213 -0.655126 0.186148 0.140258 -0.689763 0.170582 0.125783 -0.687119 0.188172 0.116524 -0.644709 0.212699 0.116524 -0.660078 0.194876 0.169534 -0.623998 0.207899 0.125783 -0.587858 0.220755 0.169534 -0.622095 0.202588 0.156213 -0.621699 0.201483 0.140258 -0.628399 0.220181 0.116524 -0.5903 0.234806 0.176784 -0.5495 0.224062 0.169534 -0.5495 0.215202 0.156213 -0.586341 0.212025 0.156213 -0.5495 0.214028 0.140258 -0.5495 0.220844 0.125783 -0.58614 0.210868 0.140258 -0.587307 0.217583 0.125783 -0.5495 0.28029 0.0990362 -0.589541 0.230438 0.116524 -0.598208 0.22815 0.116524 -0.637251 0.2662 0.0990362 -0.663708 0.255075 0.0990362 -0.664928 0.203423 0.116524 -0.726784 0.152562 0.116524 -0.723717 0.155561 0.116524 -0.749797 0.19607 0.0990362 -0.698049 0.18066 0.116524 -0.801112 0.123506 0.0990362 -0.826035 0.087 0.0867532 -0.824801 0.087 0.0908674 -0.792219 0.138481 0.0990362 -0.778349 0.161835 0.0990362 -0.782502 0.164772 0.0958323 -0.757997 0.186239 0.0990362 -0.716179 0.225346 0.0990362 -0.719203 0.229435 0.0958323 -0.714877 0.226157 0.0990362 -0.678344 0.248921 0.0990362 -0.593937 0.276745 0.0990362 -0.594744 0.281767 0.0958323 -0.60787 0.273353 0.0990362 -0.5495 0.288796 0.090889 -0.638843 0.27103 0.0958323 -0.639914 0.274278 0.090889 -0.680682 0.253438 0.0958323 -0.682254 0.256475 0.090889 -0.753432 0.199628 0.0958323 -0.721237 0.232184 0.090889 -0.755876 0.20202 0.090889 -0.785294 0.166746 0.090889 -0.805678 0.125747 0.0958323 -0.808748 0.127254 0.090889 -0.595286 0.285143 0.090889 -0.640291 0.275422 0.085 -0.682808 0.257544 0.085 -0.721953 0.233152 0.085 -0.756736 0.202862 0.085 -0.809829 0.127785 0.085 -0.752549 0.0282124 0.273 -0.752549 0.0282124 0.281297 -0.752549 -0.0282124 0.273 -0.5495 0.225 0.281297 -0.662 0.194856 0.281297 -0.708599 0.159099 0.281738 -0.744356 0.1125 0.281297 -0.766833 0.0582343 0.281738 -0.766833 -0.0582343 0.281738 -0.708599 -0.159099 0.281738 -0.708599 -0.159099 0.281297 -0.662 -0.194856 0.281297 -0.607734 -0.217333 0.281738 -0.5495 -0.225 0.281297 -0.609247 0.222978 0.281149 -0.607734 0.217333 0.281738 -0.662 0.194856 0.281738 -0.727012 0.14895 0.281149 -0.744356 0.1125 0.281738 -0.75018 0.115863 0.281149 -0.777705 0.0402387 0.281149 -0.7745 2.23516e-10 0.281738 -0.781226 2.23516e-10 0.281149 -0.772478 -0.0597468 0.281149 -0.767251 -0.0792548 0.281149 -0.75018 -0.115863 0.281149 -0.744356 -0.1125 0.281738 -0.727012 -0.14895 0.281149 -0.712731 -0.163231 0.281149 -0.662 -0.194856 0.281738 -0.665363 -0.20068 0.281149 -0.5495 -0.225 0.281738 -0.628755 -0.217751 0.281149 -0.629895 0.224355 0.176784 -0.702557 0.182429 0.176784 -0.5495 0.252149 0.275051 -0.69845 0.177512 0.281149 -0.772478 0.0597468 0.281149 -0.63574 -0.236942 0.275051 -0.814658 0.087 0.221163 -0.81138 -0.087 0.248755 -0.78862 -0.087 0.183599 -0.785407 -0.087 0.181508 -0.791769 -0.0881785 0.185407 -0.805399 -0.0931397 0.201024 -0.801489 -0.087 0.193268 -0.813871 -0.087 0.215235 -0.812129 -0.0955893 0.221099 -0.808647 -0.087 0.202813 -0.815506 -0.087 0.232142 -0.814838 -0.087 0.221114 -0.789878 -0.087 0.273 -0.801254 -0.044391 0.273 -0.801813 -0.0918344 0.261385 -0.80203 -0.087 0.263083 -0.810865 -0.0951293 0.242371 -0.803312 -0.087 0.261255 -0.801254 0.044391 0.273 -0.805138 2.23516e-10 0.273 -0.801649 2.23516e-10 0.275051 -0.797818 -0.0437852 0.275051 -0.803486 0.087 0.261358 -0.811302 0.087 0.248933 -0.81305 0.087 0.244414 -0.815564 0.087 0.23124 -0.812129 0.0955893 0.221099 -0.810865 0.0951293 0.242371 -0.807359 0.087 0.201155 -0.813503 0.087 0.213951 -0.805399 0.0931397 0.201024 -0.800227 0.087 0.191975 -0.772776 0.128908 0.185407 -0.78509 0.087 0.181355 -0.5495 -0.252149 0.275051 -0.5495 -0.231726 0.281149 -0.589739 -0.228205 0.281149 -0.69845 -0.177512 0.281149 -0.777705 -0.0402387 0.281149 -0.786443 -0.08624 0.275051 -0.797818 0.0437852 0.275051 -0.789878 0.087 0.273 -0.801813 0.0918344 0.261385 -0.80078 0.087 0.264402 -0.742657 0.162078 0.275051 -0.712731 0.163231 0.281149 -0.628755 0.217751 0.281149 -0.589739 0.228205 0.281149 -0.593285 0.248318 0.275051 -0.5495 0.257142 0.272 -0.596126 0.264427 0.261385 -0.791541 -0.139742 0.221099 -0.767867 -0.126074 0.275051 -0.791769 0.0881785 0.185407 -0.790376 0.13907 0.242371 -0.782033 0.134253 0.261385 -0.786443 0.08624 0.275051 -0.767251 0.0792548 0.281149 -0.5903 -0.234806 0.176784 -0.596126 -0.264427 0.261385 -0.5495 -0.279484 0.221099 -0.5495 -0.272322 0.201024 -0.596788 -0.268185 0.201024 -0.594269 -0.2539 0.185407 -0.637679 -0.242269 0.185407 -0.609247 -0.222978 0.281149 -0.593285 -0.248318 0.275051 -0.641334 -0.252313 0.261385 -0.597798 -0.273914 0.242371 -0.598032 -0.275238 0.221099 -0.64264 -0.255899 0.201024 -0.678408 -0.223276 0.185407 -0.668579 -0.206274 0.176784 -0.675574 -0.218367 0.275051 -0.683753 -0.232533 0.261385 -0.68857 -0.240876 0.242371 -0.644629 -0.261365 0.242371 -0.689242 -0.24204 0.221099 -0.685661 -0.235838 0.201024 -0.645089 -0.262629 0.221099 -0.711578 -0.193157 0.275051 -0.722092 -0.205687 0.261385 -0.728285 -0.213067 0.242371 -0.729149 -0.214097 0.221099 -0.715221 -0.197499 0.185407 -0.730145 -0.155454 0.176784 -0.724545 -0.208611 0.201024 -0.702557 -0.182429 0.176784 -0.742657 -0.162078 0.275051 -0.782033 -0.134253 0.261385 -0.755187 -0.172592 0.261385 -0.762567 -0.178785 0.242371 -0.790376 -0.13907 0.242371 -0.763597 -0.179649 0.221099 -0.785338 -0.136161 0.201024 -0.758111 -0.175045 0.201024 -0.772776 -0.128908 0.185407 -0.746999 -0.165721 0.185407 -0.731875 -0.153053 0.176784 -0.767867 0.126074 0.275051 -0.762567 0.178785 0.242371 -0.791541 0.139742 0.221099 -0.785338 0.136161 0.201024 -0.711578 0.193157 0.275051 -0.722092 0.205687 0.261385 -0.755187 0.172592 0.261385 -0.728285 0.213067 0.242371 -0.729149 0.214097 0.221099 -0.763597 0.179649 0.221099 -0.724545 0.208611 0.201024 -0.758111 0.175045 0.201024 -0.746999 0.165721 0.185407 -0.68857 0.240876 0.242371 -0.678408 0.223276 0.185407 -0.715221 0.197499 0.185407 -0.665363 0.20068 0.281149 -0.675574 0.218367 0.275051 -0.63574 0.236942 0.275051 -0.683753 0.232533 0.261385 -0.641334 0.252313 0.261385 -0.644629 0.261365 0.242371 -0.689242 0.242041 0.221099 -0.64264 0.255899 0.201024 -0.685661 0.235838 0.201024 -0.667116 0.207279 0.176784 -0.597798 0.273914 0.242371 -0.596788 0.268185 0.201024 -0.645089 0.262629 0.221099 -0.637679 0.242269 0.185407 -0.590872 0.234655 0.176784 -0.598032 0.275238 0.221099 -0.5495 0.279484 0.221099 -0.594269 0.2539 0.185407 -0.5495 0.257817 0.185407 -0.5495 0.238324 0.176784 -0.750285 -0.11996 0.116524 -0.752358 -0.115774 0.116524 -0.766608 -0.087 0.116524 -0.733233 -0.109772 0.140258 -0.74479 -0.087 0.150283 -0.74669 -0.087 0.156115 -0.754091 -0.122233 0.176784 -0.755655 -0.119045 0.176784 -0.756198 -0.087 0.169267 -0.741848 -0.114919 0.169534 -0.753691 -0.087 0.167472 -0.590872 -0.234655 0.176784 -0.629895 -0.224355 0.176784 -0.667116 -0.207279 0.176784 -0.700865 -0.184084 0.176784 -0.5495 -0.238324 0.176784 -0.587858 -0.220755 0.169534 -0.586341 -0.212025 0.156213 -0.5495 -0.215202 0.156213 -0.5495 -0.214028 0.140258 -0.587307 -0.217583 0.125783 -0.5495 -0.220843 0.125783 -0.625084 -0.210929 0.169534 -0.621699 -0.201483 0.140258 -0.58614 -0.210868 0.140258 -0.623998 -0.207899 0.125783 -0.598208 -0.22815 0.116524 -0.589541 -0.230438 0.116524 -0.63097 -0.223861 0.176784 -0.660078 -0.194876 0.169534 -0.655705 -0.187169 0.156213 -0.622095 -0.202588 0.156213 -0.658489 -0.192076 0.125783 -0.644709 -0.212699 0.116524 -0.691807 -0.173068 0.169534 -0.68618 -0.166224 0.156213 -0.655126 -0.186148 0.140258 -0.689763 -0.170582 0.125783 -0.687119 -0.188172 0.116524 -0.726784 -0.152562 0.116524 -0.712618 -0.140371 0.156213 -0.685434 -0.165317 0.140258 -0.716895 -0.144051 0.125783 -0.723717 -0.155561 0.116524 -0.719335 -0.146151 0.169534 -0.734241 -0.110374 0.156213 -0.711729 -0.139606 0.140258 -0.739084 -0.113268 0.125783 -0.593937 -0.276745 0.0990362 -0.5495 -0.233891 0.116524 -0.628399 -0.220181 0.116524 -0.637251 -0.2662 0.0990362 -0.663708 -0.255075 0.0990362 -0.678344 -0.248921 0.0990362 -0.714877 -0.226157 0.0990362 -0.664928 -0.203423 0.116524 -0.698049 -0.18066 0.116524 -0.749797 -0.19607 0.0990362 -0.778349 -0.161835 0.0990362 -0.792219 -0.138481 0.0990362 -0.801112 -0.123506 0.0990362 -0.815946 -0.087 0.0990362 -0.824842 -0.087 0.0908758 -0.817458 -0.087 0.0984069 -0.821639 -0.087 0.0955054 -0.60787 -0.273353 0.0990362 -0.680682 -0.253438 0.0958323 -0.719203 -0.229435 0.0958323 -0.716179 -0.225346 0.0990362 -0.753432 -0.199628 0.0958323 -0.757997 -0.186239 0.0990362 -0.805678 -0.125747 0.0958323 -0.808748 -0.127254 0.090889 -0.782502 -0.164772 0.0958323 -0.785294 -0.166746 0.090889 -0.755876 -0.20202 0.090889 -0.639914 -0.274278 0.090889 -0.638843 -0.27103 0.0958323 -0.594744 -0.281767 0.0958323 -0.5495 -0.285376 0.0958323 -0.5495 -0.288796 0.090889 -0.825597 -0.087 0.0889172 -0.721953 -0.233152 0.085 -0.721237 -0.232184 0.090889 -0.682254 -0.256475 0.090889 -0.682808 -0.257544 0.085 -0.595286 -0.285143 0.090889 -0.595477 -0.286332 0.085 -0.5495 0.225 0.281738 -0.5495 0.231726 0.281149 -0.5495 -0.224 0.272 -0.607734 0.217333 0.281297 -0.704606 0.159314 0.281297 -0.708599 0.159099 0.281297 -0.74 0.114822 0.281297 -0.74 0.0825 0.281297 -0.766833 0.0582343 0.281297 -0.752549 -0.0282124 0.281297 -0.7745 2.23516e-10 0.281297 -0.607734 -0.217333 0.281297 -0.744356 -0.1125 0.281297 -0.766833 -0.0582343 0.281297 -0.74 -0.0825 0.281297 -0.74 0.087 0.273 -0.74 0.0825 0.273 -0.74 -0.0825 0.273 0.73142 0.0945 0.116457 0.735123 0.087 0.116457 0.703429 0.135392 0.085 0.659477 0.173003 0.272 0.606769 0.196838 0.085 0.5495 -0.205 0.085 0.606769 -0.196838 0.272 0.659477 -0.173003 0.085 0.703429 -0.135392 0.272 0.73142 -0.0945 0.272 0.74 0.087 0.116457 0.735123 0.087 0.085 0.749709 0.087 0.162705 0.756262 0.087 0.169289 0.745322 0.087 0.140326 0.746767 0.087 0.156051 0.752603 0.087 0.125855 0.78509 0.087 0.181355 0.766608 0.087 0.116524 0.813447 0.087 0.242331 0.80078 0.087 0.264402 0.824801 0.087 0.0908674 0.800227 0.087 0.191975 0.807359 0.087 0.201155 0.74 0.087 0.273 0.815625 0.087 0.2272 0.814658 0.087 0.221163 0.813503 0.087 0.213951 0.821133 0.087 0.095664 0.824644 0.087 0.0913897 0.74 -0.087 0.116457 0.749234 -0.087 0.130012 0.757224 -0.087 0.121495 0.762336 -0.087 0.173661 0.756198 -0.087 0.169267 0.74 -0.087 0.273 0.753691 -0.087 0.167472 0.747789 -0.087 0.159491 0.821248 -0.087 0.0957765 0.795012 -0.087 0.085 0.785407 -0.087 0.181508 0.771377 -0.087 0.176784 0.807387 -0.087 0.201133 0.803312 -0.087 0.261255 0.809878 -0.087 0.251893 0.813249 -0.087 0.242259 0.8151 -0.087 0.235825 0.814838 -0.087 0.221114 0.797134 -0.087 0.189139 0.750285 0.11996 0.116524 0.753162 0.087 0.125062 0.761614 0.087 0.118713 0.734241 0.110374 0.156213 0.744692 0.087 0.142433 0.739084 0.113268 0.125783 0.747468 0.087 0.133147 0.758101 0.087 0.171137 0.741848 0.114919 0.169534 0.745228 0.087 0.152569 0.771377 0.087 0.176784 0.769102 0.087 0.176248 0.755895 0.119162 0.176784 0.732067 0.153192 0.176784 0.590295 0.234755 0.176784 0.590885 0.234703 0.176784 0.629869 0.224258 0.176784 0.631012 0.223951 0.176784 0.729975 0.155284 0.176784 0.5495 0.224062 0.169534 0.586341 0.212025 0.156213 0.5495 0.215202 0.156213 0.5495 0.214028 0.140258 0.5495 0.220844 0.125783 0.589541 0.230438 0.116524 0.625084 0.210929 0.169534 0.587858 0.220755 0.169534 0.623998 0.207899 0.125783 0.58614 0.210868 0.140258 0.587307 0.217583 0.125783 0.664928 0.203423 0.116524 0.655705 0.187169 0.156213 0.622095 0.202588 0.156213 0.621699 0.201483 0.140258 0.658489 0.192076 0.125783 0.660078 0.194876 0.169534 0.691807 0.173068 0.169534 0.68618 0.166224 0.156213 0.655126 0.186148 0.140258 0.689763 0.170582 0.125783 0.719335 0.146151 0.169534 0.685434 0.165317 0.140258 0.712618 0.140371 0.156213 0.733233 0.109772 0.140258 0.711729 0.139606 0.140258 0.716895 0.144051 0.125783 0.593937 0.276745 0.0990362 0.60787 0.273353 0.0990362 0.598207 0.22815 0.116524 0.628399 0.220181 0.116524 0.663708 0.255075 0.0990362 0.644709 0.212699 0.116524 0.687119 0.188172 0.116524 0.698049 0.18066 0.116524 0.716179 0.225346 0.0990362 0.723717 0.155561 0.116524 0.726784 0.152562 0.116524 0.757997 0.186239 0.0990362 0.792219 0.138481 0.0990362 0.752358 0.115774 0.116524 0.815946 0.087 0.0990362 0.826142 0.087 0.085 0.818582 0.087 0.0978142 0.5495 0.28029 0.0990362 0.637251 0.2662 0.0990362 0.680682 0.253438 0.0958323 0.678344 0.248921 0.0990362 0.714877 0.226157 0.0990362 0.719203 0.229435 0.0958323 0.749797 0.19607 0.0990362 0.801112 0.123506 0.0990362 0.778349 0.161835 0.0990362 0.782502 0.164772 0.0958323 0.822758 0.087 0.0942941 0.805678 0.125747 0.0958323 0.808748 0.127254 0.090889 0.785294 0.166746 0.090889 0.753432 0.199628 0.0958323 0.755875 0.20202 0.090889 0.721237 0.232184 0.090889 0.682254 0.256475 0.090889 0.638843 0.27103 0.0958323 0.594744 0.281767 0.0958323 0.826035 0.087 0.0867532 0.786277 0.167441 0.085 0.756736 0.202862 0.085 0.640291 0.275422 0.085 0.639914 0.274278 0.090889 0.595286 0.285143 0.090889 0.5495 0.288796 0.090889 0.752549 -0.0282124 0.273 0.5495 -0.225 0.281738 0.662 -0.194856 0.281738 0.744356 -0.1125 0.281738 0.744356 -0.1125 0.281297 0.7745 2.23516e-10 0.281738 0.7745 2.23516e-10 0.281297 0.744356 0.1125 0.281297 0.708599 0.159099 0.281738 0.662 0.194856 0.281297 0.607734 0.217333 0.281297 0.589739 -0.228205 0.281149 0.607734 -0.217333 0.281738 0.628755 -0.217751 0.281149 0.665363 -0.20068 0.281149 0.69845 -0.177512 0.281149 0.712731 -0.163231 0.281149 0.708599 -0.159099 0.281738 0.75018 -0.115863 0.281149 0.766833 -0.0582343 0.281738 0.777705 -0.0402387 0.281149 0.781226 2.23516e-10 0.281149 0.777705 0.0402387 0.281149 0.766833 0.0582343 0.281738 0.744356 0.1125 0.281738 0.75018 0.115863 0.281149 0.727012 0.14895 0.281149 0.712731 0.163231 0.281149 0.69845 0.177512 0.281149 0.665363 0.20068 0.281149 0.662 0.194856 0.281738 0.628755 0.217751 0.281149 0.5495 0.225 0.281738 0.589739 0.228205 0.281149 0.607734 0.217333 0.281738 0.609247 0.222978 0.281149 0.629869 -0.224258 0.176784 0.678408 -0.223276 0.185407 0.746999 -0.165721 0.185407 0.5495 -0.268506 0.261385 0.727012 -0.14895 0.281149 0.767867 0.126074 0.275051 0.742657 0.162078 0.275051 0.801649 2.23516e-10 0.275051 0.797818 0.0437852 0.275051 0.786442 0.08624 0.275051 0.80203 -0.087 0.263083 0.799625 -0.087 0.265546 0.789878 -0.087 0.273 0.81138 -0.087 0.248755 0.814696 -0.087 0.218762 0.791926 -0.087 0.18575 0.801489 -0.087 0.193268 0.753858 -0.122071 0.176784 0.781415 0.087 0.179752 0.791927 0.087 0.185753 0.791768 0.0881785 0.185407 0.788628 0.087 0.183631 0.796955 0.087 0.188988 0.812358 0.087 0.210575 0.808647 0.087 0.202813 0.80424 0.087 0.26051 0.803486 0.087 0.261358 0.811302 0.087 0.248933 0.81305 0.087 0.244414 0.810865 0.0951293 0.242371 0.812129 0.0955893 0.221099 0.815564 0.087 0.23124 0.593285 0.248318 0.275051 0.767251 0.0792548 0.281149 0.772478 0.0597468 0.281149 0.797818 -0.0437852 0.275051 0.772478 -0.0597468 0.281149 0.593285 -0.248318 0.275051 0.609247 -0.222978 0.281149 0.596126 -0.264427 0.261385 0.641334 -0.252313 0.261385 0.63574 -0.236942 0.275051 0.675574 -0.218367 0.275051 0.644629 -0.261365 0.242371 0.597798 -0.273914 0.242371 0.5495 -0.279484 0.221099 0.711578 -0.193157 0.275051 0.722092 -0.205687 0.261385 0.683753 -0.232533 0.261385 0.645089 -0.262629 0.221099 0.598032 -0.275238 0.221099 0.772776 0.128908 0.185407 0.785338 0.136161 0.201024 0.805399 0.0931397 0.201024 0.801813 0.0918344 0.261385 0.78862 -0.087 0.183599 0.791768 -0.0881785 0.185407 0.772776 -0.128908 0.185407 0.596126 0.264427 0.261385 0.5495 0.268506 0.261385 0.5495 0.278139 0.242371 0.596788 0.268185 0.201024 0.5495 0.272322 0.201024 0.594269 0.2539 0.185407 0.63574 0.236942 0.275051 0.597798 0.273914 0.242371 0.644629 0.261365 0.242371 0.645089 0.262629 0.221099 0.598032 0.275238 0.221099 0.64264 0.255899 0.201024 0.668662 0.206395 0.176784 0.683753 0.232533 0.261385 0.641334 0.252313 0.261385 0.689242 0.242041 0.221099 0.685661 0.235838 0.201024 0.637679 0.242269 0.185407 0.667054 0.207145 0.176784 0.700753 0.183924 0.176784 0.675574 0.218367 0.275051 0.711578 0.193157 0.275051 0.722092 0.205687 0.261385 0.68857 0.240876 0.242371 0.724545 0.208611 0.201024 0.715221 0.197499 0.185407 0.678408 0.223276 0.185407 0.755187 0.172592 0.261385 0.728284 0.213067 0.242371 0.729149 0.214097 0.221099 0.758111 0.175045 0.201024 0.746999 0.165721 0.185407 0.702692 0.182567 0.176784 0.782033 0.134253 0.261385 0.790376 0.13907 0.242371 0.762567 0.178785 0.242371 0.79154 0.139742 0.221099 0.763597 0.179649 0.221099 0.753858 0.122071 0.176784 0.732067 -0.153192 0.176784 0.785338 -0.136161 0.201024 0.805399 -0.0931397 0.201024 0.808647 -0.087 0.202813 0.813871 -0.087 0.215235 0.758111 -0.175045 0.201024 0.812129 -0.0955893 0.221099 0.815506 -0.087 0.232142 0.668662 -0.206395 0.176784 0.700753 -0.183924 0.176784 0.715221 -0.197499 0.185407 0.724545 -0.208611 0.201024 0.79154 -0.139742 0.221099 0.790376 -0.13907 0.242371 0.810865 -0.0951293 0.242371 0.637679 -0.242269 0.185407 0.685661 -0.235838 0.201024 0.762567 -0.178785 0.242371 0.763597 -0.179649 0.221099 0.801813 -0.0918344 0.261385 0.801254 -0.044391 0.273 0.64264 -0.255899 0.201024 0.689242 -0.24204 0.221099 0.729149 -0.214097 0.221099 0.755187 -0.172592 0.261385 0.782033 -0.134253 0.261385 0.767251 -0.0792548 0.281149 0.786442 -0.08624 0.275051 0.5495 -0.238324 0.176784 0.5495 -0.257817 0.185407 0.596788 -0.268185 0.201024 0.594269 -0.2539 0.185407 0.68857 -0.240876 0.242371 0.728284 -0.213067 0.242371 0.742657 -0.162078 0.275051 0.767867 -0.126074 0.275051 0.590295 -0.234755 0.176784 0.741848 -0.114919 0.169534 0.74669 -0.087 0.156115 0.739084 -0.113268 0.125783 0.766608 -0.087 0.116524 0.752891 -0.087 0.126114 0.752358 -0.115774 0.116524 0.745061 -0.087 0.140191 0.74479 -0.087 0.150283 0.755895 -0.119162 0.176784 0.729975 -0.155284 0.176784 0.702692 -0.182567 0.176784 0.667054 -0.207145 0.176784 0.590885 -0.234703 0.176784 0.719335 -0.146151 0.169534 0.734241 -0.110374 0.156213 0.733233 -0.109772 0.140258 0.711729 -0.139606 0.140258 0.716895 -0.144051 0.125783 0.712618 -0.140371 0.156213 0.685434 -0.165317 0.140258 0.689763 -0.170582 0.125783 0.691807 -0.173068 0.169534 0.655705 -0.187169 0.156213 0.68618 -0.166224 0.156213 0.655126 -0.186148 0.140258 0.687119 -0.188172 0.116524 0.631012 -0.223951 0.176784 0.660078 -0.194876 0.169534 0.658489 -0.192076 0.125783 0.644709 -0.212699 0.116524 0.625084 -0.210929 0.169534 0.587858 -0.220755 0.169534 0.586341 -0.212025 0.156213 0.622095 -0.202588 0.156213 0.621699 -0.201483 0.140258 0.623998 -0.207899 0.125783 0.587307 -0.217583 0.125783 0.628399 -0.220181 0.116524 0.58614 -0.210868 0.140258 0.5495 -0.214028 0.140258 0.5495 -0.233891 0.116524 0.589541 -0.230438 0.116524 0.598207 -0.22815 0.116524 0.637251 -0.2662 0.0990362 0.663708 -0.255075 0.0990362 0.664928 -0.203423 0.116524 0.815946 -0.087 0.0990362 0.792219 -0.138481 0.0990362 0.750285 -0.11996 0.116524 0.726784 -0.152562 0.116524 0.757997 -0.186239 0.0990362 0.723717 -0.155561 0.116524 0.749797 -0.19607 0.0990362 0.698049 -0.18066 0.116524 0.716179 -0.225346 0.0990362 0.825597 -0.087 0.0889172 0.824842 -0.087 0.0908758 0.817458 -0.087 0.0984069 0.801112 -0.123506 0.0990362 0.805678 -0.125747 0.0958323 0.778349 -0.161835 0.0990362 0.714877 -0.226157 0.0990362 0.678344 -0.248921 0.0990362 0.5495 -0.28029 0.0990362 0.5495 -0.285376 0.0958323 0.594744 -0.281767 0.0958323 0.593937 -0.276745 0.0990362 0.60787 -0.273353 0.0990362 0.595286 -0.285143 0.090889 0.638843 -0.27103 0.0958323 0.680682 -0.253438 0.0958323 0.639914 -0.274278 0.090889 0.721237 -0.232184 0.090889 0.719203 -0.229435 0.0958323 0.753432 -0.199628 0.0958323 0.782502 -0.164772 0.0958323 0.785294 -0.166746 0.090889 0.821639 -0.087 0.0955054 0.808748 -0.127254 0.090889 0.824644 -0.087 0.0913897 0.5495 -0.29 0.085 0.595477 -0.286332 0.085 0.640291 -0.275422 0.085 0.682254 -0.256475 0.090889 0.682808 -0.257544 0.085 0.755875 -0.20202 0.090889 0.756736 -0.202862 0.085 0.786277 -0.167441 0.085 0.809829 -0.127785 0.085 0.5495 0.225 0.281297 0.5495 0.231726 0.281149 0.5495 0.252149 0.275051 0.5495 -0.225 0.281297 0.5495 -0.231726 0.281149 0.5495 -0.257142 0.272 0.5495 -0.252149 0.275051 0.55 0.224 0.281297 0.5495 0.224 0.281297 0.766833 0.0582343 0.281297 0.704606 0.159314 0.281297 0.659072 0.193358 0.281297 0.708599 0.159099 0.281297 0.55 -0.222 0.281297 0.606385 -0.21472 0.281297 0.607734 -0.217333 0.281297 0.662 -0.194856 0.281297 0.708599 -0.159099 0.281297 0.766833 -0.0582343 0.281297 0.752549 -0.0282124 0.281297 0.752549 0.0282124 0.281297 0.752549 0.0282124 0.273 0.737167 0.0825 0.273 0.805138 2.23516e-10 0.273 0.74 0.0825 0.273 0.801254 0.044391 0.273 0.789878 0.087 0.273 0.737167 -0.0825 0.273 0.69 0.0825 0.272 0.69 0.0945 0.116457 0.69 0.0795 0.12625 0.69 0.0945 0.272 0.73142 0.0945 0.272 0.849273 0.0208737 0.23863 0.843625 0.0351967 0.243987 0.839077 0.0428823 0.195886 0.822747 0.0601532 0.257386 0.833033 0.0483779 0.195728 0.83046 0.0534959 0.25348 0.805174 0.0707447 0.263613 0.808158 0.0684596 0.195076 0.7 0.0795 0.22525 0.69 0.0795 0.22525 0.693 -0.0764563 0.22525 0.7 0.0766785 0.22525 0.7 0.0795 0.12625 0.74 0.0795 0.116457 0.69 0.0795 0.116457 0.69 0.0795 0.272 0.74 0.0795 0.272 0.693 0.0764481 0.267371 0.776813 -0.0766183 0.09521 0.806471 -0.0619261 0.0944334 0.812088 -0.0673243 0.0942863 0.810324 -0.0608658 0.0943325 0.835019 -0.0464716 0.0936858 0.839077 -0.0427823 0.0935796 0.842023 -0.0148094 0.0935024 0.848822 -0.0162921 0.0933244 0.841789 0.0150515 0.0935085 0.838501 0.0309193 0.0935946 0.847021 0.0276346 0.0933715 0.826179 0.057573 0.0939173 0.808591 0.0667814 0.0943779 0.783246 0.0697984 0.0950415 0.793861 0.0744929 0.0947636 0.775 0.070249 0.0952575 0.737032 0.0709117 0.114602 0.750433 0.0771788 0.102535 0.754071 0.0771153 0.101458 0.750433 0.0706778 0.102535 0.754071 0.0706143 0.101458 0.775 -0.070149 0.0952575 0.757358 -0.0769579 0.0990068 0.75435 -0.0770104 0.101315 0.757358 -0.0704569 0.0990068 0.737032 -0.0708117 0.114602 0.737032 0.0774127 0.114602 0.741607 0.0773328 0.180035 0.741607 -0.0772328 0.180035 0.763907 0.0704426 0.19265 0.757632 0.0705521 0.1891 0.741607 0.0708318 0.180035 0.741607 -0.0707318 0.180035 0.750433 -0.0705778 0.18693 0.775 -0.070149 0.194208 0.775 0.07675 0.194208 0.776813 0.0767183 0.194256 0.812088 0.0674243 0.195179 0.842023 0.0149094 0.195963 0.849273 0.0208737 0.196153 0.841789 -0.0149515 0.195957 0.849282 -0.0207409 0.196153 0.838501 -0.0308193 0.195871 0.776813 -0.0766183 0.194256 0.800725 -0.0723534 0.194882 0.806053 -0.06106 0.195021 0.831323 -0.0524928 0.195683 0.833318 -0.0489656 0.195735 0.824137 -0.0592103 0.256883 0.789597 -0.0753184 0.265814 0.822764 -0.0601204 0.257424 0.811112 -0.0678456 0.262016 0.807558 -0.0679183 0.195061 0.7435 0.0768175 0.267494 0.743551 0.0772989 0.268227 0.7435 -0.0767175 0.267494 0.730615 -0.0774247 0.083227 0.743551 -0.0771989 0.268227 0.730615 0.0775247 0.083227 0.757632 0.0770531 0.1891 0.763907 0.0769436 0.19265 0.775 0.07675 0.0952575 0.737032 -0.0773127 0.114602 0.775 -0.07665 0.0952575 0.776813 -0.0766183 0.0844367 0.750433 -0.0770788 0.18693 0.776813 -0.0766183 0.266484 0.757347 -0.0769581 0.188979 0.775 -0.07665 0.194208 0.776813 0.0767183 0.266484 0.793861 -0.0743929 0.0848832 0.826179 -0.057473 0.0857294 0.848822 0.0163921 0.0863223 0.835019 0.0465716 0.0859609 0.812088 0.0674243 0.0853604 0.848428 -0.0165891 0.086312 0.776813 0.0767183 0.0844367 0.849282 -0.0207409 0.23862 0.849794 -0.0111032 0.238085 0.833742 -0.0491135 0.251177 0.839257 -0.0425131 0.247549 0.843222 -0.0358672 0.244335 0.828696 -0.0551522 0.254496 0.833766 0.0492779 0.251208 0.840507 0.0406782 0.246576 0.803814 -0.0712009 0.263918 0.808337 0.0692161 0.262736 0.808351 -0.0691148 0.262735 0.812415 0.0672452 0.261606 0.8249 0.0586753 0.256507 0.789597 0.0754184 0.265814 0.809446 0.0681202 0.0852913 0.776813 0.0767183 0.09521 0.834079 0.0462245 0.0937104 0.839077 0.0428823 0.0860672 0.848428 0.0166891 0.0933347 0.851671 -0.0085466 0.0932498 0.851671 0.0086466 0.0863969 0.847021 -0.0275346 0.0862752 0.834079 -0.0461245 0.0859363 0.808591 -0.0666814 0.0852689 0.809446 -0.0680202 0.0943555 0.741998 0.0767913 0.267468 0.741998 -0.0766913 0.267468 0.730666 -0.0767175 0.0839595 0.730666 0.0768175 0.0839595 0.729168 -0.0766913 0.0839857 0.729168 0.0767913 0.0839857 0.693 0.0765563 0.22525 0.729115 0.0775515 0.083227 0.7 0.0769328 0.12625 0.693 0.0769195 0.0838574 0.742051 0.0773021 0.268227 0.742051 -0.0772021 0.268227 0.693 -0.0763481 0.267371 0.693 -0.0767106 0.12625 0.7 -0.0768328 0.12625 0.693 -0.0768195 0.0838574 0.729115 -0.0774515 0.083227 0.7 -0.0765785 0.22525 0.693 0.0768106 0.12625 0.775 0.070249 0.194208 0.776699 0.0702193 0.194253 0.800892 -0.0653653 0.117772 0.776699 -0.0701193 0.095213 0.776699 -0.0701193 0.194253 0.785595 -0.0693964 0.11779 0.785595 -0.0693964 0.172375 0.783246 -0.0696984 0.194424 0.79088 -0.0684182 0.172381 0.830276 -0.0437911 0.172428 0.81586 -0.0573456 0.195278 0.837463 -0.0319364 0.172437 0.834799 -0.0374446 0.172434 0.82904 -0.041904 0.195623 0.8439 -0.0153921 0.172444 0.845655 4.97999e-05 0.172446 0.845578 0.00333004 0.196056 0.845343 0.0066516 0.172446 0.844181 0.0143577 0.172445 0.835343 0.0366694 0.195788 0.837754 0.032173 0.172437 0.829576 0.0422696 0.195637 0.815985 0.0568815 0.172411 0.820187 0.0541427 0.172416 0.810324 0.0609658 0.195133 0.806471 0.0620262 0.195032 0.806706 0.0628861 0.1724 0.785595 0.0694964 0.172375 0.776699 0.0702193 0.095213 0.790881 0.0685181 0.117784 0.806053 0.06116 0.0944443 0.81586 0.0574456 0.0941875 0.830276 0.0438908 0.117737 0.819044 0.0550674 0.11775 0.816135 0.0571191 0.117754 0.830643 0.0433761 0.117736 0.82904 0.042004 0.0938424 0.834799 0.0375443 0.117731 0.841699 0.0232798 0.117723 0.843866 0.0157939 0.117721 0.8439 0.0154921 0.117721 0.845578 -0.00323004 0.0934093 0.845655 4.97999e-05 0.117719 0.845174 -0.00815165 0.117719 0.837787 -0.0320885 0.117728 0.835343 -0.0365694 0.0936773 0.829576 -0.0421696 0.0938283 0.818935 -0.0550535 0.11775 0.806635 -0.0626743 0.117765 0.757347 -0.0704571 0.188979 0.75435 -0.0705094 0.101315 0.806521 0.0624985 0.117765 0.785595 0.0694964 0.11779 0.782773 0.0510004 0.121089 0.798377 0.0663878 0.117775 0.837463 0.0320365 0.117728 0.820878 0.0235355 0.121089 0.812675 0.059559 0.117758 0.820878 -0.0234355 0.121089 0.83853 -0.0307601 0.117727 0.843835 -0.0158291 0.117721 0.843911 -0.0153919 0.117721 0.845655 4.99973e-05 0.117719 0.805136 -0.0417611 0.121089 0.824777 -0.049895 0.117743 0.830325 -0.043017 0.117737 0.834725 -0.0375615 0.117731 0.816037 -0.0568491 0.117754 0.805466 -0.0633989 0.117766 0.811333 -0.0503579 0.170945 0.798377 -0.066288 0.17239 0.806521 -0.0623985 0.1724 0.841698 -0.0231801 0.172442 0.830643 -0.0432761 0.172429 0.819044 -0.0549677 0.172415 0.816135 -0.0570191 0.172411 0.812675 -0.0594593 0.172407 0.843866 -0.0156943 0.172444 0.845655 4.99992e-05 0.172446 0.837137 5.00001e-05 0.170945 0.843818 0.0154577 0.172444 0.83922 0.0294064 0.172439 0.830311 0.0283644 0.170945 0.835572 0.0362933 0.172434 0.825909 0.0488516 0.172423 0.830316 0.0431234 0.172428 0.811333 0.0504579 0.170945 0.800904 0.0654608 0.172393 0.806912 0.0627947 0.1724 0.784372 0.0614763 0.170945 0.784372 -0.0613763 0.170945 0.782773 -0.0509004 0.121089 0.830311 -0.0282644 0.170945 0.82654 5.00001e-05 0.121089 0.805136 0.0418611 0.121089 0.735123 -0.087 0.116457 0.73142 -0.0945 0.116457 0.69 -0.0945 0.116457 0.69 -0.0795 0.116457 0.69 -0.0795 0.12625 0.7 -0.0795 0.12625 0.69 -0.0795 0.22525 0.69 -0.0795 0.272 0.7 -0.0795 0.22525 0.74 -0.0795 0.116457 0.849935 -0.00625201 0.237937 -0.74 -0.0795 0.116457 -0.735123 -0.087 0.116457 -0.73142 -0.0945 0.116457 -0.69 -0.0945 0.116457 -0.74 -0.0795 0.272 -0.735123 0.087 0.272 -0.73142 0.0945 0.272 -0.69 0.0945 0.272 -0.74 0.0795 0.116457 -0.69 0.0945 0.116457 -0.735123 0.087 0.116457 -0.840507 -0.0406782 0.246576 -0.843625 -0.0351967 0.243987 -0.849273 -0.0208737 0.196153 -0.812088 -0.0674243 0.195179 -0.833033 -0.0483779 0.195728 -0.83046 -0.0534959 0.25348 -0.808337 -0.0692161 0.262736 -0.812415 -0.0672452 0.261606 -0.693 -0.0765563 0.22525 -0.693 0.0764563 0.22525 -0.69 0.0795 0.22525 -0.693 0.0767106 0.12625 -0.693 -0.0768106 0.12625 -0.7 0.0765785 0.22525 -0.7 -0.0766785 0.22525 -0.69 -0.0795 0.116457 -0.7 -0.0795 0.12625 -0.7 -0.0795 0.22525 -0.73142 -0.0945 0.272 -0.69 0.0795 0.116457 -0.69 -0.0795 0.272 -0.69 0.0795 0.12625 -0.69 -0.0795 0.12625 -0.69 -0.0795 0.22525 -0.693 0.0763481 0.267371 -0.693 -0.0764481 0.267371 -0.776699 0.0701193 0.0952129 -0.809446 0.0680202 0.0943554 -0.829576 0.0421696 0.0938283 -0.812088 0.0673243 0.0942863 -0.835019 0.0464716 0.0936858 -0.842023 0.0148094 0.0935024 -0.845578 0.00323004 0.0934093 -0.848428 -0.0166891 0.0933347 -0.838501 -0.0309193 0.0935946 -0.847021 -0.0276346 0.0933715 -0.82904 -0.042004 0.0938424 -0.81586 -0.0574456 0.0941875 -0.826179 -0.057573 0.0939173 -0.806053 -0.06116 0.0944443 -0.776699 -0.0702193 0.0952129 -0.750433 -0.0771788 0.102535 -0.750433 -0.0706778 0.102535 -0.754071 -0.0771153 0.101458 -0.775 -0.07675 0.0952574 -0.775 0.07665 0.0952574 -0.757358 0.0769579 0.0990068 -0.737032 0.0708117 0.114602 -0.75435 0.0770104 0.101315 -0.737032 0.0773127 0.114602 -0.741607 -0.0773328 0.180035 -0.737032 -0.0709117 0.114602 -0.741607 0.0707318 0.180035 -0.775 -0.070249 0.194208 -0.763908 -0.0769436 0.19265 -0.763907 -0.0704426 0.19265 -0.757632 -0.0705521 0.1891 -0.757632 -0.0770531 0.1891 -0.741607 -0.0708319 0.180035 -0.750433 0.0770788 0.18693 -0.757347 0.0769581 0.188979 -0.757347 0.0704571 0.188979 -0.775 0.070149 0.194208 -0.849282 0.0207409 0.196153 -0.776699 -0.0702193 0.194253 -0.776813 -0.0767183 0.194256 -0.808158 -0.0684596 0.195076 -0.839077 -0.0428823 0.195886 -0.842023 -0.0149094 0.195963 -0.845578 -0.00333004 0.196056 -0.783246 0.0696984 0.194424 -0.776813 0.0766183 0.194256 -0.800725 0.0723534 0.194882 -0.806053 0.06106 0.195021 -0.849282 0.0207409 0.23862 -0.833318 0.0489656 0.195735 -0.843222 0.0358672 0.244335 -0.839257 0.0425131 0.247549 -0.833742 0.0491135 0.251176 -0.831323 0.0524928 0.195683 -0.811112 0.0678456 0.262016 -0.807558 0.0679183 0.195061 -0.808351 0.0691148 0.262735 -0.803814 0.0712009 0.263918 -0.789597 0.0753184 0.265814 -0.7435 -0.0768175 0.267494 -0.7435 0.0767175 0.267494 -0.737032 -0.0774127 0.114602 -0.743551 -0.0772989 0.268227 -0.775 -0.07675 0.194208 -0.776813 -0.0767183 0.266484 -0.730615 -0.0775247 0.0832269 -0.776813 -0.0767183 0.09521 -0.730615 0.0774247 0.0832269 -0.741607 0.0772328 0.180035 -0.776813 0.0766183 0.09521 -0.743551 0.0771989 0.268227 -0.776813 0.0766183 0.266484 -0.775 0.07665 0.194208 -0.789597 -0.0754184 0.265814 -0.776813 0.0766183 0.0844367 -0.812088 -0.0674243 0.0853604 -0.839077 -0.0428823 0.0860671 -0.848822 -0.0163921 0.0863223 -0.848428 0.0165891 0.086312 -0.826179 0.057473 0.0857294 -0.847021 0.0275346 0.0862752 -0.824137 0.0592103 0.256883 -0.833766 -0.0492778 0.251208 -0.828696 0.0551522 0.254496 -0.822747 -0.0601532 0.257386 -0.822764 0.0601204 0.257424 -0.8249 -0.0586753 0.256507 -0.805174 -0.0707447 0.263613 -0.808591 -0.0667814 0.0943778 -0.809446 -0.0681202 0.0852912 -0.793861 -0.0744929 0.0947635 -0.776813 -0.0767183 0.0844367 -0.834079 -0.0462245 0.0937104 -0.835019 -0.0465716 0.0859609 -0.851671 0.0085466 0.0932497 -0.851671 -0.0086466 0.0863969 -0.848822 0.0162921 0.0933243 -0.839077 0.0427823 0.0935795 -0.834079 0.0461246 0.0859363 -0.808591 0.0666814 0.0852688 -0.793861 0.0743929 0.0848831 -0.730666 0.0767175 0.0839595 -0.730666 -0.0768175 0.0839595 -0.729168 0.0766913 0.0839856 -0.741998 0.0766913 0.267468 -0.742051 0.0772021 0.268227 -0.729115 -0.0775515 0.0832269 -0.729168 -0.0767913 0.0839856 -0.741998 -0.0767913 0.267468 -0.7 -0.0769328 0.12625 -0.742051 -0.0773021 0.268227 -0.729115 0.0774515 0.0832269 -0.7 0.0768328 0.12625 -0.693 0.0768195 0.0838573 -0.693 -0.0769195 0.0838573 -0.775 -0.070249 0.0952574 -0.754071 -0.0706143 0.101458 -0.79088 0.0684182 0.172381 -0.81586 0.0573456 0.195278 -0.806521 0.0623985 0.1724 -0.82904 0.041904 0.195623 -0.816135 0.0570191 0.172411 -0.837463 0.0319364 0.172437 -0.838501 0.0308193 0.195871 -0.834799 0.0374446 0.172434 -0.830643 0.0432761 0.172429 -0.841789 0.0149515 0.195957 -0.845655 -4.99997e-05 0.172446 -0.845343 -0.0066516 0.172446 -0.844181 -0.0143577 0.172445 -0.843818 -0.0154577 0.172444 -0.837754 -0.032173 0.172437 -0.835343 -0.0366694 0.195788 -0.835572 -0.0362932 0.172434 -0.829576 -0.0422696 0.195637 -0.810324 -0.0609658 0.195133 -0.815985 -0.0568815 0.172411 -0.806471 -0.0620261 0.195032 -0.820187 -0.0541427 0.172416 -0.825909 -0.0488515 0.172423 -0.806706 -0.0628861 0.1724 -0.783246 -0.0697984 0.0950415 -0.806521 -0.0624985 0.117765 -0.812675 -0.059559 0.117758 -0.830276 -0.0438908 0.117737 -0.843866 -0.0157939 0.117721 -0.8439 -0.0154921 0.117721 -0.841789 -0.0150515 0.0935085 -0.845655 -4.99978e-05 0.117719 -0.845174 0.00815165 0.117719 -0.843911 0.0153919 0.117721 -0.843835 0.0158291 0.117721 -0.835343 0.0365694 0.0936773 -0.834725 0.0375615 0.117731 -0.830325 0.043017 0.117737 -0.818935 0.0550535 0.11775 -0.810324 0.0608658 0.0943324 -0.816037 0.0568491 0.117754 -0.806471 0.0619262 0.0944333 -0.75435 0.0705094 0.101315 -0.757358 0.0704569 0.0990068 -0.776699 0.0701193 0.194253 -0.775 0.070149 0.0952574 -0.750433 0.0705778 0.18693 -0.782773 -0.0510004 0.121089 -0.790881 -0.0685182 0.117784 -0.798377 -0.0663878 0.117775 -0.837463 -0.0320364 0.117728 -0.834799 -0.0375443 0.117731 -0.830643 -0.0433761 0.117736 -0.819044 -0.0550674 0.11775 -0.805136 -0.0418611 0.121089 -0.816135 -0.0571191 0.117754 -0.837787 0.0320885 0.117728 -0.83853 0.0307601 0.117727 -0.841699 -0.0232798 0.117723 -0.820878 -0.0235355 0.121089 -0.845655 -4.98004e-05 0.117719 -0.824777 0.049895 0.117743 -0.805136 0.0417611 0.121089 -0.806635 0.0626743 0.117765 -0.782773 0.0509004 0.121089 -0.805466 0.0633989 0.117766 -0.785595 0.0693964 0.11779 -0.800893 0.0653653 0.117772 -0.812675 0.0594593 0.172407 -0.798377 0.066288 0.17239 -0.811333 0.0503579 0.170945 -0.841698 0.0231801 0.172442 -0.830276 0.0437911 0.172428 -0.819044 0.0549677 0.172415 -0.843866 0.0156943 0.172444 -0.8439 0.0153921 0.172444 -0.845655 -4.98004e-05 0.172446 -0.837137 -4.99997e-05 0.170945 -0.83922 -0.0294064 0.172439 -0.830316 -0.0431234 0.172428 -0.784372 -0.0614763 0.170945 -0.800904 -0.0654608 0.172393 -0.806912 -0.0627947 0.1724 -0.785595 -0.0694964 0.11779 -0.785595 -0.0694964 0.172375 -0.784372 0.0613763 0.170945 -0.830311 0.0282644 0.170945 -0.820878 0.0234355 0.121089 -0.82654 -4.99997e-05 0.121089 -0.830311 -0.0283644 0.170945 -0.811333 -0.0504579 0.170945 -0.785595 0.0693964 0.172375 -0.7 0.0795 0.12625 -0.69 0.0795 0.272 -0.7 0.0795 0.22525 -0.74 0.0795 0.272 -0.849273 -0.0208737 0.23863 -0.849935 0.00625201 0.237937 -0.849795 0.0111032 0.238085 -0.3605 0.05 0.237 -0.3505 0.05 0.272 -0.3605 -0.05 0.272 -0.3505 -0.05 0.237 -0.3505 0.05 0.237</float_array>\n                    <technique_common>\n                        <accessor count=\"1903\" source=\"#shape0-lib-positions-array\" stride=\"3\">\n                            <param name=\"X\" type=\"float\"/>\n                            <param name=\"Y\" type=\"float\"/>\n                            <param name=\"Z\" type=\"float\"/>\n                        </accessor>\n                    </technique_common>\n                </source>\n                <source id=\"shape0-lib-normals\" name=\"normal\">\n                    <float_array id=\"shape0-lib-normals-array\" count=\"11658\">0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 1 0 0 1 0 0 -1 0 0 -1 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 0 0 -1 -6.11113e-06 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 -6.62274e-06 -1 5.25642e-07 2.71581e-07 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 -1 0 0 -1 -1 0 0 -1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 1 0 0 1 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 1 0 0 1 0 0 0 0 -1 0 0 -1 -1 0 0 -1 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 1 0 0 1 0 0 1 0 0 1 0 0 0 -1 0 0 -1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 -1 0 0 -1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 0 0 -1 0 0 -1 1 0 0 1 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0.782582 -0.622548 0 0.782582 -0.622548 0 0.598801 -0.800898 0 0.598801 -0.800898 0 0.375746 -0.926723 0 0.375746 -0.926723 0 0.128048 -0.991768 0 0.128048 -0.991768 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 1 0 0 1 0 0 0.128048 0.991768 0 0.128048 0.991768 0 0.375746 0.926723 0 0.375746 0.926723 0 0.598801 0.800898 0 0.598801 0.800898 0 0.782582 0.622548 0 0.782582 0.622548 0 -0.782582 0.622547 0 -0.782582 0.622547 0 -0.5988 0.800899 0 -0.5988 0.800899 0 -0.375746 0.926723 0 -0.375746 0.926723 0 -0.128048 0.991768 0 -0.128048 0.991768 0 -1 0 0 -1 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 -1 0 0 -1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 -1 0 0 -1 0 0 -0.128048 -0.991768 0 -0.128048 -0.991768 0 -0.375746 -0.926723 0 -0.375746 -0.926723 0 -0.5988 -0.800899 0 -0.5988 -0.800899 0 -0.782582 -0.622547 0 -0.782582 -0.622547 0 0.222521 0.974928 0 -0.222521 0.974928 0 -0.222521 0.974928 0 -0.62349 0.781832 0 -0.62349 0.781832 0 -0.900969 0.433883 0 -0.900969 0.433883 0 -1 0 0 -1 0 0 -0.900969 -0.433883 0 -0.900969 -0.433883 0 -0.623489 -0.781832 0 -0.623489 -0.781832 0 -0.222521 -0.974928 0 -0.222521 -0.974928 0 0.222521 -0.974928 0 0.222521 -0.974928 0 0.62349 -0.781832 0 0.62349 -0.781832 0 0.900969 -0.433884 0 0.900969 -0.433884 0 1 0 0 1 0 0 0.900969 0.433884 0 0.900969 0.433884 0 0.62349 0.781831 0 0.62349 0.781831 0 0.222521 0.974928 0 0.222521 0.974928 0 -0.222521 0.974928 0 -0.222521 0.974928 0 -0.62349 0.781831 0 -0.62349 0.781831 0 -0.900969 0.433883 0 -0.900969 0.433883 0 -1 0 0 -1 0 0 -0.900969 -0.433883 0 -0.900969 -0.433883 0 -0.62349 -0.781832 0 -0.62349 -0.781832 0 -0.222521 -0.974928 0 -0.222521 -0.974928 0 0.222521 -0.974928 0 0.222521 -0.974928 0 0.623489 -0.781832 0 0.623489 -0.781832 0 0.900969 -0.433884 0 0.900969 -0.433884 0 1 0 0 1 0 0 0.900969 0.433884 0 0.900969 0.433884 0 0.62349 0.781832 0 0.62349 0.781832 0 0.222521 0.974928 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 -1 0 0 -1 0 -1 0 0 -1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -0.707107 0 0.707107 -0.707107 0 0.707107 -0.707107 0 0.707107 -0.707107 0 0.707107 -0.707107 0 0.707107 -0.707107 -9.0792e-08 0.707106 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 0 1 0 0 1 0 0 1 0.707108 0 0.707106 0.707108 0 0.707106 0.707106 0 0.707108 0.707107 3.63168e-07 0.707107 0.707107 0 0.707107 0.707107 0 0.707107 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 1 0 0 1 0 0 1 0 0 1 0 0 0.707108 0 0.707106 0.707108 0 0.707106 0.707107 0 0.707107 0.707107 0 0.707107 0.707107 0 0.707107 0.707106 -5.44751e-07 0.707108 0 0 1 0 0 1 0 0 1 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 -0.707107 0 0.707107 -0.707107 0 0.707107 -0.707107 0 0.707107 -0.707107 6.0528e-08 0.707107 -0.707107 0 0.707107 -0.707107 0 0.707107 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0.120537 0.992709 0 0.120537 0.992709 0 0.354605 0.935016 0 0.354605 0.935016 0 0.568065 0.822984 0 0.568065 0.822984 0 0.748511 0.663122 0 0.748511 0.663122 0 0.885456 0.464723 0 0.885456 0.464723 0 0.93874 0.344627 0 0.970742 0.239267 0.0202882 0.973435 0.228965 0 1 0 0 1 0 0 0.973435 -0.228965 0 0.970742 -0.239267 0.0202882 0.93874 -0.344627 0 0.885456 -0.464723 0 0.885456 -0.464723 0 0.748511 -0.663122 0 0.748511 -0.663122 0 0.568065 -0.822984 0 0.568065 -0.822984 0 0.354605 -0.935016 0 0.354605 -0.935016 0 0.120537 -0.992709 0 0.120537 -0.992709 0 0 -1 0 0 -1 0 0 -1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 -0.120537 -0.992709 0 -0.120537 -0.992709 0 -0.354605 -0.935016 0 -0.354605 -0.935016 0 -0.568065 -0.822984 0 -0.568065 -0.822984 0 -0.748511 -0.663123 0 -0.748511 -0.663123 0 -0.885456 -0.464723 0 -0.885456 -0.464723 0 -0.93874 -0.344627 0 -0.970742 -0.239266 0.0202884 -0.973435 -0.228964 0 -1 0 0 -1 0 0 -0.973435 0.228964 0 -0.970742 0.239266 0.0202884 -0.93874 0.344627 0 -0.885456 0.464723 0 -0.885456 0.464723 0 -0.748511 0.663123 0 -0.748511 0.663123 0 -0.568065 0.822984 0 -0.568065 0.822984 0 -0.354605 0.935016 0 -0.354605 0.935016 0 -0.120537 0.992709 0 -0.120537 0.992709 0 0 1 0 0 1 0 0 1 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 -1 0 0 -1 0 0 -1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 -0.120537 0.992709 0 -0.120537 0.992709 0 -0.120537 -0.992709 0 -0.120537 0.992709 0 -0.354605 0.935016 0 -0.354605 0.935016 0 -0.568064 0.822984 0 -0.568064 0.822984 0 -0.748511 0.663123 0 -0.748511 0.663123 0 -0.885456 0.464723 0 -0.885456 0.464723 0 -0.970942 0.239315 0 -0.970942 0.239315 0 -1 0 0 -1 0 0 -0.970942 -0.239315 0 -0.970942 -0.239315 0 -0.885456 -0.464723 0 -0.885456 -0.464723 0 -0.748511 -0.663123 0 -0.748511 -0.663123 0 -0.568065 -0.822984 0 -0.568065 -0.822984 0 -0.354605 -0.935016 0 -0.354605 -0.935016 0 -0.120537 -0.992709 0 -0.120537 -0.992709 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0.120537 -0.992709 0 0.120537 -0.992709 0 0.120537 0.992709 0 0.120537 -0.992709 0 0.354605 -0.935016 0 0.354605 -0.935016 0 0.568065 -0.822984 0 0.568065 -0.822984 0 0.748511 -0.663123 0 0.748511 -0.663123 0 0.885456 -0.464723 0 0.885456 -0.464723 0 0.970942 -0.239316 0 0.970942 -0.239316 0 1 0 0 1 0 0 0.970942 0.239316 0 0.970942 0.239316 0 0.885456 0.464723 0 0.885456 0.464723 0 0.748511 0.663123 0 0.748511 0.663123 0 0.568065 0.822984 0 0.568065 0.822984 0 0.354605 0.935016 0 0.354605 0.935016 0 0.120537 0.992709 0 0.120537 0.992709 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 -1 0 0 -1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 -1 0 0 -1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 -1 0 0 -1 0 1 0 0 1 0 0 0 -1 0 0 -1 0 -1 0 0 -1 0 0 0 -1 0 0 -1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 -0.180328 -0.983607 0 -0.180328 -0.983607 0 -1 0 0 -1 0 0 -0.180328 0.983607 0 -0.180328 0.983607 0 0.180328 0.983607 0 0.180328 0.983607 0 1 0 0 1 0 0 0.180328 -0.983607 0 0.180328 -0.983607 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 1 0 0 1 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0.825192 0.564852 0 0.836544 0.5479 0 0.875275 0.432229 0.216963 0.825192 0.564852 0 0.650177 0.759783 0 0.650177 0.759783 0 0.412039 0.911166 0 0.412039 0.911166 0 0.141091 0.989997 0 0.141091 0.989997 0 0.825192 -0.564852 0 2.84823e-05 -1.80388e-05 -1 0.896633 -0.442776 0 0.836113 -0.547617 0.0321214 0.825192 -0.564852 0 0.650177 -0.759783 0 0.650177 -0.759783 0 0.412039 -0.911166 0 0.412039 -0.911166 0 0.141091 -0.989997 0 0.141091 -0.989997 0 -0.0390484 0.452819 -0.890747 -0.115988 0.43945 -0.890747 -0.820369 0.442143 -0.362635 -0.38442 0.188604 -0.903687 -0.413789 0.188545 -0.890634 -0.228053 0.111888 -0.967199 -0.73249 0.396374 -0.553485 -0.861538 0.335733 -0.380836 -0.664262 0.348756 -0.661155 -0.901098 0.430987 -0.0476765 -0.893685 0.442692 -0.0731521 -0.853695 0.453935 0.255241 -0.853693 0.453934 0.25525 -0.821518 0.381093 0.424119 -0.753183 0.389081 0.530407 -0.582121 0.246214 0.774928 -0.39374 0.194998 0.898301 -0.753174 0.389076 0.530424 -0.520231 0.256436 0.814617 -0.51811 0.256588 0.81592 -0.368698 0.265766 -0.890747 -0.399777 0.214222 -0.891228 -0.695821 0.190206 -0.692571 -0.3687 0.265763 -0.890747 -0.317757 0.324962 -0.890747 -0.317756 0.324964 -0.890747 -0.257434 0.374563 -0.890747 -0.257439 0.37456 -0.890747 -0.189511 0.413105 -0.890747 -0.189516 0.413103 -0.890747 -0.115992 0.43945 -0.890747 -0.368698 0.265766 -0.890747 -0.676208 0.487427 -0.552412 -0.676208 0.487428 -0.55241 -0.809046 0.583181 -0.0731044 -0.809047 0.58318 -0.0731074 -0.734415 0.529383 0.424721 -0.734414 0.529383 0.424722 -0.470648 0.339255 0.814492 -0.470648 0.339254 0.814492 -0.405621 0.414818 0.814492 -0.317757 0.324962 -0.890747 -0.58278 0.595993 -0.552413 -0.58278 0.595994 -0.552412 -0.697266 0.713075 -0.0731064 -0.697265 0.713076 -0.0731047 -0.632944 0.647297 0.424722 -0.632945 0.647297 0.424721 -0.405621 0.414818 0.814492 -0.405624 0.414816 0.814492 -0.328619 0.478135 0.814492 -0.257434 0.374563 -0.890747 -0.472145 0.686965 -0.552411 -0.472145 0.686964 -0.552412 -0.564898 0.821916 -0.0731059 -0.564898 0.821916 -0.0731063 -0.512787 0.746096 0.424723 -0.512788 0.746096 0.424722 -0.328619 0.478134 0.814492 -0.328619 0.478134 0.814492 -0.241914 0.527333 0.814492 -0.189511 0.413105 -0.890747 -0.347571 0.757651 -0.552413 -0.347571 0.757652 -0.552412 -0.41585 0.90649 -0.0731039 -0.415851 0.90649 -0.0731058 -0.37749 0.822869 0.424721 -0.377489 0.822869 0.424723 -0.241913 0.527334 0.814492 -0.241913 0.527334 0.814492 -0.148065 0.560963 0.814492 -0.115992 0.439449 -0.890747 -0.212734 0.805969 -0.552412 -0.212734 0.805968 -0.552413 -0.254525 0.964299 -0.0731057 -0.254525 0.964299 -0.0731044 -0.231046 0.875345 0.424722 -0.231046 0.875346 0.424721 -0.148065 0.560963 0.814492 -0.148065 0.560963 0.814492 -0.0390483 0.452819 -0.890747 -0.0716161 0.830489 -0.552412 -0.0716162 0.830489 -0.552412 -0.085685 0.993637 -0.0731054 -0.0856851 0.993637 -0.0731055 -0.0777809 0.901976 0.424722 -0.0777811 0.901977 0.424722 -0.0498459 0.57803 0.814492 -0.0498457 0.57803 0.814492 -0.0303988 0.352517 0.935312 -0.0279873 0.350829 0.936021 -0.0908691 0.34427 0.934463 -0.0837342 0.343928 0.935255 -0.0903947 0.342471 0.93517 -0.0827921 0.340057 0.936753 -0.14954 0.325973 0.933477 -0.136628 0.324937 0.935814 -0.146947 0.320322 0.935842 -0.134812 0.320619 0.937566 -0.204797 0.297976 0.932346 -0.184705 0.296421 0.937026 -0.197424 0.287248 0.93729 -0.331046 0.134516 0.933977 -0.311791 0.154413 0.93752 -0.306307 0.181912 0.93439 -0.319671 0.158313 0.93421 -0.30839 0.18315 0.933462 -0.281561 0.202956 0.937834 -0.27531 0.229606 0.933534 -0.248916 0.254557 0.934474 -0.273038 0.227711 0.934665 -0.24291 0.248418 0.937701 -0.23513 0.270011 0.933707 -0.182667 0.293153 0.938453 -0.414556 0.168449 0.894298 -0.624692 0.245955 0.741125 -0.624698 0.245957 0.741119 -0.894835 0.356711 0.268379 -0.894833 0.356709 0.268389 -0.491843 0.207061 0.845704 -0.459327 0.272789 0.845343 -0.459326 0.272789 0.845343 -0.459325 0.272789 0.845344 -0.410268 0.34216 0.845344 -0.41027 0.342163 0.845342 -0.410272 0.342163 0.845341 -0.350836 0.402881 0.845341 -0.350835 0.40288 0.845341 -0.282524 0.453408 0.845341 -0.282525 0.453406 0.845342 -0.282525 0.453406 0.845342 -0.207069 0.492464 0.845341 -0.207069 0.492464 0.845341 -0.0424826 0.532532 0.845343 -0.042483 0.532534 0.845342 -0.126374 0.519064 0.845341 -0.126374 0.519065 0.845341 -0.126374 0.519065 0.845341 -0.207069 0.492464 0.845341 -0.0654664 0.820635 0.56769 -0.0654662 0.820635 0.567691 -0.194742 0.799877 0.567691 -0.194742 0.799876 0.567691 -0.319092 0.758885 0.567692 -0.319091 0.758885 0.567692 -0.43537 0.698698 0.567692 -0.435369 0.698697 0.567694 -0.540635 0.620836 0.567695 -0.540636 0.620837 0.567693 -0.632225 0.527272 0.567693 -0.632229 0.527274 0.567687 -0.707828 0.420371 0.567686 -0.707825 0.420371 0.56769 -0.761147 0.312977 0.568067 -0.794582 0.320198 0.515861 -0.0779198 0.976743 0.199752 -0.0779197 0.976743 0.199752 -0.231788 0.952037 0.199751 -0.231787 0.952036 0.199755 -0.379792 0.903247 0.199755 -0.379793 0.903248 0.19975 -0.518191 0.831612 0.19975 -0.518191 0.831612 0.19975 -0.643482 0.738939 0.199749 -0.643481 0.738939 0.199752 -0.752495 0.627575 0.199752 -0.752494 0.627575 0.199757 -0.842473 0.500336 0.199758 -0.842475 0.500336 0.19975 -0.907589 0.369224 0.199889 -0.92697 0.370782 0.0569784 0.96212 -0.272625 0 0.96212 -0.272625 0 1 0 0 1 0 0 0.96212 0.272625 0 0.96212 0.272625 0 0.130526 -0.991445 0 0.130526 -0.991445 0 0.382684 -0.923879 0 0.382684 -0.923879 0 0.608761 -0.793353 0 0.608761 -0.793353 0 0.793353 -0.608762 0 0.793353 -0.608762 0 0.92388 -0.382683 0 0.92388 -0.382683 0 0.991445 -0.130526 0 0.991445 -0.130526 0 0.991445 0.130526 0 0.991445 0.130526 0 0.92388 0.382683 0 0.92388 0.382683 0 0.793353 0.608762 0 0.793353 0.608762 0 0.608761 0.793353 0 0.608761 0.793353 0 0.382684 0.923879 0 0.382684 0.923879 0 0.130526 0.991445 0 0.130526 0.991445 0 -0.00762506 0.0871549 0.996166 -0.00908881 0.0690364 0.997573 -0.0259299 0.0967718 0.994969 -0.02593 0.0967718 0.994969 -0.0266471 0.0643317 0.997573 -0.0369739 0.0792908 0.996166 -0.0501808 0.0716657 0.996166 -0.0423892 0.0552426 0.997573 -0.0708418 0.0708417 0.994969 -0.0708418 0.0708417 0.994969 -0.0552429 0.0423893 0.997573 -0.0716659 0.050181 0.996166 -0.079291 0.036974 0.996166 -0.0643315 0.0266469 0.997573 -0.0967716 0.0259298 0.994969 -0.0967716 0.0259298 0.994969 -0.0690364 0.00908883 0.997573 -0.0871551 0.00762508 0.996166 -0.0871551 -0.00762508 0.996166 -0.0690364 -0.00908883 0.997573 -0.0967716 -0.0259298 0.994969 -0.0967716 -0.0259298 0.994969 -0.0643315 -0.0266469 0.997573 -0.079291 -0.036974 0.996166 -0.0716659 -0.050181 0.996166 -0.0552429 -0.0423894 0.997573 -0.0708418 -0.0708417 0.994969 -0.0708418 -0.0708417 0.994969 -0.0423892 -0.0552427 0.997573 -0.0501807 -0.0716656 0.996166 -0.0369738 -0.0792906 0.996166 -0.0266471 -0.0643317 0.997573 -0.00762507 -0.0871547 0.996166 -0.00908881 -0.0690364 0.997573 -0.0259299 -0.0967718 0.994969 -0.02593 -0.0967718 0.994969 -0.103314 0.391432 -0.914389 -0.168426 0.367131 -0.914794 -0.228289 0.332149 -0.915184 -0.28118 0.287558 -0.915559 -0.325593 0.23469 -0.91592 -0.0250246 0.286033 0.957893 -0.0743135 0.277342 0.957893 -0.164688 0.2352 0.957893 -0.203029 0.203028 0.957893 -0.277342 0.0743134 0.957893 -0.2352 -0.164689 0.957893 -0.203029 -0.203028 0.957893 -0.121345 -0.260225 0.957893 -0.0743138 -0.277342 0.957893 -0.532964 -0.172025 -0.828467 -0.948459 0.27812 -0.151904 -0.925926 -0.267803 0.26635 -0.5376 0.168863 -0.826119 -0.530086 -0.23555 -0.814571 -0.537596 0.168864 -0.82612 -0.565127 -0.503825 -0.653293 -0.620659 -0.431601 -0.654601 -0.918189 -0.33283 -0.214833 -0.840138 -0.411529 -0.353288 -0.869561 -0.362167 -0.335705 -0.776421 -0.241064 -0.582288 -0.776416 -0.241063 -0.582294 -0.925927 -0.267803 0.266348 -0.913341 -0.394506 0.100865 -0.898692 -0.434064 0.0627815 -0.952128 -0.30021 -0.0576749 -0.952128 -0.30021 -0.057682 -0.562327 -0.378366 0.735273 -0.0630817 -0.896737 0.438046 -0.486803 -0.129968 0.863789 -0.689355 -0.267475 0.673236 -0.796385 -0.231968 0.558536 -0.855697 -0.253222 0.451288 -0.710326 -0.497241 0.498185 -0.83855 -0.368353 0.401434 -0.490923 0.131068 0.861287 -0.506214 0.0442881 0.86127 -0.506209 0.0442871 0.861273 -0.506209 -0.0442877 0.861273 -0.506214 -0.0442876 0.86127 -0.490833 -0.131518 0.86127 -0.724237 0.247118 0.643749 -0.827406 0.333642 0.451755 -0.773746 0.422538 0.471995 -0.882703 0.322957 0.341372 -0.948459 0.27812 -0.151905 -0.922669 0.385344 0.0138432 -0.898905 0.433621 0.0627844 -0.937941 0.297011 0.179029 -0.937937 0.297009 0.179051 -0.768048 0.232432 -0.596722 -0.76805 0.232433 -0.596719 -0.869561 0.362167 -0.335705 -0.789675 0.483613 -0.377535 -0.87349 0.386298 -0.296292 -0.763937 -0.0854978 -0.639602 -0.401227 0.670837 -0.623694 -0.598048 0.461709 -0.655106 -0.359739 0.176495 -0.916208 -0.359739 0.176495 -0.916208 -0.278627 0.18461 -0.942489 -0.391617 0.201861 -0.897713 -0.526051 0.233629 -0.817733 -0.0250247 -0.286033 0.957893 -0.0250247 -0.286033 0.957893 -0.0743135 -0.277342 0.957893 -0.164689 -0.2352 0.957893 -0.203029 -0.203029 0.957893 -0.286033 0.0250246 0.957893 -0.286033 0.0250244 0.957893 -0.286033 -0.0250247 0.957893 -0.286033 -0.0250244 0.957893 -0.277342 -0.0743133 0.957893 -0.277342 -0.0743135 0.957893 -0.277342 -0.0743134 0.957893 -0.277342 0.0743133 0.957893 -0.277342 0.0743135 0.957893 -0.4867 0.130411 0.86378 -0.0630825 0.896736 0.438047 -0.583045 0.336891 0.739299 -0.72422 0.247112 0.643771 -0.2352 0.164689 0.957893 -0.203029 0.203028 0.957893 -0.121345 0.260224 0.957893 -0.0743137 0.277342 0.957893 -0.0250246 0.286033 0.957893 -0.0455653 0.520815 0.852453 -0.075017 0.637379 0.76689 -0.430279 -0.200642 -0.880115 -0.665227 -0.310201 -0.679153 -0.665228 -0.310201 -0.679152 -0.853979 -0.398216 -0.334879 -0.853978 -0.398216 -0.33488 -0.904515 -0.421782 0.0628624 -0.904515 -0.421782 0.0628619 -0.809087 -0.377284 0.450594 -0.809087 -0.377283 0.450595 -0.582389 -0.271572 0.766206 -0.58239 -0.271573 0.766205 -0.260224 -0.121345 0.957893 -0.260224 -0.121345 0.957893 -0.424998 0.19818 -0.883233 -0.665228 0.310201 -0.679151 -0.665227 0.3102 -0.679153 -0.853978 0.398216 -0.33488 -0.853979 0.398216 -0.33488 -0.904516 0.421782 0.0628618 -0.904515 0.421782 0.0628627 -0.809087 0.377283 0.450595 -0.809088 0.377283 0.450594 -0.58239 0.271572 0.766205 -0.582389 0.271573 0.766206 -0.260224 0.121345 0.957893 -0.260224 0.121345 0.957893 -0.103314 -0.391431 -0.914389 -0.0455654 -0.520815 0.852453 -0.0750169 -0.637378 0.766891 -0.0596158 -0.681415 0.729465 -0.077806 -0.889331 0.450595 -0.0778062 -0.889331 0.450595 -0.0869831 -0.994224 0.0628618 -0.0869834 -0.994224 0.0628624 -0.0821234 -0.938675 -0.33488 -0.0821234 -0.938675 -0.33488 -0.0639721 -0.731205 -0.679152 -0.0639718 -0.731204 -0.679152 -0.0354471 -0.405165 -0.913556 -0.034863 -0.404284 -0.913969 -0.16843 -0.36713 -0.914794 -0.0743137 -0.277342 0.957893 -0.166316 -0.6207 0.766206 -0.166316 -0.620699 0.766206 -0.231056 -0.862309 0.450595 -0.231055 -0.86231 0.450595 -0.258307 -0.964015 0.0628622 -0.258307 -0.964015 0.0628616 -0.243875 -0.910154 -0.33488 -0.243875 -0.910154 -0.33488 -0.189972 -0.708987 -0.679153 -0.189973 -0.708988 -0.679152 -0.105491 -0.393695 -0.913168 -0.103317 -0.391431 -0.914389 -0.228287 -0.332151 -0.915184 -0.121345 -0.260224 0.957893 -0.271573 -0.58239 0.766205 -0.271573 -0.582389 0.766206 -0.377283 -0.809087 0.450595 -0.377284 -0.809087 0.450595 -0.421783 -0.904515 0.0628621 -0.421783 -0.904515 0.0628623 -0.398217 -0.853978 -0.33488 -0.398217 -0.853978 -0.33488 -0.310201 -0.665227 -0.679152 -0.310201 -0.665227 -0.679153 -0.17261 -0.370163 -0.91279 -0.168421 -0.367133 -0.914794 -0.28118 -0.287558 -0.915559 -0.164689 -0.2352 0.957893 -0.368578 -0.526384 0.766205 -0.368578 -0.526384 0.766205 -0.512048 -0.73128 0.450596 -0.512048 -0.731281 0.450595 -0.572442 -0.817532 0.0628609 -0.572442 -0.817532 0.0628624 -0.540459 -0.771855 -0.334879 -0.540458 -0.771855 -0.33488 -0.421003 -0.601256 -0.679152 -0.421003 -0.601256 -0.679152 -0.234738 -0.335241 -0.912421 -0.228285 -0.332152 -0.915184 -0.325593 -0.23469 -0.91592 -0.203029 -0.203029 0.957893 -0.454384 -0.454384 0.766205 -0.454384 -0.454384 0.766205 -0.631254 -0.631254 0.450596 -0.631254 -0.631254 0.450596 -0.705709 -0.705708 0.0628623 -0.705708 -0.705709 0.0628608 -0.666279 -0.666279 -0.33488 -0.666279 -0.666279 -0.334879 -0.519015 -0.519015 -0.679152 -0.519015 -0.519015 -0.679152 -0.289952 -0.289952 -0.912061 -0.281181 -0.287557 -0.915559 -0.359739 -0.176495 -0.916208 -0.35142 -0.19118 -0.91649 -0.315237 -0.154662 -0.936325 -0.2352 -0.164688 0.957893 -0.526383 -0.368577 0.766206 -0.526384 -0.368578 0.766205 -0.731281 -0.512049 0.450594 -0.73128 -0.512047 0.450596 -0.817532 -0.572442 0.0628623 -0.817532 -0.572442 0.0628624 -0.771855 -0.540458 -0.334879 -0.771855 -0.540459 -0.334881 -0.601255 -0.421004 -0.679153 -0.601256 -0.421004 -0.679152 -0.336534 -0.235643 -0.911711 -0.32559 -0.234693 -0.91592 -0.2352 0.164689 0.957893 -0.526384 0.368578 0.766205 -0.526383 0.368578 0.766206 -0.73128 0.512048 0.450596 -0.731281 0.512048 0.450594 -0.817532 0.572442 0.0628624 -0.817532 0.572442 0.0628627 -0.771855 0.540458 -0.334881 -0.771855 0.540459 -0.33488 -0.601256 0.421004 -0.679152 -0.601255 0.421003 -0.679153 -0.329076 0.230422 -0.915759 -0.334344 0.241004 -0.911115 -0.203029 0.203028 0.957893 -0.454384 0.454384 0.766205 -0.454384 0.454384 0.766205 -0.631254 0.631254 0.450596 -0.631254 0.631254 0.450596 -0.705708 0.705708 0.0628609 -0.705708 0.705709 0.0628623 -0.666279 0.66628 -0.334879 -0.666279 0.666279 -0.334881 -0.519015 0.519015 -0.679152 -0.519015 0.519015 -0.679152 -0.284604 0.284604 -0.915424 -0.28735 0.293865 -0.911632 -0.164689 0.2352 0.957893 -0.368578 0.526384 0.766205 -0.368578 0.526384 0.766205 -0.512048 0.73128 0.450595 -0.512048 0.73128 0.450595 -0.572442 0.817532 0.0628628 -0.572443 0.817532 0.0628609 -0.540459 0.771854 -0.334881 -0.540458 0.771855 -0.334879 -0.421004 0.601256 -0.679152 -0.421004 0.601256 -0.679152 -0.231312 0.330348 -0.915077 -0.23217 0.337804 -0.912132 -0.121345 0.260224 0.957893 -0.271573 0.58239 0.766205 -0.271573 0.58239 0.766205 -0.377283 0.809087 0.450595 -0.377283 0.809087 0.450595 -0.421782 0.904515 0.0628611 -0.421782 0.904516 0.0628627 -0.398216 0.853979 -0.334878 -0.398217 0.853978 -0.334881 -0.310201 0.665228 -0.679152 -0.310201 0.665228 -0.679152 -0.170779 0.366237 -0.914716 -0.170463 0.371585 -0.912616 -0.0743137 0.277342 0.957893 -0.166316 0.6207 0.766205 -0.166316 0.6207 0.766205 -0.231055 0.86231 0.450595 -0.231055 0.862309 0.450595 -0.258307 0.964016 0.0628616 -0.258307 0.964016 0.0628608 -0.243875 0.910154 -0.334879 -0.243875 0.910155 -0.334879 -0.189972 0.708987 -0.679152 -0.189972 0.708987 -0.679152 -0.104807 0.391147 -0.914341 -0.104067 0.394271 -0.913083 -0.0596162 0.681415 0.729465 -0.0778066 0.889331 0.450595 -0.0778067 0.889331 0.450595 -0.0869837 0.994224 0.062861 -0.0869834 0.994224 0.0628618 -0.0821235 0.938676 -0.334879 -0.0821234 0.938676 -0.334879 -0.0639721 0.731204 -0.679152 -0.0639722 0.731204 -0.679152 -0.0353697 0.404277 -0.913953 -0.0349471 0.405259 -0.913534 -0.519702 -0.257376 0.814657 -0.513151 -0.279924 0.811369 -0.708909 -0.234792 0.665072 -0.456018 -0.225841 0.860839 -0.901964 -0.425591 -0.0730297 -0.88721 -0.460749 0.0238369 -0.803654 -0.416175 0.42537 -0.853534 -0.386107 0.349859 -0.679003 -0.3649 0.637027 -0.752603 -0.358783 -0.552145 -0.847836 -0.452689 -0.27613 -0.847839 -0.45269 -0.276117 -0.368698 -0.265766 -0.890747 -0.407938 -0.200142 -0.890803 -0.322372 -0.158162 -0.933307 -0.570763 -0.196681 -0.797212 -0.402713 -0.215507 -0.889595 -0.556504 -0.293481 -0.777285 -0.750361 -0.359284 -0.554863 -0.0390484 -0.45282 -0.890747 -0.115988 -0.439451 -0.890747 -0.115992 -0.439449 -0.890747 -0.189521 -0.413101 -0.890747 -0.189511 -0.413105 -0.890747 -0.257436 -0.374562 -0.890747 -0.257435 -0.374563 -0.890747 -0.317756 -0.324964 -0.890747 -0.317757 -0.324962 -0.890747 -0.3687 -0.265763 -0.890747 -0.0390483 -0.452819 -0.890747 -0.0716161 -0.830489 -0.552413 -0.0716162 -0.830489 -0.552413 -0.085685 -0.993637 -0.0731046 -0.0856847 -0.993637 -0.0731054 -0.0777805 -0.901977 0.424722 -0.0777807 -0.901976 0.424722 -0.0498457 -0.57803 0.814492 -0.0498457 -0.57803 0.814492 -0.148065 -0.560963 0.814492 -0.115992 -0.43945 -0.890747 -0.212734 -0.805968 -0.552413 -0.212734 -0.805968 -0.552413 -0.254525 -0.964299 -0.0731044 -0.254525 -0.964299 -0.0731048 -0.231046 -0.875346 0.424721 -0.231046 -0.875345 0.424722 -0.148066 -0.560963 0.814492 -0.148064 -0.560964 0.814492 -0.241913 -0.527334 0.814492 -0.189511 -0.413105 -0.890747 -0.347571 -0.757651 -0.552412 -0.34757 -0.757651 -0.552413 -0.41585 -0.90649 -0.0731059 -0.415851 -0.90649 -0.0731039 -0.37749 -0.822868 0.424723 -0.377489 -0.822869 0.424721 -0.241913 -0.527334 0.814492 -0.241913 -0.527333 0.814492 -0.328619 -0.478134 0.814492 -0.257434 -0.374563 -0.890747 -0.472145 -0.686964 -0.552413 -0.472146 -0.686964 -0.552411 -0.564898 -0.821916 -0.0731055 -0.564897 -0.821916 -0.0731059 -0.512787 -0.746097 0.424722 -0.512787 -0.746096 0.424723 -0.328619 -0.478134 0.814492 -0.328619 -0.478135 0.814492 -0.405624 -0.414816 0.814492 -0.317758 -0.324962 -0.890747 -0.58278 -0.595993 -0.552412 -0.582779 -0.595993 -0.552413 -0.697266 -0.713075 -0.073104 -0.697265 -0.713076 -0.0731057 -0.632945 -0.647297 0.42472 -0.632945 -0.647296 0.424722 -0.405621 -0.414818 0.814492 -0.405621 -0.414818 0.814492 -0.368698 -0.265767 -0.890747 -0.676208 -0.487427 -0.55241 -0.676207 -0.487427 -0.552412 -0.809046 -0.583181 -0.0731074 -0.809047 -0.58318 -0.0731039 -0.734415 -0.529383 0.424722 -0.734415 -0.529384 0.42472 -0.470648 -0.339254 0.814492 -0.470648 -0.339255 0.814492 -0.0281238 -0.35254 0.935374 -0.0302351 -0.350618 0.93603 -0.0840091 -0.345054 0.934816 -0.0903939 -0.342471 0.93517 -0.0837346 -0.343928 0.935255 -0.0894087 -0.338735 0.936624 -0.138125 -0.3285 0.934349 -0.146947 -0.320322 0.935842 -0.136629 -0.324937 0.935814 -0.145549 -0.317274 0.937098 -0.188973 -0.30327 0.933979 -0.197424 -0.287248 0.93729 -0.184704 -0.296422 0.937026 -0.19717 -0.286879 0.937456 -0.23513 -0.270011 0.933707 -0.24291 -0.248418 0.937701 -0.273038 -0.227711 0.934665 -0.248916 -0.254557 0.934474 -0.27531 -0.229606 0.933534 -0.28156 -0.202956 0.937834 -0.30839 -0.18315 0.933462 -0.319671 -0.158313 0.93421 -0.306307 -0.181913 0.93439 -0.311791 -0.154413 0.93752 -0.331046 -0.134516 0.933977 -0.874297 -0.349452 0.33688 -0.920809 -0.368318 0.128271 -0.55587 -0.222216 0.801018 -0.555884 -0.222222 0.801006 -0.0424827 -0.532535 0.845341 -0.0424828 -0.532534 0.845342 -0.126375 -0.519064 0.845341 -0.126374 -0.519063 0.845342 -0.126374 -0.519063 0.845342 -0.207067 -0.492463 0.845342 -0.207069 -0.492464 0.845341 -0.207069 -0.49246 0.845343 -0.282523 -0.453404 0.845343 -0.282525 -0.453405 0.845342 -0.282523 -0.453407 0.845342 -0.350835 -0.40288 0.845342 -0.350836 -0.402881 0.845341 -0.410272 -0.342163 0.845341 -0.41027 -0.342163 0.845342 -0.379793 -0.154324 0.912108 -0.492397 -0.205886 0.845669 -0.459327 -0.27279 0.845343 -0.459326 -0.272789 0.845344 -0.459325 -0.272789 0.845344 -0.410268 -0.34216 0.845344 -0.767446 -0.311398 0.56041 -0.763124 -0.308423 0.567906 -0.707826 -0.42037 0.56769 -0.707828 -0.420372 0.567686 -0.632229 -0.527275 0.567687 -0.632226 -0.527272 0.567693 -0.540636 -0.620837 0.567693 -0.540636 -0.620836 0.567693 -0.43537 -0.698697 0.567693 -0.435371 -0.698699 0.56769 -0.319092 -0.758887 0.567689 -0.319092 -0.758885 0.567692 -0.194742 -0.799876 0.567691 -0.194742 -0.799877 0.567691 -0.0654658 -0.820635 0.567691 -0.0654657 -0.820635 0.56769 -0.874298 -0.349452 0.336876 -0.907284 -0.369968 0.1999 -0.842474 -0.500337 0.19975 -0.842473 -0.500336 0.199758 -0.752494 -0.627574 0.199757 -0.752494 -0.627575 0.199753 -0.643481 -0.738939 0.199754 -0.643482 -0.73894 0.199749 -0.518191 -0.831612 0.19975 -0.518191 -0.831611 0.199754 -0.379793 -0.903247 0.199754 -0.379793 -0.903247 0.199755 -0.231788 -0.952036 0.199755 -0.231787 -0.952037 0.199752 -0.0779191 -0.976743 0.199752 -0.0779197 -0.976743 0.199757 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 -0.825192 -0.564853 0 -0.836544 -0.5479 0 -0.875274 -0.432228 0.216964 -0.825192 -0.564853 0 -0.650177 -0.759783 0 -0.650177 -0.759783 0 -0.412039 -0.911166 0 -0.412039 -0.911166 0 -0.141091 -0.989997 0 -0.141091 -0.989997 0 -0.896633 0.442776 0 -0.836112 0.547618 0.0321216 -0.141091 0.989997 0 -0.141091 0.989997 0 -0.412039 0.911166 0 -0.412039 0.911166 0 -0.650177 0.759783 0 -0.650177 0.759783 0 -0.825191 0.564853 0 -0.825191 0.564853 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0.5143 0.26692 0.815015 0.798442 0.215344 0.562244 0.518096 0.256589 0.815928 0.582121 0.246213 0.774929 0.393737 0.194996 0.898303 0.898154 0.433564 -0.0730865 0.894098 0.445366 -0.0473061 0.853696 0.453933 0.255241 0.798755 0.425282 0.425589 0.893788 0.360177 0.267238 0.75318 0.389079 0.530412 0.664269 0.348759 -0.661146 0.664259 0.348754 -0.661158 0.757897 0.348321 -0.551602 0.820368 0.442142 -0.362637 0.820369 0.442143 -0.362635 0.228106 0.109806 -0.967424 0.414081 0.184905 -0.891262 0.263268 0.184339 -0.946947 0.419954 0.193585 -0.886659 0.377959 0.26465 -0.887191 0.0397221 0.454025 -0.890103 0.0397187 0.454025 -0.890103 0.118267 0.441379 -0.889493 0.118259 0.441382 -0.889492 0.193605 0.415188 -0.888896 0.193605 0.415188 -0.888896 0.263409 0.376186 -0.888313 0.263406 0.376188 -0.888313 0.325507 0.325507 -0.887745 0.325508 0.325506 -0.887745 0.0390482 0.452819 -0.890747 0.0716161 0.830489 -0.552412 0.0716163 0.830489 -0.552412 0.0856852 0.993637 -0.0731052 0.0856851 0.993637 -0.0731054 0.0777809 0.901977 0.424721 0.0777812 0.901976 0.424722 0.0498459 0.57803 0.814492 0.0498457 0.57803 0.814492 0.148065 0.560963 0.814492 0.115667 0.438219 -0.891395 0.212734 0.805969 -0.552412 0.212734 0.805968 -0.552413 0.254525 0.964299 -0.0731053 0.254525 0.964299 -0.0731048 0.231046 0.875345 0.424722 0.231046 0.875346 0.424721 0.148065 0.560963 0.814492 0.148066 0.560963 0.814492 0.241913 0.527334 0.814492 0.188467 0.41083 -0.892019 0.34757 0.757651 -0.552413 0.347571 0.757651 -0.552412 0.415851 0.90649 -0.0731043 0.41585 0.90649 -0.0731054 0.377489 0.822869 0.424722 0.377489 0.822869 0.424722 0.241914 0.527335 0.814491 0.241914 0.527334 0.814492 0.32862 0.478135 0.814491 0.255345 0.371523 -0.892619 0.472146 0.686964 -0.552412 0.472145 0.686963 -0.552413 0.564898 0.821916 -0.0731042 0.564898 0.821916 -0.0731038 0.512787 0.746097 0.424722 0.512787 0.746097 0.424721 0.328619 0.478135 0.814492 0.328619 0.478135 0.814492 0.40562 0.41482 0.814492 0.314378 0.321506 -0.893197 0.58278 0.595994 -0.552412 0.582779 0.595994 -0.552413 0.697265 0.713076 -0.0731073 0.697266 0.713075 -0.0731037 0.632945 0.647295 0.424723 0.632945 0.647296 0.424722 0.405622 0.414819 0.814491 0.405622 0.414819 0.814491 0.363883 0.262295 -0.893751 0.676207 0.487426 -0.552413 0.676208 0.487426 -0.552412 0.809047 0.58318 -0.0731044 0.809046 0.583181 -0.0731075 0.734414 0.529384 0.424722 0.734414 0.529383 0.424723 0.470649 0.339255 0.814491 0.470648 0.339254 0.814492 0.0281238 0.35254 0.935374 0.0302352 0.350619 0.93603 0.0840085 0.345055 0.934815 0.090395 0.342471 0.93517 0.0837344 0.343928 0.935255 0.0894085 0.338735 0.936624 0.138126 0.3285 0.934349 0.146947 0.320322 0.935842 0.136627 0.324938 0.935814 0.145548 0.317273 0.937098 0.188973 0.30327 0.933979 0.197424 0.287248 0.93729 0.184704 0.296422 0.937026 0.19717 0.286879 0.937456 0.23513 0.270011 0.933707 0.24291 0.248418 0.937701 0.273038 0.227711 0.934665 0.248914 0.254559 0.934474 0.275309 0.229607 0.933534 0.281561 0.202955 0.937834 0.308389 0.183149 0.933463 0.319669 0.158317 0.93421 0.306307 0.181912 0.93439 0.311791 0.154413 0.93752 0.331046 0.134516 0.933977 0.894833 0.356708 0.268389 0.926969 0.370782 0.0570098 0.62469 0.245954 0.741127 0.624691 0.245955 0.741125 0.0424829 0.532532 0.845343 0.0424828 0.532534 0.845342 0.126373 0.519063 0.845342 0.126374 0.519064 0.845341 0.126374 0.519065 0.845341 0.207069 0.492464 0.845341 0.207069 0.492464 0.845341 0.207069 0.492466 0.84534 0.282527 0.453408 0.84534 0.282523 0.453405 0.845343 0.282522 0.453406 0.845343 0.350834 0.402878 0.845343 0.350834 0.402878 0.845343 0.410269 0.342161 0.845343 0.410268 0.342161 0.845344 0.414563 0.168452 0.894294 0.491844 0.20706 0.845704 0.459327 0.272789 0.845343 0.459327 0.27279 0.845342 0.459329 0.272791 0.845342 0.41027 0.342163 0.845342 0.792124 0.328769 0.514248 0.763124 0.308422 0.567906 0.707825 0.420371 0.56769 0.707824 0.42037 0.567692 0.632226 0.527272 0.567692 0.632228 0.527274 0.567688 0.540638 0.620839 0.567688 0.540637 0.620838 0.56769 0.43537 0.698699 0.56769 0.43537 0.698698 0.567692 0.319092 0.758885 0.567692 0.319092 0.758887 0.567689 0.194742 0.799877 0.56769 0.194742 0.799877 0.567691 0.0654663 0.820635 0.567691 0.0654662 0.820635 0.56769 0.894836 0.356709 0.268379 0.907589 0.369223 0.199889 0.842474 0.500337 0.19975 0.842474 0.500337 0.19975 0.752495 0.627576 0.19975 0.752495 0.627576 0.199752 0.643482 0.738939 0.199752 0.643482 0.738939 0.199749 0.518191 0.831612 0.19975 0.518191 0.831611 0.199755 0.379792 0.903248 0.199754 0.379792 0.903247 0.199755 0.231788 0.952036 0.199755 0.231788 0.952037 0.199752 0.0779198 0.976743 0.199752 0.0779197 0.976743 0.199752 -0.962121 0.272624 0 -0.962121 0.272624 0 -1 0 0 -1 0 0 -0.962121 -0.272624 0 -0.962121 -0.272624 0 -0.130526 0.991445 0 -0.130526 0.991445 0 -0.382683 0.92388 0 -0.382683 0.92388 0 -0.608761 0.793353 0 -0.608761 0.793353 0 -0.793354 0.608761 0 -0.793354 0.608761 0 -0.923879 0.382684 0 -0.923879 0.382684 0 -0.991445 0.130525 0 -0.991445 0.130525 0 -0.991445 -0.130525 0 -0.991445 -0.130525 0 -0.923879 -0.382684 0 -0.923879 -0.382684 0 -0.793354 -0.608761 0 -0.793354 -0.608761 0 -0.608761 -0.793353 0 -0.608761 -0.793353 0 -0.382683 -0.92388 0 -0.382683 -0.92388 0 -0.130526 -0.991445 0 -0.130526 -0.991445 0 0.00762508 -0.0871547 0.996166 0.00908882 -0.0690364 0.997573 0.0259299 -0.0967718 0.994969 0.0259299 -0.0967718 0.994969 0.026647 -0.0643316 0.997573 0.036974 -0.0792909 0.996166 0.050181 -0.0716659 0.996166 0.0423894 -0.0552429 0.997573 0.0708423 -0.0708422 0.994969 0.0708422 -0.0708423 0.994969 0.0552429 -0.0423893 0.997573 0.0716653 -0.0501807 0.996166 0.0792904 -0.0369736 0.996166 0.0643317 -0.0266471 0.997573 0.0967715 -0.0259301 0.994969 0.0967716 -0.0259298 0.994969 0.0690362 -0.00908874 0.997573 0.0871543 -0.00762501 0.996166 0.0871543 0.00762501 0.996166 0.0690362 0.00908874 0.997573 0.0967716 0.0259298 0.994969 0.0967715 0.0259301 0.994969 0.0643318 0.0266471 0.997573 0.0792904 0.0369736 0.996166 0.0716654 0.0501806 0.996166 0.0552428 0.0423892 0.997573 0.0708421 0.0708424 0.994969 0.0708423 0.0708422 0.994969 0.0423893 0.0552429 0.997573 0.0501811 0.0716661 0.996166 0.0369741 0.079291 0.996166 0.026647 0.0643316 0.997573 0.00762507 0.0871549 0.996166 0.00908882 0.0690364 0.997573 0.0259299 0.0967718 0.994969 0.0259299 0.0967718 0.994969 0.0353766 -0.404275 -0.913953 0.105032 -0.391994 -0.913952 0.17151 -0.367797 -0.913953 0.232766 -0.332432 -0.913952 0.28696 -0.286958 -0.913953 0.0778061 -0.889331 0.450595 0.166316 -0.620699 0.766206 0.2352 -0.164689 0.957893 0.2352 0.164689 0.957893 0.203029 0.203029 0.957893 0.121345 0.260224 0.957893 0.0743136 0.277342 0.957893 0.583049 0.336883 0.739299 0.0630798 0.896737 0.438045 0.486797 0.129966 0.863792 0.506216 -0.0442884 0.861269 0.506216 0.0442882 0.861269 0.506214 0.0442882 0.86127 0.490833 0.131518 0.86127 0.796387 -0.231959 0.558537 0.689357 -0.267467 0.673238 0.562331 -0.378359 0.735274 0.83855 -0.368353 0.401434 0.913343 -0.3945 0.100865 0.925928 -0.267797 0.266349 0.92593 -0.267797 0.266342 0.77641 -0.241053 -0.582307 0.952129 -0.300204 -0.0576821 0.918195 -0.332822 -0.214819 0.537602 0.168837 -0.826122 0.537603 0.168836 -0.826122 0.528352 -0.640557 -0.557253 0.33243 -0.232766 -0.913953 0.365353 -0.175875 -0.914104 0.31379 -0.181283 -0.932026 0.391612 0.20186 -0.897715 0.532964 -0.172025 -0.828467 0.532965 -0.17203 -0.828465 0.532961 -0.172026 -0.828468 0.565546 0.503154 -0.653447 0.598038 0.461719 -0.655108 0.948461 0.278114 -0.151905 0.948462 0.278115 -0.151897 0.87349 0.386298 -0.296292 0.789675 0.483613 -0.377535 0.869561 0.362167 -0.335705 0.768039 0.232421 -0.596738 0.768052 0.232426 -0.59672 0.77375 0.422531 0.471994 0.827406 0.333642 0.451755 0.724215 0.247102 0.643781 0.724221 0.247104 0.643773 0.882698 0.322958 0.341382 0.937944 0.297005 0.179025 0.951279 0.301817 0.063046 0.836999 0.523362 0.159766 0.922675 0.38533 0.0138297 0.0250246 0.286033 0.957893 0.0250247 0.286033 0.957893 0.0743135 0.277342 0.957893 0.164689 0.2352 0.957893 0.203029 0.203028 0.957893 0.277342 0.0743142 0.957893 0.277343 0.0743137 0.957893 0.277343 0.0743135 0.957893 0.286034 0.0250248 0.957893 0.286033 0.0250246 0.957893 0.286033 -0.0250248 0.957893 0.286034 -0.0250247 0.957893 0.277343 -0.0743135 0.957893 0.277343 -0.0743137 0.957893 0.0743135 -0.277342 0.957893 0.0743137 -0.277342 0.957893 0.0743136 -0.277342 0.957893 0.121345 -0.260225 0.957893 0.0596159 -0.681415 0.729465 0.075017 -0.637378 0.766891 0.0455654 -0.520815 0.852453 0.0250247 -0.286033 0.957893 0.0250248 -0.286033 0.957893 0.164689 -0.2352 0.957893 0.121345 -0.260224 0.957893 0.271572 -0.582389 0.766206 0.166316 -0.620699 0.766206 0.231055 -0.86231 0.450595 0.0778063 -0.889331 0.450595 0.0869832 -0.994224 0.0628624 0.203029 -0.203029 0.957893 0.164689 -0.2352 0.957893 0.368577 -0.526383 0.766206 0.271573 -0.582389 0.766206 0.377283 -0.809087 0.450595 0.231055 -0.862309 0.450595 0.258307 -0.964015 0.0628624 0.0869834 -0.994224 0.062862 0.0821234 -0.938675 -0.33488 0.203029 -0.203029 0.957893 0.203029 -0.203029 0.957893 0.454383 -0.454383 0.766206 0.368577 -0.526383 0.766206 0.512048 -0.73128 0.450595 0.377283 -0.809087 0.450595 0.421783 -0.904515 0.0628612 0.258308 -0.964015 0.0628615 0.243875 -0.910154 -0.334881 0.0821235 -0.938675 -0.33488 0.0639722 -0.731204 -0.679152 0.476732 0.222303 -0.850475 0.665229 0.310201 -0.679151 0.665227 0.310201 -0.679153 0.853978 0.398217 -0.33488 0.853978 0.398217 -0.33488 0.904515 0.421783 0.0628602 0.904515 0.421782 0.0628617 0.809086 0.377283 0.450596 0.809087 0.377284 0.450595 0.582389 0.271573 0.766206 0.582389 0.271573 0.766206 0.260225 0.121345 0.957893 0.260224 0.121344 0.957893 0.530079 -0.235547 -0.814576 0.430284 -0.200644 -0.880112 0.665227 -0.3102 -0.679153 0.591423 -0.45996 -0.662311 0.77642 -0.241057 -0.582291 0.035366 0.404277 -0.913953 0.0455653 0.520815 0.852453 0.075017 0.637379 0.76689 0.0596163 0.681415 0.729465 0.0778067 0.889331 0.450595 0.0778068 0.889331 0.450595 0.0869838 0.994224 0.062862 0.0869834 0.994224 0.062861 0.0821235 0.938676 -0.334879 0.0821235 0.938676 -0.334879 0.0639721 0.731204 -0.679152 0.0639723 0.731204 -0.679152 0.0353697 0.404277 -0.913953 0.0353697 0.404277 -0.913953 0.105027 0.391995 -0.913952 0.0743137 0.277342 0.957893 0.166316 0.620699 0.766206 0.166316 0.6207 0.766205 0.231055 0.86231 0.450595 0.231055 0.86231 0.450595 0.258307 0.964016 0.0628601 0.258308 0.964015 0.0628623 0.243876 0.910154 -0.334879 0.243875 0.910154 -0.33488 0.189973 0.708987 -0.679152 0.189972 0.708987 -0.679152 0.105034 0.391993 -0.913953 0.105034 0.391993 -0.913953 0.171507 0.367799 -0.913953 0.121345 0.260225 0.957893 0.271573 0.582389 0.766206 0.271572 0.582389 0.766206 0.377283 0.809087 0.450595 0.377283 0.809087 0.450595 0.421782 0.904515 0.0628615 0.421782 0.904516 0.0628599 0.398216 0.853979 -0.33488 0.398217 0.853979 -0.334878 0.310201 0.665228 -0.679152 0.310201 0.665228 -0.679152 0.171507 0.367798 -0.913953 0.171507 0.367799 -0.913953 0.232768 0.33243 -0.913953 0.164689 0.2352 0.957893 0.368577 0.526383 0.766206 0.368577 0.526383 0.766206 0.512048 0.731281 0.450594 0.512048 0.73128 0.450595 0.572442 0.817532 0.0628625 0.572442 0.817532 0.0628613 0.540458 0.771855 -0.334881 0.540459 0.771855 -0.33488 0.421004 0.601256 -0.679152 0.421004 0.601256 -0.679152 0.232769 0.332429 -0.913953 0.232769 0.332429 -0.913953 0.28696 0.286958 -0.913953 0.203029 0.203028 0.957893 0.454383 0.454383 0.766206 0.454383 0.454383 0.766206 0.631255 0.631254 0.450595 0.631255 0.631255 0.450594 0.705708 0.705708 0.0628622 0.705708 0.705708 0.0628628 0.666279 0.666279 -0.334881 0.666279 0.666279 -0.334881 0.519015 0.519015 -0.679152 0.519015 0.519015 -0.679152 0.286959 0.286959 -0.913953 0.286959 0.286959 -0.913953 0.33243 0.232766 -0.913953 0.353753 0.196321 -0.914504 0.280896 0.135218 -0.950165 0.2352 0.164689 0.957893 0.526383 0.368577 0.766206 0.526383 0.368577 0.766206 0.73128 0.512048 0.450596 0.73128 0.512048 0.450594 0.817532 0.572442 0.0628605 0.817532 0.572442 0.0628624 0.771855 0.540458 -0.33488 0.771855 0.540458 -0.334881 0.601256 0.421004 -0.679151 0.601255 0.421004 -0.679152 0.332429 0.232769 -0.913953 0.332429 0.232769 -0.913953 0.332429 -0.23277 -0.913953 0.332429 -0.23277 -0.913953 0.601256 -0.421005 -0.679151 0.665228 -0.310202 -0.679151 0.853978 -0.398217 -0.33488 0.869561 -0.362167 -0.335705 0.840138 -0.411529 -0.353288 0.286959 -0.286959 -0.913953 0.286959 -0.286959 -0.913953 0.519015 -0.519015 -0.679152 0.601256 -0.421004 -0.679152 0.771855 -0.540459 -0.334879 0.853978 -0.398218 -0.334879 0.904515 -0.421783 0.0628619 0.951763 -0.300288 0.0630418 0.838464 -0.542585 -0.0507897 0.232769 -0.332429 -0.913953 0.232769 -0.332429 -0.913953 0.421004 -0.601255 -0.679152 0.519015 -0.519014 -0.679152 0.666279 -0.666279 -0.334881 0.771855 -0.540458 -0.334881 0.817532 -0.572442 0.0628601 0.904515 -0.421783 0.0628599 0.809087 -0.377283 0.450595 0.784339 -0.429265 0.447821 0.796382 -0.231957 0.558545 0.171507 -0.367799 -0.913953 0.171507 -0.367799 -0.913953 0.3102 -0.665228 -0.679152 0.421004 -0.601255 -0.679152 0.540459 -0.771855 -0.334881 0.666279 -0.666278 -0.334881 0.705709 -0.705708 0.0628623 0.817532 -0.572443 0.0628625 0.73128 -0.512048 0.450596 0.809086 -0.377283 0.450596 0.582389 -0.271573 0.766206 0.0630789 -0.896738 0.438044 0.486694 -0.130409 0.863784 0.490923 -0.131068 0.861287 0.506214 -0.0442881 0.86127 0.105034 -0.391992 -0.913953 0.105034 -0.391993 -0.913953 0.189973 -0.708987 -0.679153 0.310201 -0.665227 -0.679153 0.398217 -0.853979 -0.334879 0.540458 -0.771856 -0.334879 0.572442 -0.817532 0.0628626 0.705708 -0.705708 0.0628628 0.631255 -0.631255 0.450594 0.731281 -0.512048 0.450594 0.526383 -0.368577 0.766206 0.582389 -0.271573 0.766206 0.260224 -0.121345 0.957893 0.277342 -0.0743142 0.957893 0.0353696 -0.404276 -0.913953 0.0353694 -0.404276 -0.913953 0.0639719 -0.731205 -0.679152 0.189973 -0.708988 -0.679152 0.243875 -0.910154 -0.33488 0.398217 -0.853978 -0.33488 0.421783 -0.904515 0.0628609 0.572442 -0.817532 0.0628608 0.512048 -0.73128 0.450595 0.631255 -0.631255 0.450594 0.454383 -0.454383 0.766206 0.526383 -0.368577 0.766206 0.2352 -0.164689 0.957893 0.260225 -0.121345 0.957893 0.0396156 -0.452809 -0.890727 0.0397299 -0.454023 -0.890104 0.322522 -0.155257 -0.933742 0.571318 -0.191898 -0.797979 0.734184 -0.393326 -0.553415 0.907242 -0.299355 -0.295462 0.750362 -0.359282 -0.554864 0.556496 -0.293477 -0.777292 0.519701 -0.257383 0.814657 0.456018 -0.225841 0.860839 0.708905 -0.234792 0.665077 0.513151 -0.279923 0.811369 0.679008 -0.364901 0.637021 0.819614 -0.384983 0.424289 0.834334 -0.432351 0.341994 0.884964 -0.459863 -0.0732459 0.913521 -0.406051 0.0245438 0.847836 -0.452691 -0.276125 0.396728 -0.212463 -0.89301 0.377961 -0.264646 -0.887191 0.377959 -0.26465 -0.887191 0.325508 -0.325506 -0.887745 0.325507 -0.325507 -0.887745 0.263405 -0.376189 -0.888313 0.263409 -0.376186 -0.888313 0.193608 -0.415186 -0.888896 0.193605 -0.415188 -0.888896 0.118264 -0.44138 -0.889493 0.118267 -0.441379 -0.889493 0.363882 -0.262295 -0.893751 0.676207 -0.487427 -0.552412 0.676207 -0.487426 -0.552413 0.809047 -0.58318 -0.0731069 0.809046 -0.583181 -0.0731044 0.734414 -0.529384 0.424723 0.734414 -0.529384 0.424722 0.470648 -0.339255 0.814492 0.470649 -0.339255 0.814491 0.405622 -0.414819 0.814491 0.314378 -0.321506 -0.893197 0.582779 -0.595994 -0.552413 0.582779 -0.595995 -0.552412 0.697265 -0.713076 -0.0731031 0.697266 -0.713075 -0.0731066 0.632945 -0.647296 0.424721 0.632944 -0.647296 0.424723 0.405622 -0.414819 0.814491 0.40562 -0.41482 0.814492 0.328619 -0.478135 0.814492 0.255345 -0.371523 -0.892619 0.472145 -0.686963 -0.552413 0.472145 -0.686963 -0.552413 0.564898 -0.821916 -0.0731038 0.564897 -0.821917 -0.0731034 0.512787 -0.746097 0.424721 0.512787 -0.746097 0.424722 0.328619 -0.478135 0.814492 0.32862 -0.478135 0.814491 0.241913 -0.527334 0.814492 0.188467 -0.41083 -0.892019 0.347571 -0.757652 -0.552412 0.347571 -0.757651 -0.552413 0.415851 -0.90649 -0.0731054 0.41585 -0.90649 -0.0731043 0.377489 -0.822869 0.424722 0.377489 -0.822869 0.424722 0.241913 -0.527334 0.814492 0.241913 -0.527334 0.814492 0.148065 -0.560963 0.814492 0.115668 -0.43822 -0.891395 0.212734 -0.805968 -0.552413 0.212734 -0.805969 -0.552412 0.254525 -0.964299 -0.0731039 0.254526 -0.964299 -0.0731053 0.231046 -0.875345 0.424721 0.231046 -0.875345 0.424722 0.148065 -0.560963 0.814492 0.148066 -0.560963 0.814492 0.0391598 -0.454112 -0.890083 0.0716161 -0.830489 -0.552412 0.0716163 -0.830489 -0.552413 0.0856852 -0.993637 -0.0731054 0.0856847 -0.993637 -0.0731043 0.0777805 -0.901976 0.424722 0.0777809 -0.901977 0.424721 0.0498457 -0.57803 0.814492 0.0498457 -0.57803 0.814492 0.0303988 -0.352517 0.935312 0.0279873 -0.350829 0.936021 0.0908691 -0.34427 0.934463 0.0837349 -0.343928 0.935255 0.0903948 -0.342471 0.93517 0.0827919 -0.340057 0.936753 0.14954 -0.325973 0.933477 0.136628 -0.324937 0.935814 0.146947 -0.320322 0.935842 0.134813 -0.320619 0.937566 0.204797 -0.297976 0.932346 0.184705 -0.296421 0.937026 0.197424 -0.287248 0.93729 0.331046 -0.134516 0.933977 0.311791 -0.154413 0.93752 0.306307 -0.181913 0.93439 0.319669 -0.158317 0.93421 0.308389 -0.183149 0.933463 0.281561 -0.202955 0.937834 0.275309 -0.229607 0.933534 0.248914 -0.254559 0.934474 0.273038 -0.227711 0.934665 0.24291 -0.248418 0.937701 0.23513 -0.270011 0.933707 0.182667 -0.293153 0.938453 0.379793 -0.154324 0.912108 0.555884 -0.222221 0.801006 0.555875 -0.222217 0.801013 0.874299 -0.349451 0.336876 0.874298 -0.349451 0.336879 0.492397 -0.205886 0.845669 0.459327 -0.27279 0.845343 0.459327 -0.27279 0.845343 0.459329 -0.272791 0.845342 0.41027 -0.342163 0.845342 0.410268 -0.342161 0.845344 0.410269 -0.342161 0.845343 0.350834 -0.402878 0.845343 0.350833 -0.402878 0.845344 0.282522 -0.453405 0.845343 0.282523 -0.453403 0.845344 0.282525 -0.453406 0.845342 0.207069 -0.492462 0.845342 0.207069 -0.492464 0.845342 0.0424829 -0.532535 0.845341 0.0424827 -0.532534 0.845342 0.126374 -0.519063 0.845342 0.126374 -0.519062 0.845343 0.126374 -0.519063 0.845342 0.207068 -0.492463 0.845342 0.0654658 -0.820635 0.56769 0.0654656 -0.820635 0.567691 0.194742 -0.799877 0.567691 0.194743 -0.799877 0.56769 0.319093 -0.758887 0.567689 0.319093 -0.758887 0.567689 0.435371 -0.698699 0.567689 0.435371 -0.6987 0.567689 0.540638 -0.620839 0.567689 0.540638 -0.620839 0.567688 0.632229 -0.527274 0.567688 0.632226 -0.527273 0.567692 0.707824 -0.42037 0.567692 0.707825 -0.420371 0.56769 0.762709 -0.309382 0.567941 0.767771 -0.310167 0.560647 0.077919 -0.976743 0.199757 0.0779197 -0.976743 0.199752 0.231788 -0.952037 0.199751 0.231788 -0.952036 0.199755 0.379793 -0.903247 0.199755 0.379792 -0.903247 0.199758 0.51819 -0.83161 0.199759 0.518192 -0.831611 0.19975 0.643482 -0.738939 0.199749 0.643481 -0.738939 0.199754 0.752494 -0.627576 0.199753 0.752495 -0.627576 0.19975 0.842474 -0.500337 0.19975 0.842474 -0.500337 0.19975 0.907284 -0.369967 0.1999 0.920807 -0.368317 0.128285 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 1 0 0 1 0 0.858073 0.511213 -0.0487067 0.930295 0.366813 0 0.907283 0.420107 -0.018675 0.670985 0.739451 0.054696 0.565765 0.824566 -0.000565838 0.671115 0.740547 -0.0345618 0.672858 0.738919 -0.0354999 0.781492 0.62358 -0.0204375 0.781497 0.623575 -0.0204375 0.101166 0.99487 0 0.282911 0.958574 -0.0331279 0.255239 0.966647 -0.0211172 0.432586 0.901523 -0.0112241 0.255042 0.966862 -0.0114855 0.435202 0.900333 0.000281117 0.56577 0.824563 -0.000567067 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 1 0 0 1 0 0 1 0 0 1 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 -1 0 0 -1 0 -1 0 0 -1 0 0 0.0261827 0 0.999657 0.0261796 7.96481e-07 0.999657 0.0261767 7.45497e-07 0.999657 0.0261766 1.00861e-06 0.999657 0.0261761 7.97865e-07 0.999657 0.0261778 5.92916e-07 0.999657 0.0261767 2.84278e-07 0.999657 0.026177 3.9641e-08 0.999657 0.026177 4.62481e-08 0.999657 0.0261743 1.35844e-07 0.999657 0.0261752 6.63419e-07 0.999657 0.0261767 5.02098e-07 0.999657 0.0261764 -7.41474e-07 0.999657 0.0261771 -5.75127e-07 0.999657 0.0261784 8.76785e-07 0.999657 0.026175 -5.33917e-07 0.999657 0.026175 -6.72294e-07 0.999657 0.0261759 -5.898e-08 0.999657 0.0261756 -9.54132e-07 0.999657 0.0261765 2.43685e-07 0.999657 0.0261768 -9.96429e-08 0.999657 0.026176 -1.34325e-06 0.999657 0.0261761 -3.59511e-06 0.999657 0.0261767 -2.60324e-07 0.999657 0.0261768 -3.04317e-07 0.999657 0.0261766 -1.31856e-06 0.999657 0.0261762 -3.68053e-07 0.999657 0.0261763 -7.38785e-07 0.999657 0.0261827 -8.49643e-07 0.999657 0.0261796 0 0.999657 0.669139 -1.70337e-06 0.743137 0.669139 0 0.743138 0.284049 0 0.95881 0.284049 0 0.95881 0.284047 0 0.95881 0.284047 0 0.95881 0.207883 0 0.978154 0.207884 -2.24206e-06 0.978154 0.608726 -1.81854e-06 0.793381 0.608723 0 0.793383 0.608723 0 0.793383 0.608723 0 0.793383 0.997564 1.59892e-07 -0.0697566 0.997564 6.14272e-07 -0.0697566 0.997564 0 -0.0697566 0.997564 0 -0.0697566 0.139132 0 -0.990274 0.139135 4.2582e-06 -0.990273 0.492369 -3.04348e-06 -0.870387 0.492371 0 -0.870385 0.49237 0 -0.870386 0.492368 8.02424e-06 -0.870387 0.615665 0 -0.788008 0.615665 0 -0.788008 0.284047 0 -0.95881 0.284047 0 -0.95881 0.284046 0 -0.958811 0.284046 0 -0.958811 0.0261796 0 -0.999657 0.0261775 -4.97049e-07 -0.999657 0.0261774 -5.8298e-07 -0.999657 0.0261777 -6.72029e-07 -0.999657 0.0261827 0 -0.999657 0.0261796 -7.96481e-07 -0.999657 0.0261767 -7.45497e-07 -0.999657 0.0261769 -4.12748e-07 -0.999657 0.0261763 -2.60836e-07 -0.999657 0.0261764 -2.175e-07 -0.999657 0.0261767 -2.84278e-07 -0.999657 0.026178 6.24022e-07 -0.999657 0.0261778 7.32901e-07 -0.999657 0.0261771 5.90118e-07 -0.999657 0.0261778 1.47221e-07 -0.999657 0.026177 5.85335e-08 -0.999657 0.0261772 -2.91285e-07 -0.999657 0.0261755 8.39834e-08 -0.999657 0.0261767 2.77479e-07 -0.999657 0.0261767 3.15155e-07 -0.999657 0.0261827 8.49322e-07 -0.999657 0.0261762 7.36791e-07 -0.999657 0.0261771 -1.31735e-07 -0.999657 0.0261771 -5.18972e-07 -0.999657 0.0261755 2.29267e-07 -0.999657 0.0261772 6.06092e-07 -0.999657 0.0261768 9.22463e-07 -0.999657 0.0261767 1.08427e-06 -0.999657 0.87042 -0.49231 0 0.914605 -0.396449 -0.0795391 0.54466 -0.83819 -0.028001 0.544743 -0.838135 -0.0280311 0.851338 -0.523618 -0.0323717 0.765304 -0.643624 -0.00756556 0.870445 -0.492202 -0.00796532 0.768832 -0.639428 0.005429 0.663642 -0.748039 -0.00418086 0.101166 -0.99487 0 0.175917 -0.984312 -0.0135461 0.544657 -0.838192 -0.0280001 0.413146 -0.910424 -0.020941 0.544706 -0.838359 -0.0212096 0.416987 -0.908906 -0.00348722 0.278612 -0.960397 0.00356482 -0.997566 0 0.0697241 -0.997566 0 0.0697241 -0.997564 -4.94765e-05 0.0697565 -0.997564 -5.03966e-05 0.0697565 -0.997561 0 0.0698049 -0.997561 0 0.0698049 -0.997564 5.03986e-05 0.0697565 -0.997564 4.9481e-05 0.0697565 0.0174504 0.999848 2.13288e-07 0.0174523 0.999848 -6.3289e-09 0.0174521 0.999848 -1.66964e-09 0.0174526 0.999848 8.9432e-08 0.0174522 0.999848 -1.25419e-08 0.0174525 0.999848 9.77955e-08 0.0174564 0.999848 0 0.0174525 0.999848 -2.16423e-07 0.0174522 0.999848 5.95621e-08 0.0174524 0.999848 -2.07829e-07 0.017452 0.999848 -7.31213e-07 0.0174564 0.999848 0 0.0174528 -0.999848 -7.32738e-07 0.0174521 -0.999848 9.83687e-08 0.017453 -0.999848 -8.3094e-08 0.0174523 -0.999848 -6.40164e-09 0.0174525 -0.999848 -3.65037e-07 0.0174524 -0.999848 2.15073e-08 0.0174523 -0.999848 0 0.0174523 -0.999848 -5.79513e-09 0.0174527 -0.999848 2.60414e-08 0.0174525 -0.999848 -4.5261e-09 0.0174525 -0.999848 -5.206e-09 0.0174523 -0.999848 0 0.052336 0 0.99863 0.052336 0 0.99863 0.0523347 0 0.99863 0.0523347 0 0.99863 0.0261769 0 -0.999657 0.0261775 -1.50543e-07 -0.999657 0.026177 8.88468e-08 -0.999657 0.0261773 1.19761e-07 -0.999657 0.0261773 1.14043e-07 -0.999657 0.0261768 -1.08396e-07 -0.999657 0.0261765 -3.23766e-07 -0.999657 0.0261753 -9.34105e-08 -0.999657 0.0261767 -1.10854e-07 -0.999657 0.0261789 8.58056e-07 -0.999657 0.0261704 -7.34085e-06 -0.999658 0.0261764 -1.78234e-07 -0.999657 0.0261773 2.48516e-07 -0.999657 0.0261769 -1.11166e-07 -0.999657 0.356673 0.0172064 0.934071 0.680097 0.00452257 0.733108 0.623685 0.0058145 0.781654 0.441623 0.119734 0.889175 0.571401 0.0550012 0.818826 0.45998 0.00562281 0.887912 0.549911 -0.000401831 0.835223 0.566001 -0.000402279 0.824404 0.648432 -0.00985024 0.761209 0.616454 -0.0210425 0.78711 0.685745 -0.00184402 0.727839 0.252177 1.98063e-05 0.967681 0.26709 2.13468e-05 0.963672 0.251972 0.000505604 0.967735 0.377625 -0.000833794 0.925958 0.36642 0.000347225 0.930449 0.378319 0.000347403 0.925675 0.511022 -0.00254927 0.859564 0.144346 -0.379168 0.914 0.131015 0.00412195 0.991372 0.261077 -0.0132989 0.965226 0.139905 0 0.990165 0.637918 0.710098 0.29803 0.24731 0.954957 0.163993 0.460466 0.870916 0.171688 0.254042 0.942709 -0.216246 0.129435 0.991588 0 0.361073 0.719341 -0.593443 0.815409 0.565396 0.124238 0.666763 0.736519 0.11387 0.790619 0.545331 0.278452 0.898215 0.327611 -0.293055 0.99061 0.127145 0.0502624 0.93771 0.34533 0.038048 0.945552 0.120506 0.30234 0.945552 -0.120506 -0.30234 0.93771 -0.34533 -0.0380481 0.99061 -0.127145 -0.0502625 0.898215 -0.327611 0.293056 0.79062 -0.545331 -0.278451 0.666763 -0.736519 -0.113869 0.815409 -0.565396 -0.124238 0.361073 -0.71934 0.593444 0.637918 -0.710098 -0.29803 0.247312 -0.954957 -0.163994 0.460466 -0.870916 -0.171689 0.254042 -0.942709 0.216246 0.129435 -0.991588 0 -0.0174597 0 0.999848 -0.0174597 0 0.999848 -0.0174566 0.999847 0.00122069 -0.0174562 0.999847 0.00122066 -0.0174531 0 -0.999848 -0.0174531 0 -0.999848 -0.0174513 -0.999847 0.00122031 -0.0174517 -0.999847 0.00122034 0.997564 0 -0.0697502 0.997564 0 -0.0697502 0.997564 -6.15328e-06 -0.0697563 0.997564 1.91751e-05 -0.0697562 0.997565 0 -0.0697433 0.997565 0 -0.0697434 0.997564 -1.93337e-05 -0.0697563 0.997564 6.08525e-06 -0.0697562 -0.0174529 0.999844 0.00256852 -0.0174524 0.999844 0.0025686 -0.0174523 0.999844 0.00256855 -0.0174524 0.999844 0.00256857 -0.0174529 0.999844 0.00256824 -0.0174525 0.999844 0.00256856 -0.0174524 0 0.999848 -0.0174524 0 0.999848 -0.0174518 -0.999844 0.00256856 -0.0174523 -0.999844 0.00256864 -0.0174524 -0.999844 0.00256855 -0.0174525 -0.999844 0.00256853 -0.0174518 -0.999844 0.00256788 -0.0174524 -0.999844 0.00256852 -0.0174526 0 -0.999848 -0.0174526 0 -0.999848 -1 0 0 -1 0 0 0.0174523 0.999848 5.58964e-08 0.0174555 0.999848 0 0.0174517 0.999848 2.23521e-06 0.0174527 0.999848 4.95118e-08 0.0174521 0.999848 -1.96913e-08 0.0174522 0.999848 -2.58033e-08 0.0174524 0.999848 -3.454e-08 0.0174555 0.999848 -7.42864e-07 0.39464 -0.917924 -0.0409339 0.262585 -0.961674 -0.0789466 0.254131 -0.964688 -0.0692448 0.0809951 -0.996715 0 0.0809951 -0.996715 0 0.0643401 -0.997905 -0.00681154 0.181984 -0.983284 0.00592331 0.351841 -0.933613 0.0676363 0.270941 -0.953984 0.128475 0.430064 -0.900655 0.0621815 0.352075 -0.93388 0.0625347 0.430819 -0.902136 0.0233797 0.702119 -0.705716 0.0948331 0.759634 -0.649225 0.0382633 0.576339 -0.817197 -0.00473278 0.576334 -0.8172 -0.00473288 0.890378 -0.430738 0.147283 0.978675 -0.202634 -0.0336804 0.900069 -0.435329 -0.0191065 0.758371 -0.648714 0.0635941 0.81099 -0.578057 0.0902497 0.810993 -0.578053 0.0902497 0.956361 -0.276922 0.0932034 0.989469 -0.112611 0.0909362 0.975004 -0.202552 0.091323 0.993429 -0.112873 0.0189073 0.999995 0 0.00324656 0.998885 0.0470867 -0.00329861 0.955413 0.293555 0.0318071 0.985067 0.148644 0.0868772 0.946707 0.312124 0.0795236 0.95276 0.293123 0.0795425 0.947996 0.312543 0.0601669 0.883678 0.468095 0.00110397 0.883682 0.468087 0.00110585 0.696728 0.71732 -0.00473718 0.791632 0.609138 0.0476487 0.791631 0.609139 0.0476487 0.69236 0.715471 0.0934797 0.545577 0.83715 0.0390657 0.266419 0.958029 -0.105832 0.545985 0.837669 -0.0145494 0.677017 0.732237 0.0740069 0.405251 0.913377 0.0389179 0.405252 0.913376 0.0389179 0.262476 0.961505 0.0813299 0.254173 0.964514 0.0714814 0.0809943 0.996715 0 0.0809943 0.996715 0 0.0643336 0.997907 0.00660284 0.18199 0.983284 -0.00574184 0.351937 0.933723 -0.065584 0.27108 0.954448 -0.124681 0.430123 0.900753 -0.0603228 0.352158 0.933972 -0.0606657 0.430828 0.902149 -0.0226843 0.702309 0.705892 -0.0920793 0.759679 0.649238 -0.0371371 0.576338 0.817199 0.0045925 0.576341 0.817197 0.00459244 0.811193 0.578176 -0.0876291 0.811182 0.578191 -0.0876292 0.758479 0.648765 -0.0617476 0.900083 0.435324 0.0185535 0.978706 0.202646 0.0327051 0.890929 0.431002 -0.143117 0.9566 0.276982 -0.0905341 0.98973 0.112396 -0.0883287 0.989723 0.11246 -0.0883292 0.978707 0.202989 -0.0304753 0.999995 0 -0.00315317 0.998274 -0.0585333 0.00474965 0.954964 -0.293511 -0.0435428 0.981915 -0.171283 -0.0806523 0.981923 -0.171241 -0.0806519 0.952436 -0.293056 -0.0835754 0.94138 -0.334475 -0.0439417 0.872716 -0.488222 0.00229457 0.872719 -0.488218 0.00229357 0.696467 -0.717494 -0.0116927 0.777499 -0.627158 -0.0465616 0.777496 -0.627162 -0.0465616 0.692463 -0.715541 -0.0921765 0.660796 -0.74838 -0.0572375 0.526609 -0.849932 0.0173101 0.266438 -0.95871 0.0994273 0.5264 -0.849673 -0.0309494 0.526387 -0.849682 -0.0309496 0.0174525 -0.999848 2.35566e-08 0.0174511 -0.999848 0 0.0174533 -0.999848 3.19657e-06 0.0174523 -0.999848 -3.58113e-08 0.0174524 -0.999848 -5.47836e-08 0.0174527 -0.999848 -4.23923e-08 0.0174523 -0.999848 -3.02135e-08 0.0174511 -0.999848 -2.61074e-07 0.0745746 0.153696 0.9853 0.0327585 0.170656 0.984786 0.0639152 0.156395 0.985624 0.0424602 0.145275 0.98848 0.0745763 0.153696 0.9853 0.160032 0.076839 0.984117 0.160033 0.0768371 0.984117 0.138897 0.0981561 0.98543 0.138895 0.098157 0.985431 0.111688 0.111062 0.987518 0.130256 0.111891 0.985147 0.101413 0.142138 0.984638 0.101411 0.142139 0.984638 0.15243 -0.0846218 0.984685 0.152435 -0.0846137 0.984685 0.163623 -0.0577187 0.984833 0.153743 -0.0266069 0.987753 0.157574 -0.0379881 0.986776 0.165647 -0.0286873 0.985768 0.00110401 -2.27478e-05 0.999999 0.15996 0.04489 0.986102 0.150551 0.0169724 0.988457 0.173496 0.0418266 0.983946 0.173648 0 0.984808 0.173639 -0.0101133 0.984757 0.0939274 -0.149715 0.984258 0.114603 -0.128456 0.985071 0.123957 -0.10648 0.986558 0.131644 -0.105238 0.985695 0.131643 -0.105238 0.985695 0.0939292 -0.149714 0.984258 0.0622501 -0.15232 0.986369 0.0772466 -0.122789 0.989422 0.0517878 -0.167698 0.984477 0.00119203 -6.35903e-06 0.999999 0.100199 0.151941 -0.983298 0.0718237 -0.147934 -0.986386 0.0327575 -0.170655 -0.984786 0.0597639 -0.146237 -0.987443 0.0348225 -0.118383 -0.992357 0.0718239 -0.147934 -0.986386 0.164552 -0.079026 -0.983198 0.164552 -0.0790258 -0.983198 0.133857 -0.094564 -0.986479 0.13385 -0.0945642 -0.986479 0.0956055 -0.0948989 -0.990885 0.124276 -0.106754 -0.986488 0.102126 -0.143148 -0.984418 0.102125 -0.143148 -0.984418 0.00110661 2.1987e-05 -0.999999 0.148501 -0.0416511 -0.988035 0.122592 -0.0137955 -0.992361 0.173494 -0.0418261 -0.983946 0.173647 0 -0.984808 0.173642 0.00813202 -0.984775 0.00119146 -6.38811e-08 -0.999999 0.158641 0.0272752 -0.986959 0.126886 0.0414431 -0.991051 0.160881 0.0387851 -0.986212 0.155554 0.0817784 -0.984437 0.155553 0.0817805 -0.984437 0.100199 0.151941 -0.983298 0.113392 0.121361 -0.98611 0.11083 0.0952035 -0.989269 0.130004 0.0991269 -0.986546 0.130006 0.0991268 -0.986546 0.0456332 0.168661 -0.984617 0.0545468 0.133471 -0.98955 0.0629326 0.139176 -0.988266 0.062894 0.139162 -0.98827 0.988561 -0.150821 -6.80408e-07 0.988562 -0.150816 0 0.37048 -0.906529 -0.202362 0.370479 -0.906529 -0.202361 0.742864 -0.638124 -0.202361 0.742864 -0.638125 -0.202361 0.952036 -0.229517 -0.202361 0.952036 -0.229517 -0.202361 0.952036 0.229517 -0.202361 0.952036 0.229517 -0.202361 0.742864 0.638125 -0.202361 0.742864 0.638125 -0.202361 0.370479 0.906529 -0.202361 0.370479 0.906529 -0.202361 0.988561 0.150821 -6.63492e-07 0.988562 0.150816 0 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0.000222007 0 0.999392 0.0250065 -0.0242818 0.999562 -0.0290908 -0.00552582 0.99859 -0.0530811 0 -1 0 0 -1 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 -6.11113e-06 0 1 0 -3.97364e-06 1 1.22073e-06 3.37082e-06 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 -0.858077 -0.511206 -0.0487091 -0.930293 -0.366816 0 -0.907283 -0.420107 -0.0186738 -0.670982 -0.739454 0.0546977 -0.565776 -0.824559 -0.000569031 -0.671111 -0.740551 -0.0345603 -0.672858 -0.738919 -0.0355007 -0.781498 -0.623573 -0.0204375 -0.781494 -0.623578 -0.0204375 -0.101166 -0.99487 0 -0.28291 -0.958574 -0.0331276 -0.25524 -0.966647 -0.0211173 -0.432586 -0.901523 -0.0112243 -0.255043 -0.966861 -0.0114856 -0.435201 -0.900334 0.000280635 -0.56577 -0.824563 -0.00056767 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 -0.0261827 0 0.999657 -0.0261796 -7.96481e-07 0.999657 -0.0261767 -7.45497e-07 0.999657 -0.0261766 -1.00861e-06 0.999657 -0.0261761 -7.97866e-07 0.999657 -0.0261784 -5.17964e-07 0.999657 -0.0261769 -9.35559e-08 0.999657 -0.026177 1.07138e-09 0.999657 -0.026177 -4.62481e-08 0.999657 -0.0261781 -1.21176e-08 0.999657 -0.0261778 1.47221e-07 0.999657 -0.0261766 1.84015e-08 0.999657 -0.0261764 6.15641e-07 0.999657 -0.0261769 5.03119e-07 0.999657 -0.026178 -8.12012e-07 0.999657 -0.0261768 -2.88655e-07 0.999657 -0.0261769 2.761e-07 0.999657 -0.0261775 -1.5386e-07 0.999657 -0.0261779 -1.03662e-06 0.999657 -0.0261767 4.00009e-07 0.999657 -0.0261766 2.5379e-07 0.999657 -0.026176 1.20854e-06 0.999657 -0.0261761 4.00287e-06 0.999657 -0.0261768 3.62596e-08 0.999657 -0.0261768 6.73739e-08 0.999657 -0.026177 -1.0717e-06 0.999657 -0.0261764 -2.40202e-06 0.999657 -0.0261772 7.54008e-07 0.999657 -0.0261827 8.49643e-07 0.999657 -0.0261796 0 0.999657 -0.66914 1.70337e-06 0.743137 -0.669139 0 0.743137 -0.284045 0 0.958811 -0.284045 0 0.958811 -0.284046 0 0.958811 -0.284046 0 0.958811 -0.207883 0 0.978154 -0.207884 2.24206e-06 0.978154 -0.608726 1.81854e-06 0.793381 -0.608721 -1.8077e-06 0.793385 -0.608722 -1.81854e-06 0.793384 -0.608721 0 0.793384 -0.997564 -1.59892e-07 -0.0697566 -0.997564 -4.77768e-07 -0.0697566 -0.997564 0 -0.0697566 -0.997564 0 -0.0697566 -0.139134 0 -0.990274 -0.139135 -1.98836e-06 -0.990273 -0.492364 5.03842e-06 -0.87039 -0.492368 0 -0.870387 -0.49237 0 -0.870386 -0.492368 -6.07897e-06 -0.870387 -0.615665 0 -0.788008 -0.615665 0 -0.788008 -0.284047 0 -0.95881 -0.284047 0 -0.95881 -0.284045 0 -0.958811 -0.284045 0 -0.958811 -0.0261796 0 -0.999657 -0.0261761 -7.37004e-07 -0.999657 -0.0261759 -6.51127e-07 -0.999657 -0.0261764 -5.04018e-07 -0.999657 -0.0261827 0 -0.999657 -0.0261796 7.96481e-07 -0.999657 -0.0261767 7.45497e-07 -0.999657 -0.026177 1.98204e-07 -0.999657 -0.0261763 3.47426e-08 -0.999657 -0.0261765 -7.83313e-09 -0.999657 -0.0261769 9.35558e-08 -0.999657 -0.0261762 5.51887e-07 -0.999657 -0.0261764 6.75648e-07 -0.999657 -0.0261785 2.67411e-07 -0.999657 -0.0261778 -1.47221e-07 -0.999657 -0.026177 -5.85335e-08 -0.999657 -0.0261765 -6.27968e-07 -0.999657 -0.0261791 -8.47204e-08 -0.999657 -0.026176 3.8761e-07 -0.999657 -0.0261766 -3.52229e-07 -0.999657 -0.0261827 -8.49322e-07 -0.999657 -0.0261762 -7.36791e-07 -0.999657 -0.0261771 1.31735e-07 -0.999657 -0.0261771 5.18972e-07 -0.999657 -0.0261758 -7.43003e-08 -0.999657 -0.0261774 -4.28246e-07 -0.999657 -0.0261768 -9.22463e-07 -0.999657 -0.0261783 4.04953e-06 -0.999657 -0.870419 0.492312 0 -0.914604 0.396449 -0.0795401 -0.544661 0.838189 -0.0280021 -0.544743 0.838135 -0.0280317 -0.851335 0.523623 -0.0323706 -0.765304 0.643624 -0.00756556 -0.870445 0.492202 -0.00796531 -0.768832 0.639428 0.00542903 -0.663647 0.748034 -0.00418036 -0.101166 0.99487 0 -0.175917 0.984312 -0.0135459 -0.544656 0.838192 -0.0280005 -0.413138 0.910428 -0.020941 -0.54471 0.838356 -0.0212096 -0.416987 0.908906 -0.00348686 -0.278612 0.960397 0.00356506 0.997564 -7.38047e-05 0.0697566 0.997561 0 0.0698049 0.997561 0 0.0698049 0.997564 7.38058e-05 0.0697566 0.997564 3.36783e-05 0.0697565 0.997566 0 0.0697241 0.997566 0 0.0697241 0.997564 -3.36783e-05 0.0697565 -0.0174532 -0.999848 -1.00372e-07 -0.0174526 -0.999848 -2.357e-08 -0.0174526 -0.999848 -2.39858e-08 -0.0174525 -0.999848 -3.47326e-08 -0.0174523 -0.999848 -1.07651e-07 -0.0174525 -0.999848 -5.14713e-09 -0.0174523 -0.999848 0 -0.0174522 -0.999848 1.07983e-07 -0.0174522 -0.999848 9.92705e-08 -0.0174524 -0.999848 -1.49726e-07 -0.0174526 -0.999848 4.72686e-08 -0.0174523 -0.999848 0 -0.0174529 0.999848 -5.24574e-07 -0.0174525 0.999848 6.14803e-08 -0.0174524 0.999848 7.23998e-08 -0.0174534 0.999848 -4.21932e-08 -0.0174523 0.999848 5.06729e-07 -0.0174524 0.999848 2.15073e-08 -0.0174523 0.999848 0 -0.0174523 0.999848 -1.7794e-08 -0.0174516 0.999848 -7.53624e-08 -0.0174523 0.999848 3.79496e-08 -0.0174524 0.999848 -3.68009e-09 -0.0174523 0.999848 0 -0.052336 0 0.99863 -0.052336 0 0.99863 -0.052335 0 0.99863 -0.052335 0 0.99863 -0.0261776 2.18333e-06 -0.999657 -0.0261768 0 -0.999657 -0.0261769 0 -0.999657 -0.0261769 0 -0.999657 -0.0261784 3.67022e-07 -0.999657 -0.026177 8.10422e-09 -0.999657 -0.0261777 3.66449e-07 -0.999657 -0.0261768 -1.11793e-07 -0.999657 -0.0261765 -3.53609e-07 -0.999657 -0.0261773 3.6084e-07 -0.999657 -0.0261786 1.92445e-06 -0.999657 -0.0261767 -4.3644e-07 -0.999657 -0.0261768 -3.77279e-07 -0.999657 -0.0261771 9.55438e-08 -0.999657 -0.356673 -0.0172067 0.934071 -0.680096 -0.0045239 0.73311 -0.623684 -0.00581455 0.781655 -0.441624 -0.119733 0.889175 -0.57139 -0.0550068 0.818833 -0.459984 -0.00562249 0.887909 -0.549911 0.000401831 0.835223 -0.565998 0.000402279 0.824407 -0.648432 0.00985062 0.761209 -0.616464 0.021039 0.787102 -0.685742 0.00184417 0.727842 -0.252177 -1.96976e-05 0.967681 -0.26709 -2.12318e-05 0.963672 -0.251966 -0.000505657 0.967736 -0.377627 0.000833819 0.925957 -0.36642 -0.000347456 0.93045 -0.378317 -0.000347633 0.925676 -0.511022 0.00254902 0.859564 -0.144337 0.379177 0.913998 -0.131015 -0.00412189 0.991372 -0.261077 0.013299 0.965226 -0.139904 0 0.990165 -0.637917 -0.710099 0.29803 -0.247315 -0.954956 0.163995 -0.460467 -0.870915 0.171691 -0.254042 -0.942709 -0.216247 -0.129435 -0.991588 0 -0.361074 -0.719342 -0.593441 -0.815407 -0.565399 0.124238 -0.666763 -0.736519 0.11387 -0.790619 -0.545331 0.278452 -0.898214 -0.327611 -0.293056 -0.99061 -0.127145 0.0502626 -0.93771 -0.34533 0.0380482 -0.945552 -0.120506 0.30234 -0.945552 0.120506 -0.30234 -0.93771 0.34533 -0.0380481 -0.99061 0.127145 -0.0502625 -0.898214 0.327611 0.293056 -0.790619 0.545331 -0.278452 -0.666763 0.736519 -0.113869 -0.815407 0.565399 -0.124238 -0.361073 0.719341 0.593443 -0.637917 0.710099 -0.29803 -0.247315 0.954956 -0.163995 -0.460467 0.870915 -0.171691 -0.254042 0.942709 0.216246 -0.129435 0.991588 0 0.0174604 0 0.999848 0.0174604 0 0.999848 0.0174517 -0.999847 0.00122034 0.017452 -0.999847 0.00122036 0.0174531 0 -0.999848 0.0174531 0 -0.999848 0.017452 0.999847 0.00122036 0.0174517 0.999847 0.00122034 -0.997564 1.98083e-05 -0.0697566 -0.997564 -6.40825e-06 -0.0697565 -0.997564 0 -0.0697502 -0.997564 0 -0.0697502 -0.997564 6.47206e-06 -0.0697566 -0.997564 -1.96542e-05 -0.0697565 -0.997565 0 -0.0697433 -0.997565 0 -0.0697433 0.0174519 -0.999844 0.00256869 0.0174525 -0.999844 0.0025686 0.0174525 -0.999844 0.00256855 0.0174524 -0.999844 0.00256854 0.0174519 -0.999844 0.00256886 0.0174523 -0.999844 0.00256856 0.0174524 0 0.999848 0.0174524 0 0.999848 0.017453 0.999844 0.00256856 0.0174525 0.999844 0.00256848 0.0174524 0.999844 0.00256855 0.0174523 0.999844 0.00256857 0.017453 0.999844 0.00256926 0.0174524 0.999844 0.00256852 0.0174526 0 -0.999848 0.0174526 0 -0.999848 1 0 0 1 0 0 -0.0174531 -0.999848 -2.5271e-06 -0.0174511 -0.999848 -2.24902e-07 -0.0174523 -0.999848 2.06879e-08 -0.0174511 -0.999848 0 -0.0174521 -0.999848 -2.09754e-08 -0.0174526 -0.999848 3.00958e-08 -0.0174542 -0.999848 -1.08057e-07 -0.0174522 -0.999848 -2.60243e-08 -0.39464 0.917924 -0.0409336 -0.262585 0.961674 -0.0789463 -0.254131 0.964688 -0.0692448 -0.0809951 0.996715 0 -0.0809951 0.996715 0 -0.0643401 0.997905 -0.00681154 -0.181987 0.983283 0.00592367 -0.351841 0.933613 0.067635 -0.270939 0.953984 0.128475 -0.430065 0.900654 0.0621805 -0.352077 0.93388 0.0625339 -0.430819 0.902135 0.0233795 -0.702119 0.705716 0.0948349 -0.759634 0.649225 0.0382653 -0.576331 0.817203 -0.00473296 -0.576334 0.817201 -0.0047329 -0.890377 0.430738 0.147285 -0.978675 0.202634 -0.0336778 -0.900069 0.435329 -0.0191041 -0.758371 0.648714 0.0635961 -0.81099 0.578058 0.0902517 -0.810995 0.57805 0.0902516 -0.956361 0.276922 0.0932058 -0.989491 0.112418 0.0909346 -0.975004 0.202552 0.091323 -0.993429 0.112877 0.0189103 -0.999995 0 0.00324909 -0.998885 -0.0470867 -0.00329609 -0.955414 -0.29355 0.0318089 -0.985066 -0.148651 0.0868745 -0.946708 -0.312124 0.0795212 -0.95276 -0.293123 0.0795401 -0.947996 -0.312543 0.0601645 -0.883685 -0.46808 0.00110765 -0.883681 -0.468087 0.00110577 -0.696728 -0.71732 -0.0047373 -0.791632 -0.609138 0.0476487 -0.791631 -0.609139 0.0476487 -0.69236 -0.715471 0.0934797 -0.54558 -0.837148 0.0390661 -0.26642 -0.958029 -0.105832 -0.545979 -0.837673 -0.0145529 -0.677017 -0.732237 0.0740073 -0.405223 -0.913389 0.0389182 -0.405252 -0.913376 0.038918 -0.262476 -0.961505 0.0813299 -0.254173 -0.964514 0.0714811 -0.0809951 -0.996715 0 -0.0809951 -0.996715 0 -0.0643348 -0.997907 0.00660272 -0.181989 -0.983284 -0.0057417 -0.351937 -0.933723 -0.0655843 -0.271083 -0.954447 -0.12468 -0.430121 -0.900754 -0.0603226 -0.35216 -0.933972 -0.0606655 -0.430831 -0.902148 -0.0226838 -0.702307 -0.705894 -0.0920811 -0.759679 -0.649238 -0.0371372 -0.576338 -0.817199 0.00459237 -0.57634 -0.817197 0.00459232 -0.811192 -0.578176 -0.0876311 -0.811186 -0.578185 -0.0876312 -0.758479 -0.648765 -0.0617475 -0.900079 -0.435332 0.0185508 -0.978706 -0.202646 0.0327027 -0.890932 -0.430997 -0.143116 -0.956598 -0.276989 -0.0905365 -0.98973 -0.112396 -0.0883311 -0.989723 -0.112456 -0.0883316 -0.978707 -0.202989 -0.0304753 -0.956484 -0.28875 -0.0419769 -0.998274 0.0585333 0.0047472 -0.954965 0.293507 -0.0435442 -0.981914 0.171291 -0.08065 -0.981923 0.17124 -0.0806495 -0.952436 0.293056 -0.0835731 -0.941381 0.334472 -0.0439425 -0.872717 0.488221 0.00229419 -0.872714 0.488226 0.0022954 -0.696467 0.717494 -0.0116908 -0.7775 0.627158 -0.0465597 -0.7775 0.627158 -0.0465597 -0.692463 0.715541 -0.0921765 -0.660792 0.748384 -0.0572337 -0.526616 0.849927 0.0173076 -0.26644 0.95871 0.0994268 -0.526398 0.849675 -0.0309478 -0.526406 0.84967 -0.0309477 -0.0174518 0.999848 -2.03069e-06 -0.0174511 0.999848 2.72328e-07 -0.0174523 0.999848 -2.08299e-08 -0.0174511 0.999848 0 -0.0174523 0.999848 -3.58113e-08 -0.0174524 0.999848 -4.50504e-08 -0.0174527 0.999848 -3.04088e-08 -0.0174525 0.999848 -2.20388e-08 -0.0745752 -0.153696 0.9853 -0.0327583 -0.170656 0.984786 -0.0639152 -0.156395 0.985624 -0.0424608 -0.145275 0.98848 -0.0745759 -0.153696 0.9853 -0.160032 -0.0768379 0.984117 -0.160032 -0.0768383 0.984117 -0.138897 -0.0981552 0.98543 -0.138894 -0.0981568 0.985431 -0.111687 -0.111063 0.987518 -0.130257 -0.111892 0.985146 -0.101414 -0.142139 0.984638 -0.101415 -0.142138 0.984638 -0.152431 0.0846212 0.984685 -0.152431 0.0846222 0.984685 -0.163623 0.0577171 0.984833 -0.153744 0.0266069 0.987752 -0.157575 0.0379883 0.986776 -0.165645 0.0286903 0.985768 -0.00110396 2.27534e-05 0.999999 -0.15996 -0.0448912 0.986102 -0.15055 -0.0169717 0.988457 -0.173496 -0.0418266 0.983946 -0.17341 -0.0523503 0.983457 -0.173639 0.0101133 0.984757 -0.0939286 0.149714 0.984258 -0.114602 0.128457 0.985071 -0.123957 0.10648 0.986558 -0.131645 0.105238 0.985695 -0.131644 0.105238 0.985695 -0.0939288 0.149714 0.984258 -0.0622502 0.152321 0.986369 -0.0772485 0.122786 0.989422 -0.0517878 0.167698 0.984477 -0.00119203 6.35903e-06 0.999999 -0.100199 -0.151942 -0.983297 -0.0718247 0.147936 -0.986385 -0.0327584 0.170657 -0.984786 -0.0597644 0.146238 -0.987442 -0.0348225 0.118384 -0.992357 -0.0718252 0.147936 -0.986385 -0.164553 0.0790262 -0.983198 -0.164553 0.079026 -0.983198 -0.133858 0.0945644 -0.986478 -0.133852 0.0945646 -0.986479 -0.0956074 0.0948994 -0.990885 -0.124276 0.106754 -0.986488 -0.102122 0.143153 -0.984418 -0.102126 0.14315 -0.984418 -0.00110537 -2.23462e-05 -0.999999 -0.148501 0.04165 -0.988035 -0.122594 0.0137961 -0.992361 -0.173495 0.0418262 -0.983946 -0.173648 0 -0.984808 -0.173642 -0.00812982 -0.984775 -0.00120232 -3.51889e-06 -0.999999 -0.158639 -0.0272774 -0.98696 -0.126887 -0.0414435 -0.991051 -0.160882 -0.0387855 -0.986211 -0.155556 -0.081776 -0.984436 -0.155555 -0.0817781 -0.984436 -0.100201 -0.151941 -0.983297 -0.113393 -0.121362 -0.98611 -0.110831 -0.0952041 -0.989269 -0.130005 -0.0991273 -0.986546 -0.130004 -0.0991274 -0.986546 -0.0456336 -0.168662 -0.984617 -0.0545472 -0.133472 -0.98955 -0.0629332 -0.139177 -0.988266 -0.0628889 -0.139161 -0.988271 -0.988561 0.15082 4.52979e-07 -0.988561 0.150823 0 -0.370479 0.906529 -0.202361 -0.370479 0.906529 -0.202361 -0.742865 0.638123 -0.202361 -0.742865 0.638123 -0.202361 -0.952036 0.229517 -0.202361 -0.952036 0.229517 -0.202361 -0.952036 -0.229517 -0.202361 -0.952036 -0.229517 -0.202361 -0.742865 -0.638123 -0.202361 -0.742865 -0.638123 -0.202361 -0.370479 -0.906529 -0.202361 -0.370479 -0.906529 -0.202361 -0.988561 -0.15082 4.69895e-07 -0.988561 -0.150823 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 -1 -0.000222007 0 -0.999392 -0.0250065 -0.0242819 -0.999562 0.0290908 -0.00552582 -0.99859 0.0530811 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 0 1 0 0 1 -1 0 0 -1 0 0</float_array>\n                    <technique_common>\n                        <accessor count=\"3886\" source=\"#shape0-lib-normals-array\" stride=\"3\">\n                            <param name=\"X\" type=\"float\"/>\n                            <param name=\"Y\" type=\"float\"/>\n                            <param name=\"Z\" type=\"float\"/>\n                        </accessor>\n                    </technique_common>\n                </source>\n                <vertices id=\"shape0-lib-vertices\">\n                    <input semantic=\"POSITION\" source=\"#shape0-lib-positions\"/>\n                </vertices>\n                <triangles count=\"3886\">\n                    <input offset=\"0\" semantic=\"VERTEX\" source=\"#shape0-lib-vertices\"/>\n                    <input offset=\"1\" semantic=\"NORMAL\" source=\"#shape0-lib-normals\"/>\n                    <p>14 0 0 0 1 0 116 1 1374 1 1375 1 264 2 68 2 1375 2 1375 3 68 3 2 3 3 4 4 4 1 4 6 5 381 5 7 5 7 6 381 6 336 6 294 7 16 7 57 7 116 8 1375 8 1 8 1 9 1375 9 2 9 1 10 2 10 3 10 3 11 2 11 260 11 3 12 260 12 8 12 111 13 110 13 4 13 4 14 110 14 107 14 7 15 5 15 6 15 6 16 5 16 295 16 6 17 295 17 435 17 435 18 295 18 294 18 435 19 294 19 336 19 336 20 294 20 57 20 336 21 57 21 7 21 11 22 8 22 468 22 468 23 8 23 31 23 468 24 31 24 9 24 9 25 31 25 89 25 9 26 89 26 10 26 10 27 89 27 3 27 10 28 3 28 11 28 11 29 3 29 8 29 105 30 104 30 12 30 12 31 104 31 15 31 37 32 13 32 14 32 107 33 12 33 4 33 4 34 12 34 15 34 4 35 15 35 1 35 1 36 15 36 57 36 1 37 57 37 14 37 14 38 57 38 16 38 14 39 16 39 37 39 17 40 1004 40 18 40 18 41 1004 41 999 41 18 42 999 42 19 42 19 43 999 43 1643 43 993 44 1391 44 190 44 1416 45 1413 45 190 45 190 46 1413 46 979 46 190 47 979 47 993 47 20 48 21 48 22 48 22 49 21 49 23 49 82 50 24 50 974 50 974 51 24 51 63 51 543 52 34 52 966 52 966 53 34 53 967 53 575 54 968 54 25 54 1649 55 1645 55 25 55 25 56 1645 56 570 56 25 57 570 57 575 57 26 58 27 58 280 58 280 59 27 59 600 59 46 60 29 60 28 60 28 61 29 61 314 61 519 62 389 62 539 62 539 63 389 63 394 63 503 64 514 64 498 64 498 65 514 65 517 65 5 66 97 66 295 66 295 67 97 67 30 67 114 68 31 68 79 68 79 69 31 69 8 69 173 70 32 70 359 70 359 71 32 71 338 71 98 72 165 72 33 72 33 73 165 73 317 73 41 74 600 74 27 74 34 75 543 75 1650 75 1674 76 35 76 590 76 590 77 35 77 593 77 590 78 593 78 592 78 206 79 204 79 35 79 35 80 204 80 46 80 35 81 46 81 593 81 593 82 46 82 28 82 34 83 1650 83 36 83 36 84 1650 84 597 84 36 85 597 85 599 85 37 86 16 86 42 86 43 87 51 87 45 87 27 88 53 88 236 88 1899 89 38 89 51 89 51 90 38 90 1900 90 1900 91 39 91 40 91 171 92 322 92 40 92 40 93 322 93 49 93 40 94 49 94 1900 94 236 95 237 95 27 95 27 96 237 96 36 96 27 97 36 97 41 97 41 98 36 98 599 98 53 99 37 99 236 99 236 100 37 100 42 100 236 101 42 101 235 101 235 102 42 102 43 102 235 103 43 103 44 103 44 104 43 104 45 104 204 105 48 105 46 105 46 106 48 106 243 106 46 107 243 107 49 107 237 108 47 108 36 108 36 109 47 109 241 109 36 110 241 110 204 110 204 111 241 111 242 111 204 112 242 112 48 112 243 113 231 113 49 113 49 114 231 114 50 114 49 115 50 115 1900 115 1900 116 50 116 233 116 1900 117 233 117 51 117 51 118 233 118 52 118 51 119 52 119 45 119 30 120 97 120 55 120 27 121 26 121 53 121 53 122 26 122 30 122 53 123 30 123 54 123 54 124 30 124 55 124 54 125 55 125 42 125 42 126 55 126 43 126 56 127 40 127 39 127 251 128 98 128 33 128 39 129 251 129 56 129 56 130 251 130 33 130 56 131 33 131 49 131 49 132 33 132 29 132 49 133 29 133 46 133 57 134 15 134 170 134 170 135 15 135 163 135 91 136 2 136 68 136 60 137 77 137 91 137 175 138 169 138 69 138 69 139 169 139 4 139 69 140 4 140 87 140 87 141 4 141 3 141 66 142 1399 142 1398 142 67 143 972 143 66 143 1398 144 1395 144 186 144 354 145 58 145 81 145 81 146 58 146 151 146 81 147 151 147 186 147 65 148 978 148 977 148 91 149 59 149 60 149 60 150 59 150 61 150 60 151 61 151 87 151 62 152 65 152 187 152 187 153 65 153 63 153 187 154 63 154 186 154 186 155 63 155 24 155 186 156 24 156 81 156 977 157 64 157 65 157 65 158 64 158 975 158 65 159 975 159 63 159 218 160 219 160 151 160 66 161 1398 161 67 161 67 162 1398 162 20 162 67 163 20 163 22 163 91 164 68 164 59 164 59 165 68 165 73 165 59 166 73 166 224 166 244 167 69 167 74 167 74 168 69 168 87 168 74 169 87 169 70 169 70 170 87 170 61 170 151 171 219 171 186 171 186 172 219 172 71 172 186 173 71 173 72 173 1398 174 186 174 20 174 20 175 186 175 72 175 20 176 72 176 73 176 73 177 72 177 222 177 73 178 222 178 224 178 74 179 75 179 244 179 244 180 75 180 76 180 244 181 76 181 245 181 245 182 76 182 229 182 245 183 229 183 151 183 151 184 229 184 216 184 151 185 216 185 218 185 91 186 77 186 80 186 80 187 77 187 78 187 78 188 114 188 79 188 20 189 73 189 80 189 78 190 79 190 80 190 80 191 79 191 21 191 80 192 21 192 20 192 338 193 32 193 247 193 24 194 82 194 81 194 81 195 82 195 338 195 81 196 338 196 83 196 83 197 338 197 247 197 83 198 247 198 151 198 151 199 247 199 245 199 94 200 84 200 85 200 85 201 84 201 250 201 42 202 16 202 54 202 54 203 16 203 294 203 99 204 7 204 170 204 170 205 7 205 57 205 86 206 163 206 104 206 104 207 163 207 15 207 168 208 111 208 169 208 169 209 111 209 4 209 87 210 3 210 88 210 88 211 3 211 89 211 88 212 89 212 248 212 248 213 89 213 90 213 248 214 90 214 69 214 69 215 90 215 175 215 2 216 91 216 260 216 260 217 91 217 80 217 92 218 93 218 109 218 109 219 93 219 84 219 109 220 84 220 108 220 108 221 84 221 94 221 108 222 94 222 106 222 106 223 94 223 103 223 116 224 1 224 117 224 117 225 1 225 95 225 0 226 201 226 96 226 118 227 95 227 96 227 96 228 95 228 1 228 96 229 1 229 0 229 97 230 5 230 55 230 55 231 5 231 7 231 55 232 7 232 251 232 251 233 7 233 99 233 251 234 99 234 98 234 98 235 99 235 165 235 100 236 102 236 101 236 101 237 102 237 86 237 101 238 86 238 103 238 103 239 86 239 104 239 103 240 104 240 106 240 106 241 104 241 105 241 105 242 12 242 106 242 106 243 12 243 108 243 12 244 107 244 108 244 108 245 107 245 109 245 107 246 110 246 109 246 109 247 110 247 92 247 92 248 110 248 93 248 93 249 110 249 111 249 93 250 111 250 112 250 112 251 111 251 168 251 112 252 168 252 113 252 113 253 168 253 167 253 32 254 173 254 247 254 247 255 173 255 90 255 247 256 90 256 78 256 78 257 90 257 89 257 78 258 89 258 114 258 114 259 89 259 31 259 115 260 1374 260 194 260 194 261 1374 261 116 261 194 262 116 262 129 262 129 263 116 263 117 263 129 264 117 264 118 264 118 265 117 265 95 265 96 266 198 266 118 266 118 267 198 267 141 267 208 268 119 268 210 268 210 269 119 269 125 269 197 270 121 270 120 270 120 271 121 271 141 271 120 272 141 272 122 272 122 273 141 273 198 273 212 274 139 274 123 274 123 275 139 275 125 275 123 276 125 276 124 276 124 277 125 277 119 277 220 278 134 278 183 278 181 279 185 279 126 279 126 280 185 280 183 280 126 281 183 281 127 281 127 282 183 282 133 282 194 283 129 283 128 283 128 284 129 284 130 284 128 285 130 285 196 285 196 286 130 286 191 286 196 287 191 287 131 287 131 288 191 288 132 288 183 289 134 289 133 289 133 290 134 290 135 290 133 291 135 291 217 291 141 292 125 292 240 292 232 293 230 293 139 293 139 294 230 294 136 294 139 295 136 295 125 295 125 296 136 296 137 296 125 297 137 297 240 297 180 298 133 298 138 298 138 299 133 299 217 299 138 300 217 300 139 300 139 301 217 301 228 301 140 302 118 302 238 302 238 303 118 303 141 303 238 304 141 304 239 304 239 305 141 305 240 305 140 306 142 306 118 306 118 307 142 307 143 307 118 308 143 308 145 308 228 309 227 309 139 309 139 310 227 310 144 310 139 311 144 311 232 311 232 312 144 312 150 312 145 313 226 313 118 313 118 314 226 314 146 314 118 315 146 315 129 315 146 316 225 316 129 316 129 317 225 317 223 317 129 318 223 318 130 318 130 319 223 319 221 319 130 320 221 320 183 320 183 321 221 321 147 321 183 322 147 322 220 322 143 323 148 323 145 323 145 324 148 324 234 324 145 325 234 325 144 325 144 326 234 326 149 326 144 327 149 327 150 327 151 328 58 328 83 328 83 329 58 329 357 329 171 330 40 330 318 330 318 331 40 331 56 331 100 332 101 332 159 332 159 333 101 333 85 333 159 334 85 334 156 334 156 335 85 335 250 335 156 336 250 336 113 336 113 337 250 337 112 337 211 338 160 338 212 338 212 339 160 339 152 339 212 340 152 340 139 340 139 341 152 341 153 341 152 342 154 342 153 342 153 343 154 343 176 343 155 344 1380 344 180 344 138 345 176 345 180 345 180 346 176 346 154 346 180 347 154 347 155 347 167 348 157 348 113 348 113 349 157 349 156 349 157 350 158 350 156 350 156 351 158 351 159 351 158 352 102 352 159 352 159 353 102 353 100 353 152 354 160 354 161 354 171 355 161 355 322 355 322 356 161 356 953 356 357 357 58 357 175 357 353 358 162 358 354 358 354 359 162 359 161 359 152 360 161 360 154 360 154 361 161 361 162 361 154 362 162 362 155 362 86 363 102 363 163 363 163 364 102 364 158 364 163 365 158 365 157 365 170 366 318 366 317 366 169 367 175 367 161 367 161 368 175 368 58 368 161 369 58 369 354 369 434 370 317 370 164 370 164 371 317 371 165 371 164 372 165 372 382 372 382 373 165 373 99 373 382 374 99 374 166 374 166 375 99 375 170 375 166 376 170 376 434 376 434 377 170 377 317 377 167 378 168 378 157 378 157 379 168 379 169 379 157 380 169 380 163 380 163 381 169 381 161 381 163 382 161 382 170 382 170 383 161 383 171 383 170 384 171 384 318 384 172 385 417 385 90 385 90 386 417 386 362 386 90 387 173 387 172 387 172 388 173 388 359 388 172 389 359 389 174 389 174 390 359 390 357 390 174 391 357 391 362 391 362 392 357 392 175 392 362 393 175 393 90 393 139 394 153 394 138 394 138 395 153 395 176 395 177 396 181 396 126 396 177 397 126 397 178 397 178 398 126 398 127 398 178 399 127 399 179 399 179 400 127 400 133 400 179 401 133 401 1381 401 1381 402 133 402 180 402 1381 403 180 403 1380 403 185 404 181 404 182 404 182 405 181 405 177 405 185 406 182 406 184 406 62 407 187 407 183 407 17 408 18 408 1394 408 1394 409 18 409 62 409 1394 410 62 410 184 410 184 411 62 411 183 411 184 412 183 412 185 412 130 413 183 413 186 413 186 414 183 414 187 414 186 415 1395 415 130 415 130 416 1395 416 189 416 190 417 1391 417 1389 417 193 418 191 418 188 418 188 419 191 419 130 419 188 420 130 420 1389 420 1389 421 130 421 189 421 1389 422 189 422 190 422 132 423 191 423 192 423 192 424 191 424 193 424 115 425 194 425 128 425 115 426 128 426 195 426 195 427 128 427 196 427 195 428 196 428 1378 428 1378 429 196 429 131 429 1378 430 131 430 1377 430 1377 431 131 431 132 431 1377 432 132 432 192 432 957 433 197 433 120 433 957 434 120 434 955 434 955 435 120 435 122 435 955 436 122 436 199 436 199 437 122 437 198 437 199 438 198 438 200 438 200 439 198 439 96 439 200 440 96 440 201 440 121 441 197 441 958 441 958 442 197 442 957 442 121 443 958 443 203 443 967 444 34 444 202 444 202 445 34 445 36 445 202 446 36 446 203 446 203 447 36 447 141 447 203 448 141 448 121 448 125 449 141 449 204 449 204 450 141 450 36 450 205 451 965 451 210 451 125 452 204 452 206 452 210 453 125 453 205 453 205 454 125 454 206 454 205 455 206 455 207 455 207 456 206 456 25 456 207 457 25 457 968 457 208 458 210 458 209 458 209 459 210 459 965 459 211 460 212 460 123 460 211 461 123 461 213 461 213 462 123 462 124 462 213 463 124 463 214 463 214 464 124 464 119 464 214 465 119 465 215 465 215 466 119 466 208 466 215 467 208 467 209 467 229 468 217 468 216 468 216 469 217 469 135 469 216 470 135 470 218 470 218 471 135 471 134 471 218 472 134 472 219 472 219 473 134 473 220 473 219 474 220 474 71 474 71 475 220 475 147 475 71 476 147 476 72 476 72 477 147 477 221 477 72 478 221 478 222 478 222 479 221 479 223 479 222 480 223 480 224 480 224 481 223 481 225 481 224 482 225 482 59 482 59 483 225 483 146 483 59 484 146 484 61 484 61 485 146 485 226 485 61 486 226 486 70 486 70 487 226 487 145 487 70 488 145 488 74 488 74 489 145 489 144 489 74 490 144 490 75 490 75 491 144 491 227 491 75 492 227 492 76 492 76 493 227 493 228 493 76 494 228 494 229 494 229 495 228 495 217 495 243 496 230 496 231 496 231 497 230 497 232 497 231 498 232 498 50 498 50 499 232 499 150 499 50 500 150 500 233 500 233 501 150 501 149 501 233 502 149 502 52 502 52 503 149 503 234 503 52 504 234 504 45 504 45 505 234 505 148 505 45 506 148 506 44 506 44 507 148 507 143 507 44 508 143 508 235 508 235 509 143 509 142 509 235 510 142 510 236 510 236 511 142 511 140 511 236 512 140 512 237 512 237 513 140 513 238 513 237 514 238 514 47 514 47 515 238 515 239 515 47 516 239 516 241 516 241 517 239 517 240 517 241 518 240 518 242 518 242 519 240 519 137 519 242 520 137 520 48 520 48 521 137 521 136 521 48 522 136 522 243 522 243 523 136 523 230 523 244 524 245 524 246 524 246 525 245 525 247 525 246 526 247 526 249 526 249 527 247 527 78 527 249 528 78 528 60 528 60 529 78 529 77 529 88 530 248 530 249 530 249 531 248 531 246 531 248 532 69 532 246 532 246 533 69 533 244 533 87 534 88 534 60 534 60 535 88 535 249 535 112 536 250 536 93 536 93 537 250 537 84 537 85 538 101 538 94 538 94 539 101 539 103 539 51 540 43 540 1898 540 1898 541 43 541 55 541 1898 542 55 542 252 542 252 543 55 543 251 543 252 544 251 544 1900 544 1900 545 251 545 39 545 255 546 334 546 365 546 253 547 455 547 275 547 275 548 254 548 253 548 253 549 254 549 255 549 253 550 255 550 274 550 274 551 255 551 365 551 79 552 8 552 21 552 21 553 8 553 23 553 446 554 980 554 444 554 444 555 980 555 971 555 256 556 259 556 971 556 971 557 259 557 257 557 971 558 257 558 444 558 8 559 261 559 23 559 23 560 261 560 440 560 23 561 440 561 973 561 973 562 440 562 442 562 973 563 442 563 256 563 256 564 442 564 258 564 256 565 258 565 259 565 8 566 260 566 261 566 261 567 260 567 262 567 261 568 262 568 275 568 275 569 262 569 254 569 68 570 263 570 542 570 542 571 263 571 272 571 80 572 73 572 260 572 260 573 73 573 68 573 260 574 68 574 262 574 262 575 68 575 542 575 266 576 263 576 265 576 265 577 263 577 68 577 265 578 68 578 264 578 1107 579 455 579 253 579 266 580 265 580 1203 580 1203 581 1204 581 266 581 266 582 1204 582 267 582 266 583 267 583 253 583 267 584 1206 584 253 584 253 585 1206 585 268 585 253 586 268 586 1107 586 1107 587 268 587 269 587 269 588 268 588 1081 588 1081 589 268 589 270 589 1081 590 270 590 271 590 271 591 270 591 1037 591 271 592 1037 592 1041 592 1041 593 1037 593 1039 593 1041 594 1039 594 1040 594 263 595 266 595 272 595 272 596 266 596 253 596 272 597 253 597 273 597 273 598 253 598 274 598 273 599 274 599 291 599 291 600 274 600 286 600 261 601 275 601 276 601 276 602 275 602 277 602 276 603 277 603 11 603 11 604 277 604 10 604 30 605 26 605 295 605 295 606 26 606 280 606 295 607 280 607 278 607 278 608 280 608 279 608 279 609 280 609 282 609 279 610 282 610 281 610 281 611 282 611 377 611 377 612 282 612 598 612 377 613 598 613 375 613 375 614 598 614 283 614 375 615 283 615 374 615 374 616 283 616 284 616 284 617 283 617 595 617 284 618 595 618 373 618 285 619 777 619 286 619 274 620 365 620 672 620 274 621 859 621 286 621 286 622 859 622 287 622 286 623 287 623 285 623 672 624 861 624 274 624 274 625 861 625 288 625 274 626 288 626 859 626 672 627 289 627 861 627 861 628 289 628 648 628 861 629 648 629 862 629 862 630 648 630 290 630 862 631 290 631 641 631 641 632 290 632 645 632 641 633 645 633 642 633 642 634 645 634 644 634 13 635 37 635 777 635 777 636 37 636 291 636 777 637 291 637 286 637 273 638 291 638 292 638 292 639 291 639 37 639 293 640 292 640 294 640 294 641 292 641 37 641 294 642 37 642 54 642 54 643 37 643 53 643 255 644 293 644 334 644 334 645 293 645 294 645 334 646 294 646 278 646 278 647 294 647 295 647 296 648 325 648 950 648 297 649 373 649 562 649 470 650 472 650 473 650 480 651 481 651 300 651 298 652 299 652 372 652 300 653 481 653 945 653 945 654 481 654 304 654 945 655 304 655 948 655 300 656 301 656 480 656 480 657 301 657 302 657 480 658 302 658 479 658 479 659 302 659 576 659 479 660 576 660 299 660 299 661 576 661 311 661 299 662 311 662 372 662 365 663 470 663 303 663 303 664 470 664 473 664 303 665 473 665 684 665 684 666 473 666 475 666 948 667 304 667 306 667 306 668 304 668 305 668 306 669 305 669 950 669 950 670 305 670 469 670 950 671 469 671 296 671 476 672 686 672 475 672 475 673 686 673 685 673 475 674 685 674 684 674 372 675 297 675 298 675 298 676 297 676 562 676 298 677 562 677 477 677 477 678 562 678 688 678 477 679 688 679 307 679 307 680 688 680 308 680 307 681 308 681 476 681 476 682 308 682 687 682 476 683 687 683 686 683 437 684 1358 684 309 684 309 685 1358 685 310 685 309 686 310 686 540 686 540 687 310 687 328 687 540 688 328 688 319 688 319 689 328 689 325 689 33 690 317 690 29 690 29 691 317 691 314 691 311 692 589 692 313 692 313 693 589 693 312 693 591 694 316 694 312 694 312 695 316 695 371 695 312 696 371 696 313 696 317 697 383 697 314 697 314 698 383 698 367 698 314 699 367 699 594 699 594 700 367 700 315 700 594 701 315 701 591 701 591 702 315 702 369 702 591 703 369 703 316 703 317 704 318 704 383 704 383 705 318 705 541 705 383 706 541 706 319 706 319 707 541 707 540 707 322 708 320 708 323 708 323 709 320 709 321 709 56 710 49 710 318 710 318 711 49 711 322 711 318 712 322 712 541 712 541 713 322 713 323 713 332 714 320 714 324 714 324 715 320 715 322 715 324 716 322 716 953 716 943 717 325 717 328 717 332 718 324 718 326 718 326 719 327 719 332 719 332 720 327 720 788 720 332 721 788 721 328 721 788 722 789 722 328 722 328 723 789 723 330 723 328 724 330 724 943 724 943 725 330 725 942 725 942 726 330 726 329 726 329 727 330 727 878 727 329 728 878 728 912 728 912 729 878 729 331 729 912 730 331 730 884 730 884 731 331 731 881 731 884 732 881 732 882 732 320 733 332 733 321 733 321 734 332 734 328 734 321 735 328 735 333 735 333 736 328 736 310 736 333 737 310 737 355 737 355 738 310 738 347 738 334 739 278 739 335 739 435 740 336 740 335 740 335 741 336 741 337 741 335 742 337 742 334 742 338 743 82 743 359 743 359 744 82 744 974 744 359 745 974 745 360 745 360 746 974 746 451 746 451 747 974 747 341 747 451 748 341 748 339 748 339 749 341 749 340 749 340 750 341 750 976 750 340 751 976 751 342 751 342 752 976 752 343 752 342 753 343 753 449 753 449 754 343 754 345 754 345 755 343 755 344 755 345 756 344 756 1008 756 347 757 310 757 1189 757 1189 758 346 758 347 758 347 759 346 759 1147 759 347 760 1147 760 1372 760 310 761 1358 761 348 761 348 762 1270 762 310 762 310 763 1270 763 349 763 310 764 349 764 1189 764 348 765 1342 765 1270 765 1270 766 1342 766 1341 766 1270 767 1341 767 1269 767 1269 768 1341 768 1318 768 1269 769 1318 769 351 769 351 770 1318 770 350 770 351 771 350 771 352 771 352 772 350 772 1317 772 353 773 354 773 1372 773 1372 774 354 774 355 774 1372 775 355 775 347 775 333 776 355 776 358 776 358 777 355 777 354 777 356 778 358 778 357 778 357 779 358 779 354 779 357 780 354 780 83 780 83 781 354 781 81 781 356 782 357 782 359 782 359 783 360 783 356 783 356 784 360 784 437 784 356 785 437 785 309 785 437 786 360 786 361 786 174 787 362 787 361 787 361 788 362 788 363 788 361 789 363 789 437 789 337 790 380 790 334 790 334 791 380 791 364 791 334 792 364 792 365 792 365 793 364 793 470 793 296 794 513 794 325 794 325 795 513 795 366 795 325 796 366 796 319 796 319 797 366 797 433 797 367 798 387 798 368 798 367 799 368 799 315 799 315 800 368 800 398 800 315 801 398 801 369 801 369 802 398 802 400 802 369 803 400 803 316 803 316 804 400 804 370 804 316 805 370 805 371 805 371 806 370 806 402 806 371 807 402 807 313 807 313 808 402 808 311 808 311 809 402 809 404 809 311 810 404 810 372 810 372 811 404 811 405 811 372 812 405 812 297 812 297 813 405 813 373 813 373 814 405 814 408 814 373 815 408 815 284 815 284 816 408 816 409 816 284 817 409 817 374 817 374 818 409 818 412 818 374 819 412 819 375 819 375 820 412 820 376 820 375 821 376 821 377 821 377 822 376 822 378 822 377 823 378 823 281 823 281 824 378 824 416 824 281 825 416 825 279 825 279 826 416 826 278 826 278 827 416 827 379 827 278 828 379 828 335 828 337 829 336 829 380 829 380 830 336 830 381 830 380 831 381 831 388 831 166 832 433 832 382 832 382 833 433 833 366 833 382 834 366 834 385 834 432 835 391 835 383 835 383 836 391 836 387 836 383 837 387 837 367 837 505 838 501 838 384 838 385 839 510 839 393 839 499 840 398 840 368 840 386 841 526 841 525 841 368 842 387 842 499 842 499 843 387 843 391 843 499 844 391 844 392 844 415 845 394 845 388 845 389 846 390 846 452 846 164 847 382 847 391 847 391 848 382 848 385 848 391 849 385 849 392 849 392 850 385 850 393 850 392 851 393 851 501 851 501 852 393 852 508 852 501 853 508 853 384 853 384 854 508 854 506 854 468 855 9 855 452 855 452 856 9 856 386 856 452 857 386 857 389 857 389 858 386 858 525 858 389 859 525 859 394 859 394 860 525 860 395 860 394 861 395 861 388 861 388 862 395 862 396 862 499 863 397 863 398 863 398 864 397 864 399 864 398 865 399 865 400 865 400 866 399 866 401 866 400 867 401 867 370 867 370 868 401 868 478 868 370 869 478 869 402 869 402 870 478 870 403 870 402 871 403 871 404 871 404 872 403 872 406 872 404 873 406 873 405 873 405 874 406 874 407 874 405 875 407 875 408 875 408 876 407 876 410 876 408 877 410 877 409 877 409 878 410 878 411 878 409 879 411 879 412 879 412 880 411 880 413 880 412 881 413 881 376 881 376 882 413 882 414 882 376 883 414 883 378 883 378 884 414 884 474 884 378 885 474 885 416 885 416 886 474 886 415 886 416 887 415 887 379 887 379 888 415 888 388 888 379 889 388 889 6 889 6 890 388 890 381 890 417 891 172 891 384 891 384 892 172 892 418 892 384 893 418 893 505 893 505 894 418 894 419 894 505 895 419 895 483 895 483 896 419 896 450 896 483 897 450 897 420 897 420 898 450 898 421 898 420 899 421 899 486 899 486 900 421 900 422 900 486 901 422 901 487 901 487 902 422 902 423 902 487 903 423 903 424 903 424 904 423 904 448 904 424 905 448 905 490 905 490 906 448 906 425 906 490 907 425 907 491 907 491 908 425 908 426 908 491 909 426 909 492 909 492 910 426 910 445 910 492 911 445 911 427 911 427 912 445 912 428 912 427 913 428 913 429 913 429 914 428 914 443 914 429 915 443 915 495 915 495 916 443 916 430 916 495 917 430 917 497 917 497 918 430 918 431 918 497 919 431 919 390 919 390 920 431 920 441 920 390 921 441 921 452 921 383 922 319 922 432 922 432 923 319 923 433 923 432 924 433 924 434 924 434 925 433 925 166 925 164 926 391 926 434 926 434 927 391 927 432 927 379 928 6 928 335 928 335 929 6 929 435 929 363 930 436 930 437 930 437 931 436 931 516 931 437 932 516 932 1358 932 1358 933 516 933 438 933 454 934 439 934 455 934 455 935 439 935 527 935 455 936 527 936 275 936 275 937 527 937 277 937 440 938 441 938 431 938 440 939 431 939 442 939 442 940 431 940 430 940 442 941 430 941 258 941 258 942 430 942 443 942 258 943 443 943 259 943 259 944 443 944 428 944 259 945 428 945 257 945 257 946 428 946 445 946 257 947 445 947 444 947 444 948 445 948 446 948 446 949 445 949 426 949 446 950 426 950 460 950 460 951 426 951 425 951 460 952 425 952 447 952 447 953 425 953 1008 953 1008 954 425 954 448 954 1008 955 448 955 345 955 345 956 448 956 423 956 345 957 423 957 449 957 449 958 423 958 422 958 449 959 422 959 342 959 342 960 422 960 421 960 342 961 421 961 340 961 340 962 421 962 450 962 340 963 450 963 339 963 339 964 450 964 419 964 339 965 419 965 451 965 451 966 419 966 360 966 360 967 419 967 418 967 360 968 418 968 361 968 363 969 362 969 436 969 436 970 362 970 417 970 436 971 417 971 384 971 10 972 277 972 9 972 9 973 277 973 527 973 9 974 527 974 386 974 276 975 452 975 261 975 261 976 452 976 441 976 261 977 441 977 440 977 447 978 1008 978 453 978 454 979 455 979 458 979 438 980 484 980 485 980 489 981 459 981 460 981 460 982 447 982 489 982 489 983 447 983 453 983 489 984 453 984 456 984 456 985 453 985 1366 985 456 986 1366 986 488 986 488 987 1366 987 1365 987 488 988 1365 988 457 988 454 989 458 989 482 989 1365 990 1364 990 457 990 457 991 1364 991 461 991 457 992 461 992 462 992 482 993 458 993 496 993 496 994 458 994 1104 994 496 995 1104 995 464 995 494 996 467 996 493 996 493 997 467 997 1079 997 493 998 1079 998 459 998 459 999 1079 999 446 999 459 1000 446 1000 460 1000 461 1001 1362 1001 462 1001 462 1002 1362 1002 1360 1002 462 1003 1360 1003 485 1003 485 1004 1360 1004 1359 1004 485 1005 1359 1005 438 1005 438 1006 1359 1006 1358 1006 1104 1007 463 1007 464 1007 464 1008 463 1008 465 1008 464 1009 465 1009 466 1009 466 1010 465 1010 1103 1010 466 1011 1103 1011 494 1011 494 1012 1103 1012 1102 1012 494 1013 1102 1013 467 1013 418 1014 172 1014 361 1014 361 1015 172 1015 174 1015 468 1016 452 1016 11 1016 11 1017 452 1017 276 1017 513 1018 296 1018 500 1018 500 1019 296 1019 469 1019 471 1020 472 1020 364 1020 364 1021 472 1021 470 1021 471 1022 415 1022 474 1022 471 1023 474 1023 472 1023 397 1024 499 1024 500 1024 472 1025 474 1025 473 1025 473 1026 474 1026 414 1026 473 1027 414 1027 475 1027 475 1028 414 1028 413 1028 475 1029 413 1029 476 1029 476 1030 413 1030 411 1030 476 1031 411 1031 307 1031 307 1032 411 1032 410 1032 307 1033 410 1033 477 1033 477 1034 410 1034 407 1034 477 1035 407 1035 298 1035 298 1036 407 1036 406 1036 298 1037 406 1037 299 1037 299 1038 406 1038 403 1038 299 1039 403 1039 479 1039 479 1040 403 1040 478 1040 479 1041 478 1041 480 1041 480 1042 478 1042 401 1042 480 1043 401 1043 481 1043 481 1044 401 1044 399 1044 481 1045 399 1045 304 1045 304 1046 399 1046 397 1046 304 1047 397 1047 305 1047 305 1048 397 1048 500 1048 305 1049 500 1049 469 1049 439 1050 454 1050 518 1050 518 1051 454 1051 482 1051 515 1052 484 1052 516 1052 516 1053 484 1053 438 1053 515 1054 505 1054 483 1054 515 1055 483 1055 484 1055 497 1056 390 1056 518 1056 484 1057 483 1057 485 1057 485 1058 483 1058 420 1058 485 1059 420 1059 462 1059 462 1060 420 1060 486 1060 462 1061 486 1061 457 1061 457 1062 486 1062 487 1062 457 1063 487 1063 488 1063 488 1064 487 1064 424 1064 488 1065 424 1065 456 1065 456 1066 424 1066 490 1066 456 1067 490 1067 489 1067 489 1068 490 1068 491 1068 489 1069 491 1069 459 1069 459 1070 491 1070 492 1070 459 1071 492 1071 493 1071 493 1072 492 1072 427 1072 493 1073 427 1073 494 1073 494 1074 427 1074 429 1074 494 1075 429 1075 466 1075 466 1076 429 1076 495 1076 466 1077 495 1077 464 1077 464 1078 495 1078 497 1078 464 1079 497 1079 496 1079 496 1080 497 1080 518 1080 496 1081 518 1081 482 1081 498 1082 517 1082 500 1082 500 1083 499 1083 502 1083 502 1084 499 1084 392 1084 500 1085 502 1085 498 1085 498 1086 502 1086 531 1086 498 1087 531 1087 534 1087 392 1088 501 1088 502 1088 502 1089 501 1089 504 1089 504 1090 501 1090 505 1090 515 1091 514 1091 503 1091 533 1092 532 1092 503 1092 503 1093 532 1093 504 1093 503 1094 504 1094 515 1094 515 1095 504 1095 505 1095 384 1096 506 1096 436 1096 436 1097 506 1097 507 1097 506 1098 508 1098 507 1098 507 1099 508 1099 512 1099 508 1100 393 1100 512 1100 512 1101 393 1101 509 1101 393 1102 510 1102 509 1102 509 1103 510 1103 511 1103 366 1104 511 1104 385 1104 385 1105 511 1105 510 1105 436 1106 507 1106 512 1106 366 1107 513 1107 500 1107 509 1108 517 1108 512 1108 512 1109 517 1109 514 1109 512 1110 514 1110 436 1110 436 1111 514 1111 515 1111 436 1112 515 1112 516 1112 511 1113 366 1113 509 1113 509 1114 366 1114 500 1114 509 1115 500 1115 517 1115 518 1116 390 1116 519 1116 519 1117 390 1117 389 1117 520 1118 518 1118 521 1118 521 1119 518 1119 519 1119 521 1120 519 1120 522 1120 522 1121 519 1121 537 1121 529 1122 520 1122 535 1122 535 1123 520 1123 521 1123 415 1124 471 1124 535 1124 535 1125 471 1125 529 1125 394 1126 415 1126 539 1126 539 1127 415 1127 535 1127 539 1128 535 1128 538 1128 538 1129 535 1129 536 1129 388 1130 396 1130 380 1130 380 1131 396 1131 523 1131 396 1132 395 1132 523 1132 523 1133 395 1133 524 1133 395 1134 525 1134 524 1134 524 1135 525 1135 530 1135 525 1136 526 1136 530 1136 530 1137 526 1137 528 1137 527 1138 528 1138 386 1138 386 1139 528 1139 526 1139 439 1140 518 1140 527 1140 527 1141 518 1141 530 1141 527 1142 530 1142 528 1142 364 1143 380 1143 471 1143 471 1144 380 1144 529 1144 518 1145 520 1145 530 1145 530 1146 520 1146 529 1146 530 1147 529 1147 524 1147 524 1148 529 1148 380 1148 524 1149 380 1149 523 1149 504 1150 532 1150 502 1150 502 1151 532 1151 531 1151 532 1152 533 1152 531 1152 531 1153 533 1153 534 1153 533 1154 503 1154 534 1154 534 1155 503 1155 498 1155 521 1156 522 1156 535 1156 535 1157 522 1157 536 1157 522 1158 537 1158 536 1158 536 1159 537 1159 538 1159 537 1160 519 1160 538 1160 538 1161 519 1161 539 1161 309 1162 540 1162 356 1162 356 1163 540 1163 541 1163 356 1164 541 1164 358 1164 358 1165 541 1165 323 1165 321 1166 333 1166 323 1166 323 1167 333 1167 358 1167 542 1168 292 1168 293 1168 255 1169 254 1169 293 1169 293 1170 254 1170 262 1170 293 1171 262 1171 542 1171 272 1172 273 1172 542 1172 542 1173 273 1173 292 1173 595 1174 1655 1174 373 1174 373 1175 1655 1175 545 1175 557 1176 1650 1176 543 1176 548 1177 557 1177 610 1177 610 1178 557 1178 601 1178 544 1179 545 1179 546 1179 546 1180 545 1180 557 1180 546 1181 557 1181 547 1181 547 1182 557 1182 548 1182 549 1183 555 1183 557 1183 550 1184 756 1184 551 1184 551 1185 756 1185 759 1185 551 1186 759 1186 757 1186 757 1187 759 1187 552 1187 757 1188 552 1188 728 1188 761 1189 553 1189 555 1189 555 1190 553 1190 554 1190 555 1191 554 1191 557 1191 557 1192 554 1192 556 1192 557 1193 556 1193 601 1193 544 1194 558 1194 545 1194 545 1195 558 1195 604 1195 545 1196 604 1196 607 1196 771 1197 557 1197 769 1197 769 1198 557 1198 543 1198 769 1199 543 1199 966 1199 552 1200 549 1200 728 1200 728 1201 549 1201 557 1201 728 1202 557 1202 559 1202 559 1203 557 1203 753 1203 771 1204 750 1204 557 1204 557 1205 750 1205 560 1205 557 1206 560 1206 751 1206 751 1207 752 1207 557 1207 557 1208 752 1208 561 1208 557 1209 561 1209 753 1209 566 1210 660 1210 373 1210 373 1211 660 1211 659 1211 373 1212 659 1212 562 1212 607 1213 608 1213 545 1213 545 1214 608 1214 563 1214 545 1215 563 1215 373 1215 373 1216 563 1216 606 1216 373 1217 606 1217 564 1217 565 1218 566 1218 567 1218 567 1219 566 1219 373 1219 567 1220 373 1220 568 1220 568 1221 373 1221 564 1221 1646 1222 589 1222 570 1222 570 1223 589 1223 311 1223 573 1224 570 1224 569 1224 569 1225 570 1225 571 1225 571 1226 570 1226 865 1226 865 1227 570 1227 311 1227 865 1228 311 1228 924 1228 924 1229 311 1229 572 1229 924 1230 572 1230 926 1230 573 1231 574 1231 570 1231 570 1232 574 1232 867 1232 570 1233 867 1233 575 1233 575 1234 867 1234 868 1234 575 1235 868 1235 578 1235 311 1236 576 1236 944 1236 927 1237 572 1237 577 1237 577 1238 572 1238 311 1238 577 1239 311 1239 925 1239 925 1240 311 1240 944 1240 578 1241 873 1241 575 1241 575 1242 873 1242 871 1242 575 1243 871 1243 579 1243 579 1244 580 1244 575 1244 575 1245 580 1245 731 1245 575 1246 731 1246 730 1246 581 1247 745 1247 730 1247 729 1248 581 1248 587 1248 587 1249 581 1249 730 1249 587 1250 730 1250 586 1250 740 1251 575 1251 582 1251 582 1252 575 1252 730 1252 582 1253 730 1253 743 1253 743 1254 730 1254 745 1254 586 1255 583 1255 734 1255 584 1256 739 1256 735 1256 735 1257 739 1257 585 1257 735 1258 585 1258 737 1258 586 1259 734 1259 587 1259 587 1260 734 1260 585 1260 587 1261 585 1261 588 1261 588 1262 585 1262 739 1262 588 1263 739 1263 738 1263 1647 1264 1674 1264 590 1264 589 1265 1646 1265 312 1265 312 1266 1646 1266 1647 1266 1647 1267 590 1267 312 1267 312 1268 590 1268 592 1268 312 1269 592 1269 591 1269 591 1270 592 1270 593 1270 591 1271 593 1271 594 1271 594 1272 593 1272 28 1272 594 1273 28 1273 314 1273 596 1274 597 1274 1651 1274 1651 1275 597 1275 1650 1275 1655 1276 595 1276 596 1276 596 1277 595 1277 283 1277 596 1278 283 1278 597 1278 597 1279 283 1279 598 1279 597 1280 598 1280 599 1280 599 1281 598 1281 282 1281 599 1282 282 1282 41 1282 41 1283 282 1283 280 1283 41 1284 280 1284 600 1284 640 1285 862 1285 641 1285 857 1286 640 1286 636 1286 546 1287 547 1287 618 1287 611 1288 601 1288 602 1288 602 1289 601 1289 556 1289 602 1290 556 1290 554 1290 618 1291 547 1291 617 1291 617 1292 547 1292 548 1292 617 1293 548 1293 610 1293 546 1294 618 1294 544 1294 544 1295 618 1295 603 1295 544 1296 603 1296 558 1296 558 1297 603 1297 604 1297 604 1298 603 1298 620 1298 604 1299 620 1299 607 1299 608 1300 605 1300 563 1300 563 1301 605 1301 606 1301 607 1302 620 1302 608 1302 608 1303 620 1303 621 1303 608 1304 621 1304 605 1304 609 1305 617 1305 611 1305 611 1306 617 1306 610 1306 611 1307 610 1307 601 1307 609 1308 612 1308 616 1308 616 1309 612 1309 723 1309 723 1310 613 1310 627 1310 627 1311 613 1311 626 1311 626 1312 852 1312 634 1312 634 1313 852 1313 614 1313 614 1314 722 1314 615 1314 615 1315 722 1315 857 1315 609 1316 616 1316 617 1316 617 1317 616 1317 622 1317 617 1318 622 1318 618 1318 618 1319 622 1319 619 1319 618 1320 619 1320 603 1320 603 1321 619 1321 624 1321 603 1322 624 1322 620 1322 620 1323 624 1323 654 1323 620 1324 654 1324 621 1324 631 1325 657 1325 655 1325 723 1326 627 1326 616 1326 616 1327 627 1327 629 1327 616 1328 629 1328 622 1328 622 1329 629 1329 623 1329 622 1330 623 1330 619 1330 619 1331 623 1331 631 1331 619 1332 631 1332 624 1332 624 1333 631 1333 655 1333 624 1334 655 1334 654 1334 625 1335 653 1335 632 1335 626 1336 634 1336 627 1336 627 1337 634 1337 628 1337 627 1338 628 1338 629 1338 629 1339 628 1339 630 1339 629 1340 630 1340 623 1340 623 1341 630 1341 625 1341 623 1342 625 1342 631 1342 631 1343 625 1343 632 1343 631 1344 632 1344 657 1344 635 1345 639 1345 633 1345 614 1346 615 1346 634 1346 634 1347 615 1347 637 1347 634 1348 637 1348 628 1348 628 1349 637 1349 638 1349 628 1350 638 1350 630 1350 630 1351 638 1351 635 1351 630 1352 635 1352 625 1352 625 1353 635 1353 633 1353 625 1354 633 1354 653 1354 647 1355 649 1355 650 1355 857 1356 636 1356 615 1356 615 1357 636 1357 643 1357 615 1358 643 1358 637 1358 637 1359 643 1359 646 1359 637 1360 646 1360 638 1360 638 1361 646 1361 647 1361 638 1362 647 1362 635 1362 635 1363 647 1363 650 1363 635 1364 650 1364 639 1364 640 1365 641 1365 636 1365 636 1366 641 1366 642 1366 636 1367 642 1367 643 1367 643 1368 642 1368 644 1368 643 1369 644 1369 646 1369 646 1370 644 1370 645 1370 646 1371 645 1371 647 1371 647 1372 645 1372 290 1372 647 1373 290 1373 649 1373 290 1374 648 1374 649 1374 649 1375 648 1375 669 1375 649 1376 669 1376 650 1376 650 1377 669 1377 671 1377 650 1378 671 1378 639 1378 639 1379 671 1379 651 1379 639 1380 651 1380 633 1380 633 1381 651 1381 652 1381 633 1382 652 1382 653 1382 653 1383 652 1383 668 1383 653 1384 668 1384 632 1384 632 1385 668 1385 667 1385 632 1386 667 1386 657 1386 564 1387 606 1387 658 1387 658 1388 606 1388 605 1388 658 1389 605 1389 661 1389 661 1390 605 1390 621 1390 661 1391 621 1391 662 1391 662 1392 621 1392 654 1392 662 1393 654 1393 664 1393 664 1394 654 1394 655 1394 664 1395 655 1395 656 1395 656 1396 655 1396 657 1396 656 1397 657 1397 665 1397 665 1398 657 1398 667 1398 568 1399 564 1399 658 1399 565 1400 567 1400 681 1400 681 1401 567 1401 568 1401 659 1402 660 1402 682 1402 682 1403 660 1403 566 1403 568 1404 658 1404 681 1404 681 1405 658 1405 661 1405 681 1406 661 1406 663 1406 661 1407 662 1407 663 1407 663 1408 662 1408 664 1408 663 1409 664 1409 677 1409 677 1410 664 1410 656 1410 677 1411 656 1411 666 1411 656 1412 665 1412 666 1412 666 1413 665 1413 667 1413 666 1414 667 1414 675 1414 667 1415 668 1415 675 1415 675 1416 668 1416 652 1416 675 1417 652 1417 673 1417 648 1418 289 1418 669 1418 669 1419 289 1419 670 1419 669 1420 670 1420 671 1420 671 1421 670 1421 673 1421 671 1422 673 1422 651 1422 651 1423 673 1423 652 1423 289 1424 672 1424 670 1424 670 1425 672 1425 683 1425 670 1426 683 1426 673 1426 673 1427 683 1427 674 1427 673 1428 674 1428 675 1428 675 1429 674 1429 676 1429 675 1430 676 1430 666 1430 666 1431 676 1431 678 1431 666 1432 678 1432 677 1432 677 1433 678 1433 679 1433 677 1434 679 1434 663 1434 663 1435 679 1435 680 1435 663 1436 680 1436 681 1436 681 1437 680 1437 682 1437 681 1438 682 1438 565 1438 565 1439 682 1439 566 1439 672 1440 365 1440 683 1440 683 1441 365 1441 303 1441 683 1442 303 1442 674 1442 674 1443 303 1443 684 1443 674 1444 684 1444 676 1444 676 1445 684 1445 685 1445 676 1446 685 1446 678 1446 678 1447 685 1447 686 1447 678 1448 686 1448 679 1448 679 1449 686 1449 687 1449 679 1450 687 1450 680 1450 680 1451 687 1451 308 1451 680 1452 308 1452 682 1452 682 1453 308 1453 688 1453 682 1454 688 1454 659 1454 659 1455 688 1455 562 1455 202 1456 203 1456 690 1456 202 1457 690 1457 689 1457 689 1458 690 1458 960 1458 689 1459 960 1459 691 1459 691 1460 960 1460 205 1460 691 1461 205 1461 207 1461 692 1462 951 1462 704 1462 692 1463 704 1463 954 1463 954 1464 704 1464 705 1464 954 1465 705 1465 693 1465 693 1466 705 1466 694 1466 693 1467 694 1467 956 1467 956 1468 694 1468 707 1468 956 1469 707 1469 695 1469 695 1470 707 1470 696 1470 695 1471 696 1471 959 1471 959 1472 696 1472 710 1472 959 1473 710 1473 961 1473 961 1474 710 1474 697 1474 961 1475 697 1475 964 1475 964 1476 697 1476 715 1476 964 1477 715 1477 963 1477 963 1478 715 1478 698 1478 963 1479 698 1479 699 1479 699 1480 698 1480 718 1480 699 1481 718 1481 700 1481 700 1482 718 1482 701 1482 700 1483 701 1483 962 1483 962 1484 701 1484 720 1484 962 1485 720 1485 702 1485 952 1486 775 1486 951 1486 951 1487 775 1487 704 1487 775 1488 703 1488 704 1488 704 1489 703 1489 774 1489 704 1490 774 1490 705 1490 774 1491 843 1491 705 1491 705 1492 843 1492 725 1492 705 1493 725 1493 694 1493 725 1494 773 1494 694 1494 694 1495 773 1495 706 1495 694 1496 706 1496 707 1496 706 1497 708 1497 707 1497 707 1498 708 1498 785 1498 707 1499 785 1499 696 1499 785 1500 726 1500 696 1500 696 1501 726 1501 709 1501 696 1502 709 1502 710 1502 709 1503 711 1503 710 1503 710 1504 711 1504 766 1504 710 1505 766 1505 697 1505 766 1506 712 1506 697 1506 697 1507 712 1507 713 1507 697 1508 713 1508 715 1508 713 1509 714 1509 715 1509 715 1510 714 1510 716 1510 715 1511 716 1511 698 1511 716 1512 717 1512 698 1512 698 1513 717 1513 765 1513 698 1514 765 1514 718 1514 765 1515 719 1515 718 1515 718 1516 719 1516 721 1516 718 1517 721 1517 701 1517 763 1518 720 1518 764 1518 764 1519 720 1519 701 1519 764 1520 701 1520 793 1520 793 1521 701 1521 721 1521 640 1522 857 1522 860 1522 722 1523 614 1523 856 1523 852 1524 626 1524 841 1524 613 1525 723 1525 842 1525 612 1526 609 1526 839 1526 775 1527 952 1527 724 1527 703 1528 775 1528 776 1528 725 1529 843 1529 844 1529 773 1530 725 1530 831 1530 726 1531 785 1531 784 1531 716 1532 714 1532 780 1532 717 1533 716 1533 816 1533 721 1534 719 1534 801 1534 793 1535 721 1535 727 1535 549 1536 781 1536 555 1536 757 1537 728 1537 754 1537 729 1538 587 1538 744 1538 730 1539 732 1539 586 1539 730 1540 731 1540 824 1540 586 1541 732 1541 583 1541 583 1542 732 1542 733 1542 583 1543 733 1543 734 1543 584 1544 735 1544 736 1544 736 1545 735 1545 737 1545 736 1546 737 1546 733 1546 733 1547 737 1547 585 1547 733 1548 585 1548 734 1548 587 1549 588 1549 744 1549 744 1550 588 1550 738 1550 744 1551 738 1551 736 1551 736 1552 738 1552 739 1552 736 1553 739 1553 584 1553 582 1554 742 1554 740 1554 740 1555 742 1555 767 1555 740 1556 767 1556 741 1556 582 1557 743 1557 742 1557 742 1558 743 1558 745 1558 742 1559 745 1559 744 1559 744 1560 745 1560 581 1560 744 1561 581 1561 729 1561 769 1562 746 1562 768 1562 768 1563 746 1563 747 1563 768 1564 747 1564 748 1564 748 1565 747 1565 741 1565 748 1566 741 1566 749 1566 749 1567 741 1567 767 1567 750 1568 770 1568 560 1568 560 1569 770 1569 755 1569 560 1570 755 1570 751 1570 751 1571 755 1571 752 1571 728 1572 559 1572 754 1572 754 1573 559 1573 753 1573 754 1574 753 1574 755 1574 755 1575 753 1575 561 1575 755 1576 561 1576 752 1576 759 1577 756 1577 758 1577 758 1578 756 1578 550 1578 758 1579 550 1579 754 1579 754 1580 550 1580 551 1580 754 1581 551 1581 757 1581 781 1582 549 1582 758 1582 758 1583 549 1583 552 1583 758 1584 552 1584 759 1584 611 1585 602 1585 760 1585 760 1586 602 1586 554 1586 554 1587 553 1587 760 1587 760 1588 553 1588 761 1588 760 1589 761 1589 555 1589 762 1590 763 1590 794 1590 794 1591 763 1591 764 1591 794 1592 764 1592 793 1592 719 1593 765 1593 808 1593 808 1594 765 1594 717 1594 709 1595 768 1595 711 1595 711 1596 768 1596 748 1596 711 1597 748 1597 766 1597 766 1598 748 1598 749 1598 766 1599 749 1599 712 1599 712 1600 749 1600 767 1600 712 1601 767 1601 713 1601 709 1602 726 1602 768 1602 768 1603 726 1603 784 1603 768 1604 784 1604 769 1604 769 1605 784 1605 770 1605 769 1606 770 1606 771 1606 771 1607 770 1607 750 1607 708 1608 706 1608 772 1608 772 1609 706 1609 773 1609 843 1610 774 1610 845 1610 845 1611 774 1611 703 1611 775 1612 724 1612 776 1612 776 1613 724 1613 777 1613 776 1614 777 1614 778 1614 730 1615 824 1615 732 1615 732 1616 824 1616 822 1616 732 1617 822 1617 733 1617 733 1618 822 1618 779 1618 733 1619 779 1619 736 1619 736 1620 779 1620 820 1620 736 1621 820 1621 744 1621 744 1622 820 1622 817 1622 744 1623 817 1623 742 1623 742 1624 817 1624 780 1624 742 1625 780 1625 767 1625 767 1626 780 1626 714 1626 767 1627 714 1627 713 1627 555 1628 781 1628 760 1628 760 1629 781 1629 758 1629 760 1630 758 1630 830 1630 830 1631 758 1631 754 1631 830 1632 754 1632 829 1632 829 1633 754 1633 755 1633 829 1634 755 1634 782 1634 782 1635 755 1635 770 1635 782 1636 770 1636 783 1636 783 1637 770 1637 784 1637 783 1638 784 1638 827 1638 827 1639 784 1639 785 1639 827 1640 785 1640 708 1640 791 1641 874 1641 786 1641 762 1642 794 1642 324 1642 324 1643 794 1643 787 1643 324 1644 787 1644 326 1644 326 1645 787 1645 796 1645 326 1646 796 1646 327 1646 327 1647 796 1647 797 1647 327 1648 797 1648 788 1648 788 1649 797 1649 790 1649 788 1650 790 1650 789 1650 789 1651 790 1651 791 1651 789 1652 791 1652 330 1652 330 1653 791 1653 786 1653 330 1654 786 1654 878 1654 792 1655 891 1655 875 1655 793 1656 727 1656 794 1656 794 1657 727 1657 795 1657 794 1658 795 1658 787 1658 787 1659 795 1659 804 1659 787 1660 804 1660 796 1660 796 1661 804 1661 807 1661 796 1662 807 1662 797 1662 797 1663 807 1663 798 1663 797 1664 798 1664 790 1664 790 1665 798 1665 792 1665 790 1666 792 1666 791 1666 791 1667 792 1667 875 1667 791 1668 875 1668 874 1668 799 1669 800 1669 876 1669 721 1670 801 1670 727 1670 727 1671 801 1671 802 1671 727 1672 802 1672 795 1672 795 1673 802 1673 803 1673 795 1674 803 1674 804 1674 804 1675 803 1675 805 1675 804 1676 805 1676 807 1676 807 1677 805 1677 806 1677 807 1678 806 1678 798 1678 798 1679 806 1679 799 1679 798 1680 799 1680 792 1680 792 1681 799 1681 876 1681 792 1682 876 1682 891 1682 812 1683 815 1683 877 1683 719 1684 808 1684 801 1684 801 1685 808 1685 809 1685 801 1686 809 1686 802 1686 802 1687 809 1687 810 1687 802 1688 810 1688 803 1688 803 1689 810 1689 811 1689 803 1690 811 1690 805 1690 805 1691 811 1691 814 1691 805 1692 814 1692 806 1692 806 1693 814 1693 812 1693 806 1694 812 1694 799 1694 799 1695 812 1695 877 1695 799 1696 877 1696 800 1696 825 1697 826 1697 813 1697 717 1698 816 1698 808 1698 808 1699 816 1699 818 1699 808 1700 818 1700 809 1700 809 1701 818 1701 819 1701 809 1702 819 1702 810 1702 810 1703 819 1703 821 1703 810 1704 821 1704 811 1704 811 1705 821 1705 823 1705 811 1706 823 1706 814 1706 814 1707 823 1707 825 1707 814 1708 825 1708 812 1708 812 1709 825 1709 813 1709 812 1710 813 1710 815 1710 869 1711 824 1711 870 1711 870 1712 824 1712 731 1712 870 1713 731 1713 580 1713 716 1714 780 1714 816 1714 816 1715 780 1715 817 1715 816 1716 817 1716 818 1716 818 1717 817 1717 820 1717 818 1718 820 1718 819 1718 819 1719 820 1719 779 1719 819 1720 779 1720 821 1720 821 1721 779 1721 822 1721 821 1722 822 1722 823 1722 823 1723 822 1723 824 1723 823 1724 824 1724 825 1724 825 1725 824 1725 869 1725 825 1726 869 1726 826 1726 708 1727 772 1727 827 1727 827 1728 772 1728 833 1728 827 1729 833 1729 783 1729 783 1730 833 1730 828 1730 783 1731 828 1731 782 1731 782 1732 828 1732 836 1732 782 1733 836 1733 829 1733 829 1734 836 1734 838 1734 829 1735 838 1735 830 1735 830 1736 838 1736 839 1736 830 1737 839 1737 760 1737 760 1738 839 1738 609 1738 760 1739 609 1739 611 1739 773 1740 831 1740 772 1740 772 1741 831 1741 832 1741 772 1742 832 1742 833 1742 833 1743 832 1743 834 1743 833 1744 834 1744 828 1744 828 1745 834 1745 835 1745 828 1746 835 1746 836 1746 836 1747 835 1747 837 1747 836 1748 837 1748 838 1748 838 1749 837 1749 842 1749 838 1750 842 1750 839 1750 839 1751 842 1751 723 1751 839 1752 723 1752 612 1752 725 1753 844 1753 831 1753 831 1754 844 1754 846 1754 831 1755 846 1755 832 1755 832 1756 846 1756 840 1756 832 1757 840 1757 834 1757 834 1758 840 1758 849 1758 834 1759 849 1759 835 1759 835 1760 849 1760 851 1760 835 1761 851 1761 837 1761 837 1762 851 1762 841 1762 837 1763 841 1763 842 1763 842 1764 841 1764 626 1764 842 1765 626 1765 613 1765 843 1766 845 1766 844 1766 844 1767 845 1767 847 1767 844 1768 847 1768 846 1768 846 1769 847 1769 848 1769 846 1770 848 1770 840 1770 840 1771 848 1771 855 1771 840 1772 855 1772 849 1772 849 1773 855 1773 850 1773 849 1774 850 1774 851 1774 851 1775 850 1775 856 1775 851 1776 856 1776 841 1776 841 1777 856 1777 614 1777 841 1778 614 1778 852 1778 703 1779 776 1779 845 1779 845 1780 776 1780 778 1780 845 1781 778 1781 847 1781 847 1782 778 1782 853 1782 847 1783 853 1783 848 1783 848 1784 853 1784 858 1784 848 1785 858 1785 855 1785 855 1786 858 1786 854 1786 855 1787 854 1787 850 1787 850 1788 854 1788 860 1788 850 1789 860 1789 856 1789 856 1790 860 1790 857 1790 856 1791 857 1791 722 1791 777 1792 285 1792 778 1792 778 1793 285 1793 287 1793 778 1794 287 1794 853 1794 853 1795 287 1795 859 1795 853 1796 859 1796 858 1796 858 1797 859 1797 288 1797 858 1798 288 1798 854 1798 854 1799 288 1799 861 1799 854 1800 861 1800 860 1800 860 1801 861 1801 862 1801 860 1802 862 1802 640 1802 864 1803 863 1803 910 1803 910 1804 569 1804 864 1804 864 1805 569 1805 571 1805 864 1806 571 1806 865 1806 908 1807 867 1807 866 1807 866 1808 867 1808 574 1808 866 1809 574 1809 910 1809 910 1810 574 1810 573 1810 910 1811 573 1811 569 1811 872 1812 578 1812 908 1812 908 1813 578 1813 868 1813 908 1814 868 1814 867 1814 826 1815 869 1815 872 1815 872 1816 869 1816 870 1816 580 1817 579 1817 870 1817 870 1818 579 1818 871 1818 870 1819 871 1819 872 1819 872 1820 871 1820 873 1820 872 1821 873 1821 578 1821 878 1822 786 1822 879 1822 879 1823 786 1823 874 1823 874 1824 875 1824 885 1824 885 1825 875 1825 891 1825 891 1826 876 1826 892 1826 892 1827 876 1827 800 1827 800 1828 877 1828 897 1828 897 1829 877 1829 815 1829 815 1830 813 1830 907 1830 907 1831 813 1831 826 1831 878 1832 879 1832 331 1832 331 1833 879 1833 880 1833 331 1834 880 1834 881 1834 881 1835 880 1835 887 1835 881 1836 887 1836 882 1836 882 1837 887 1837 883 1837 882 1838 883 1838 884 1838 884 1839 883 1839 890 1839 884 1840 890 1840 912 1840 888 1841 913 1841 889 1841 874 1842 885 1842 879 1842 879 1843 885 1843 894 1843 879 1844 894 1844 880 1844 880 1845 894 1845 886 1845 880 1846 886 1846 887 1846 887 1847 886 1847 888 1847 887 1848 888 1848 883 1848 883 1849 888 1849 889 1849 883 1850 889 1850 890 1850 895 1851 918 1851 896 1851 891 1852 892 1852 885 1852 885 1853 892 1853 893 1853 885 1854 893 1854 894 1854 894 1855 893 1855 899 1855 894 1856 899 1856 886 1856 886 1857 899 1857 895 1857 886 1858 895 1858 888 1858 888 1859 895 1859 896 1859 888 1860 896 1860 913 1860 900 1861 919 1861 901 1861 800 1862 897 1862 892 1862 892 1863 897 1863 898 1863 892 1864 898 1864 893 1864 893 1865 898 1865 904 1865 893 1866 904 1866 899 1866 899 1867 904 1867 900 1867 899 1868 900 1868 895 1868 895 1869 900 1869 901 1869 895 1870 901 1870 918 1870 905 1871 902 1871 906 1871 815 1872 907 1872 897 1872 897 1873 907 1873 903 1873 897 1874 903 1874 898 1874 898 1875 903 1875 909 1875 898 1876 909 1876 904 1876 904 1877 909 1877 905 1877 904 1878 905 1878 900 1878 900 1879 905 1879 906 1879 900 1880 906 1880 919 1880 826 1881 872 1881 907 1881 907 1882 872 1882 908 1882 907 1883 908 1883 903 1883 903 1884 908 1884 866 1884 903 1885 866 1885 909 1885 909 1886 866 1886 910 1886 909 1887 910 1887 905 1887 905 1888 910 1888 863 1888 905 1889 863 1889 902 1889 329 1890 912 1890 911 1890 911 1891 912 1891 890 1891 911 1892 890 1892 928 1892 928 1893 890 1893 889 1893 928 1894 889 1894 914 1894 914 1895 889 1895 913 1895 914 1896 913 1896 915 1896 915 1897 913 1897 896 1897 915 1898 896 1898 916 1898 916 1899 896 1899 918 1899 916 1900 918 1900 917 1900 917 1901 918 1901 901 1901 917 1902 901 1902 931 1902 931 1903 901 1903 919 1903 931 1904 919 1904 920 1904 920 1905 919 1905 906 1905 920 1906 906 1906 933 1906 933 1907 906 1907 902 1907 933 1908 902 1908 921 1908 921 1909 902 1909 863 1909 921 1910 863 1910 922 1910 922 1911 863 1911 864 1911 922 1912 864 1912 923 1912 923 1913 864 1913 865 1913 923 1914 865 1914 924 1914 577 1915 925 1915 935 1915 944 1916 576 1916 302 1916 926 1917 572 1917 934 1917 934 1918 572 1918 927 1918 941 1919 942 1919 329 1919 329 1920 911 1920 941 1920 941 1921 911 1921 928 1921 941 1922 928 1922 940 1922 928 1923 914 1923 940 1923 940 1924 914 1924 915 1924 940 1925 915 1925 929 1925 915 1926 916 1926 929 1926 929 1927 916 1927 917 1927 929 1928 917 1928 930 1928 930 1929 917 1929 931 1929 930 1930 931 1930 932 1930 931 1931 920 1931 932 1931 932 1932 920 1932 933 1932 932 1933 933 1933 936 1933 924 1934 926 1934 923 1934 923 1935 926 1935 934 1935 923 1936 934 1936 922 1936 922 1937 934 1937 936 1937 922 1938 936 1938 921 1938 921 1939 936 1939 933 1939 927 1940 577 1940 934 1940 934 1941 577 1941 935 1941 934 1942 935 1942 936 1942 936 1943 935 1943 937 1943 936 1944 937 1944 932 1944 932 1945 937 1945 938 1945 932 1946 938 1946 930 1946 930 1947 938 1947 946 1947 930 1948 946 1948 929 1948 929 1949 946 1949 947 1949 929 1950 947 1950 940 1950 940 1951 947 1951 939 1951 940 1952 939 1952 941 1952 941 1953 939 1953 949 1953 941 1954 949 1954 942 1954 942 1955 949 1955 943 1955 925 1956 944 1956 935 1956 935 1957 944 1957 302 1957 935 1958 302 1958 937 1958 937 1959 302 1959 301 1959 937 1960 301 1960 938 1960 938 1961 301 1961 300 1961 938 1962 300 1962 946 1962 946 1963 300 1963 945 1963 946 1964 945 1964 947 1964 947 1965 945 1965 948 1965 947 1966 948 1966 939 1966 939 1967 948 1967 306 1967 939 1968 306 1968 949 1968 949 1969 306 1969 950 1969 949 1970 950 1970 943 1970 943 1971 950 1971 325 1971 952 1972 951 1972 692 1972 14 1973 13 1973 692 1973 692 1974 13 1974 777 1974 692 1975 777 1975 952 1975 952 1976 777 1976 724 1976 953 1977 161 1977 702 1977 702 1978 720 1978 763 1978 763 1979 762 1979 702 1979 702 1980 762 1980 324 1980 702 1981 324 1981 953 1981 690 1982 203 1982 958 1982 14 1983 692 1983 0 1983 0 1984 692 1984 954 1984 962 1985 702 1985 160 1985 160 1986 702 1986 161 1986 201 1987 0 1987 200 1987 200 1988 0 1988 954 1988 200 1989 954 1989 199 1989 199 1990 954 1990 693 1990 199 1991 693 1991 955 1991 955 1992 693 1992 956 1992 955 1993 956 1993 957 1993 957 1994 956 1994 695 1994 957 1995 695 1995 958 1995 958 1996 695 1996 959 1996 958 1997 959 1997 690 1997 690 1998 959 1998 961 1998 690 1999 961 1999 960 1999 960 2000 961 2000 964 2000 960 2001 964 2001 205 2001 160 2002 211 2002 962 2002 962 2003 211 2003 213 2003 962 2004 213 2004 700 2004 700 2005 213 2005 214 2005 700 2006 214 2006 699 2006 699 2007 214 2007 215 2007 699 2008 215 2008 963 2008 963 2009 215 2009 209 2009 963 2010 209 2010 964 2010 964 2011 209 2011 965 2011 964 2012 965 2012 205 2012 691 2013 207 2013 968 2013 769 2014 966 2014 746 2014 746 2015 966 2015 967 2015 746 2016 967 2016 747 2016 747 2017 967 2017 202 2017 747 2018 202 2018 689 2018 689 2019 691 2019 747 2019 747 2020 691 2020 968 2020 747 2021 968 2021 741 2021 741 2022 968 2022 575 2022 741 2023 575 2023 740 2023 969 2024 1399 2024 66 2024 980 2025 970 2025 971 2025 971 2026 970 2026 969 2026 969 2027 66 2027 971 2027 971 2028 66 2028 972 2028 971 2029 972 2029 256 2029 256 2030 972 2030 67 2030 256 2031 67 2031 973 2031 973 2032 67 2032 22 2032 973 2033 22 2033 23 2033 1634 2034 344 2034 1635 2034 1635 2035 344 2035 343 2035 974 2036 63 2036 975 2036 974 2037 975 2037 341 2037 341 2038 975 2038 64 2038 341 2039 64 2039 976 2039 976 2040 64 2040 977 2040 976 2041 977 2041 343 2041 343 2042 977 2042 978 2042 343 2043 978 2043 1635 2043 989 2044 1393 2044 993 2044 970 2045 980 2045 979 2045 979 2046 980 2046 446 2046 993 2047 981 2047 982 2047 983 2048 1022 2048 979 2048 979 2049 1022 2049 1027 2049 979 2050 1027 2050 993 2050 993 2051 1027 2051 984 2051 993 2052 984 2052 981 2052 1020 2053 1019 2053 979 2053 982 2054 1025 2054 993 2054 993 2055 1025 2055 1029 2055 993 2056 1029 2056 1028 2056 1019 2057 985 2057 979 2057 979 2058 985 2058 1024 2058 979 2059 1024 2059 983 2059 1028 2060 1162 2060 993 2060 993 2061 1162 2061 986 2061 993 2062 986 2062 1165 2062 1020 2063 979 2063 987 2063 987 2064 979 2064 446 2064 987 2065 446 2065 1078 2065 1175 2066 988 2066 993 2066 993 2067 988 2067 1172 2067 993 2068 1172 2068 1171 2068 1171 2069 1169 2069 993 2069 993 2070 1169 2070 1170 2070 993 2071 1170 2071 989 2071 1079 2072 1101 2072 446 2072 446 2073 1101 2073 990 2073 446 2074 990 2074 998 2074 1165 2075 1163 2075 993 2075 993 2076 1163 2076 1166 2076 993 2077 1166 2077 991 2077 991 2078 992 2078 993 2078 993 2079 992 2079 1168 2079 993 2080 1168 2080 1167 2080 994 2081 1175 2081 995 2081 995 2082 1175 2082 993 2082 995 2083 993 2083 996 2083 996 2084 993 2084 1167 2084 1080 2085 1078 2085 997 2085 997 2086 1078 2086 446 2086 997 2087 446 2087 1091 2087 1091 2088 446 2088 998 2088 344 2089 1634 2089 1008 2089 1008 2090 1634 2090 999 2090 1006 2091 1279 2091 1004 2091 1004 2092 1279 2092 1285 2092 1004 2093 1285 2093 999 2093 999 2094 1285 2094 1284 2094 999 2095 1284 2095 1000 2095 1357 2096 1334 2096 1008 2096 1008 2097 1334 2097 1333 2097 1008 2098 1333 2098 453 2098 1000 2099 1282 2099 999 2099 999 2100 1282 2100 1001 2100 999 2101 1001 2101 1008 2101 1008 2102 1001 2102 1281 2102 1008 2103 1281 2103 1324 2103 1002 2104 1003 2104 1004 2104 1004 2105 1003 2105 1005 2105 1004 2106 1005 2106 1006 2106 1355 2107 1357 2107 1007 2107 1007 2108 1357 2108 1008 2108 1007 2109 1008 2109 1335 2109 1335 2110 1008 2110 1324 2110 1159 2111 1199 2111 1004 2111 1199 2112 1009 2112 1004 2112 1004 2113 1009 2113 1010 2113 1004 2114 1010 2114 1002 2114 1011 2115 1160 2115 1017 2115 1156 2116 1155 2116 1004 2116 1004 2117 1155 2117 1154 2117 1154 2118 1012 2118 1004 2118 1004 2119 1012 2119 1013 2119 1004 2120 1013 2120 1157 2120 1157 2121 1014 2121 1004 2121 1004 2122 1014 2122 1015 2122 1004 2123 1015 2123 1248 2123 1248 2124 1016 2124 1004 2124 1004 2125 1016 2125 1158 2125 1004 2126 1158 2126 1245 2126 1017 2127 1159 2127 1011 2127 1011 2128 1159 2128 1004 2128 1011 2129 1004 2129 1244 2129 1244 2130 1004 2130 1245 2130 1023 2131 985 2131 1018 2131 1018 2132 985 2132 1019 2132 1018 2133 1019 2133 1077 2133 1077 2134 1019 2134 1020 2134 1077 2135 1020 2135 987 2135 1061 2136 1021 2136 1027 2136 1027 2137 1022 2137 1061 2137 1061 2138 1022 2138 983 2138 1061 2139 983 2139 1023 2139 1023 2140 983 2140 1024 2140 1023 2141 1024 2141 985 2141 1025 2142 982 2142 1026 2142 1026 2143 982 2143 981 2143 1026 2144 981 2144 1021 2144 1021 2145 981 2145 984 2145 1021 2146 984 2146 1027 2146 1028 2147 1029 2147 1030 2147 1030 2148 1029 2148 1025 2148 1030 2149 1025 2149 1240 2149 1240 2150 1025 2150 1026 2150 1240 2151 1026 2151 1031 2151 270 2152 1032 2152 1044 2152 1044 2153 1032 2153 1033 2153 1033 2154 1034 2154 1043 2154 1043 2155 1034 2155 1035 2155 1035 2156 1220 2156 1053 2156 1053 2157 1220 2157 1214 2157 1214 2158 1221 2158 1054 2158 1054 2159 1221 2159 1234 2159 1234 2160 1036 2160 1058 2160 1058 2161 1036 2161 1031 2161 270 2162 1044 2162 1037 2162 1037 2163 1044 2163 1038 2163 1037 2164 1038 2164 1039 2164 1039 2165 1038 2165 1046 2165 1039 2166 1046 2166 1040 2166 1040 2167 1046 2167 1047 2167 1040 2168 1047 2168 1041 2168 1041 2169 1047 2169 1042 2169 1041 2170 1042 2170 271 2170 1045 2171 1067 2171 1066 2171 1033 2172 1043 2172 1044 2172 1044 2173 1043 2173 1050 2173 1044 2174 1050 2174 1038 2174 1038 2175 1050 2175 1051 2175 1038 2176 1051 2176 1046 2176 1046 2177 1051 2177 1045 2177 1046 2178 1045 2178 1047 2178 1047 2179 1045 2179 1066 2179 1047 2180 1066 2180 1042 2180 1052 2181 1048 2181 1069 2181 1035 2182 1053 2182 1043 2182 1043 2183 1053 2183 1049 2183 1043 2184 1049 2184 1050 2184 1050 2185 1049 2185 1056 2185 1050 2186 1056 2186 1051 2186 1051 2187 1056 2187 1052 2187 1051 2188 1052 2188 1045 2188 1045 2189 1052 2189 1069 2189 1045 2190 1069 2190 1067 2190 1057 2191 1071 2191 1070 2191 1214 2192 1054 2192 1053 2192 1053 2193 1054 2193 1055 2193 1053 2194 1055 2194 1049 2194 1049 2195 1055 2195 1059 2195 1049 2196 1059 2196 1056 2196 1056 2197 1059 2197 1057 2197 1056 2198 1057 2198 1052 2198 1052 2199 1057 2199 1070 2199 1052 2200 1070 2200 1048 2200 1063 2201 1074 2201 1073 2201 1234 2202 1058 2202 1054 2202 1054 2203 1058 2203 1060 2203 1054 2204 1060 2204 1055 2204 1055 2205 1060 2205 1062 2205 1055 2206 1062 2206 1059 2206 1059 2207 1062 2207 1063 2207 1059 2208 1063 2208 1057 2208 1057 2209 1063 2209 1073 2209 1057 2210 1073 2210 1071 2210 1031 2211 1026 2211 1058 2211 1058 2212 1026 2212 1021 2212 1058 2213 1021 2213 1060 2213 1060 2214 1021 2214 1061 2214 1060 2215 1061 2215 1062 2215 1062 2216 1061 2216 1023 2216 1062 2217 1023 2217 1063 2217 1063 2218 1023 2218 1018 2218 1063 2219 1018 2219 1074 2219 1081 2220 271 2220 1064 2220 1064 2221 271 2221 1042 2221 1064 2222 1042 2222 1065 2222 1065 2223 1042 2223 1066 2223 1065 2224 1066 2224 1082 2224 1082 2225 1066 2225 1067 2225 1082 2226 1067 2226 1068 2226 1068 2227 1067 2227 1069 2227 1068 2228 1069 2228 1084 2228 1084 2229 1069 2229 1048 2229 1084 2230 1048 2230 1085 2230 1085 2231 1048 2231 1070 2231 1085 2232 1070 2232 1072 2232 1072 2233 1070 2233 1071 2233 1072 2234 1071 2234 1087 2234 1087 2235 1071 2235 1073 2235 1087 2236 1073 2236 1075 2236 1075 2237 1073 2237 1074 2237 1075 2238 1074 2238 1089 2238 1089 2239 1074 2239 1018 2239 1089 2240 1018 2240 1076 2240 1076 2241 1018 2241 1077 2241 1076 2242 1077 2242 1088 2242 1088 2243 1077 2243 987 2243 1088 2244 987 2244 1078 2244 998 2245 990 2245 1093 2245 1101 2246 1079 2246 467 2246 1080 2247 997 2247 1092 2247 1092 2248 997 2248 1091 2248 1100 2249 269 2249 1081 2249 1081 2250 1064 2250 1100 2250 1100 2251 1064 2251 1065 2251 1100 2252 1065 2252 1099 2252 1065 2253 1082 2253 1099 2253 1099 2254 1082 2254 1068 2254 1099 2255 1068 2255 1083 2255 1068 2256 1084 2256 1083 2256 1083 2257 1084 2257 1085 2257 1083 2258 1085 2258 1086 2258 1086 2259 1085 2259 1072 2259 1086 2260 1072 2260 1095 2260 1072 2261 1087 2261 1095 2261 1095 2262 1087 2262 1075 2262 1095 2263 1075 2263 1090 2263 1078 2264 1080 2264 1088 2264 1088 2265 1080 2265 1092 2265 1088 2266 1092 2266 1076 2266 1076 2267 1092 2267 1090 2267 1076 2268 1090 2268 1089 2268 1089 2269 1090 2269 1075 2269 1091 2270 998 2270 1092 2270 1092 2271 998 2271 1093 2271 1092 2272 1093 2272 1090 2272 1090 2273 1093 2273 1094 2273 1090 2274 1094 2274 1095 2274 1095 2275 1094 2275 1096 2275 1095 2276 1096 2276 1086 2276 1086 2277 1096 2277 1097 2277 1086 2278 1097 2278 1083 2278 1083 2279 1097 2279 1098 2279 1083 2280 1098 2280 1099 2280 1099 2281 1098 2281 1105 2281 1099 2282 1105 2282 1100 2282 1100 2283 1105 2283 1106 2283 1100 2284 1106 2284 269 2284 269 2285 1106 2285 1107 2285 990 2286 1101 2286 1093 2286 1093 2287 1101 2287 467 2287 1093 2288 467 2288 1094 2288 1094 2289 467 2289 1102 2289 1094 2290 1102 2290 1096 2290 1096 2291 1102 2291 1103 2291 1096 2292 1103 2292 1097 2292 1097 2293 1103 2293 465 2293 1097 2294 465 2294 1098 2294 1098 2295 465 2295 463 2295 1098 2296 463 2296 1105 2296 1105 2297 463 2297 1104 2297 1105 2298 1104 2298 1106 2298 1106 2299 1104 2299 458 2299 1106 2300 458 2300 1107 2300 1107 2301 458 2301 455 2301 1394 2302 184 2302 1386 2302 1394 2303 1386 2303 1108 2303 1108 2304 1386 2304 1387 2304 1108 2305 1387 2305 1388 2305 1388 2306 1387 2306 188 2306 1388 2307 188 2307 1389 2307 1370 2308 1109 2308 1120 2308 1370 2309 1120 2309 1382 2309 1382 2310 1120 2310 1110 2310 1382 2311 1110 2311 1383 2311 1383 2312 1110 2312 1125 2312 1383 2313 1125 2313 1384 2313 1384 2314 1125 2314 1111 2314 1384 2315 1111 2315 1112 2315 1112 2316 1111 2316 1127 2316 1112 2317 1127 2317 1385 2317 1385 2318 1127 2318 1113 2318 1385 2319 1113 2319 1114 2319 1114 2320 1113 2320 1131 2320 1114 2321 1131 2321 1376 2321 1376 2322 1131 2322 1132 2322 1376 2323 1132 2323 1115 2323 1115 2324 1132 2324 1116 2324 1115 2325 1116 2325 1379 2325 1379 2326 1116 2326 1138 2326 1379 2327 1138 2327 1117 2327 1117 2328 1138 2328 1142 2328 1117 2329 1142 2329 1118 2329 1118 2330 1142 2330 1140 2330 1118 2331 1140 2331 1367 2331 1371 2332 1119 2332 1109 2332 1109 2333 1119 2333 1120 2333 1119 2334 1182 2334 1120 2334 1120 2335 1182 2335 1121 2335 1120 2336 1121 2336 1110 2336 1121 2337 1122 2337 1110 2337 1110 2338 1122 2338 1123 2338 1110 2339 1123 2339 1125 2339 1123 2340 1124 2340 1125 2340 1125 2341 1124 2341 1148 2341 1125 2342 1148 2342 1111 2342 1148 2343 1126 2343 1111 2343 1111 2344 1126 2344 1267 2344 1111 2345 1267 2345 1127 2345 1267 2346 1180 2346 1127 2346 1127 2347 1180 2347 1128 2347 1127 2348 1128 2348 1113 2348 1128 2349 1129 2349 1113 2349 1113 2350 1129 2350 1130 2350 1113 2351 1130 2351 1131 2351 1130 2352 1178 2352 1131 2352 1131 2353 1178 2353 1177 2353 1131 2354 1177 2354 1132 2354 1177 2355 1133 2355 1132 2355 1132 2356 1133 2356 1134 2356 1132 2357 1134 2357 1116 2357 1134 2358 1135 2358 1116 2358 1116 2359 1135 2359 1136 2359 1116 2360 1136 2360 1138 2360 1136 2361 1137 2361 1138 2361 1138 2362 1137 2362 1139 2362 1138 2363 1139 2363 1142 2363 1368 2364 1140 2364 1141 2364 1141 2365 1140 2365 1142 2365 1141 2366 1142 2366 1143 2366 1143 2367 1142 2367 1139 2367 1277 2368 1290 2368 1272 2368 1144 2369 1304 2369 1256 2369 1289 2370 1249 2370 1145 2370 1250 2371 1288 2371 1251 2371 1287 2372 1241 2372 1146 2372 1183 2373 1147 2373 346 2373 1185 2374 1181 2374 1183 2374 1126 2375 1148 2375 1275 2375 1134 2376 1133 2376 1149 2376 1135 2377 1134 2377 1150 2377 1139 2378 1137 2378 1222 2378 1143 2379 1139 2379 1208 2379 989 2380 1198 2380 1393 2380 1393 2381 1198 2381 1153 2381 1393 2382 1153 2382 1392 2382 1179 2383 1390 2383 1151 2383 1151 2384 1390 2384 1392 2384 1151 2385 1392 2385 1152 2385 1152 2386 1392 2386 1153 2386 1012 2387 1154 2387 1260 2387 1260 2388 1154 2388 1155 2388 1260 2389 1155 2389 1156 2389 1157 2390 1013 2390 1255 2390 1248 2391 1015 2391 1255 2391 1255 2392 1015 2392 1014 2392 1255 2393 1014 2393 1157 2393 1243 2394 1011 2394 1244 2394 1016 2395 1247 2395 1158 2395 1158 2396 1247 2396 1245 2396 1199 2397 1159 2397 1200 2397 1200 2398 1159 2398 1017 2398 1200 2399 1017 2399 1160 2399 1161 2400 1286 2400 1201 2400 1201 2401 1286 2401 1010 2401 1201 2402 1010 2402 1009 2402 986 2403 1162 2403 1195 2403 1163 2404 1165 2404 1164 2404 1164 2405 1165 2405 986 2405 1163 2406 1164 2406 1166 2406 1166 2407 1164 2407 1197 2407 1166 2408 1197 2408 991 2408 994 2409 995 2409 1174 2409 1174 2410 995 2410 996 2410 996 2411 1167 2411 1174 2411 1174 2412 1167 2412 1168 2412 1174 2413 1168 2413 1197 2413 1197 2414 1168 2414 992 2414 1197 2415 992 2415 991 2415 1171 2416 1173 2416 1169 2416 1169 2417 1173 2417 1198 2417 1169 2418 1198 2418 1170 2418 1170 2419 1198 2419 989 2419 1171 2420 1172 2420 1173 2420 1173 2421 1172 2421 988 2421 1173 2422 988 2422 1174 2422 1174 2423 988 2423 1175 2423 1174 2424 1175 2424 994 2424 1369 2425 1368 2425 1176 2425 1176 2426 1368 2426 1141 2426 1176 2427 1141 2427 1143 2427 1137 2428 1136 2428 1223 2428 1223 2429 1136 2429 1135 2429 1153 2430 1177 2430 1178 2430 1153 2431 1178 2431 1152 2431 1152 2432 1178 2432 1130 2432 1152 2433 1130 2433 1151 2433 1151 2434 1130 2434 1129 2434 1151 2435 1129 2435 1179 2435 1129 2436 1128 2436 1179 2436 1179 2437 1128 2437 1180 2437 1179 2438 1180 2438 1268 2438 1119 2439 1181 2439 1182 2439 1182 2440 1181 2440 1185 2440 1182 2441 1185 2441 1121 2441 1121 2442 1185 2442 1122 2442 1147 2443 1183 2443 1372 2443 1372 2444 1183 2444 1181 2444 1372 2445 1181 2445 1373 2445 1373 2446 1181 2446 1119 2446 1373 2447 1119 2447 1371 2447 1123 2448 1122 2448 1186 2448 1186 2449 1122 2449 1185 2449 1186 2450 1185 2450 1184 2450 1184 2451 1185 2451 1183 2451 1184 2452 1183 2452 1188 2452 1188 2453 1183 2453 346 2453 1188 2454 346 2454 1189 2454 1124 2455 1123 2455 1190 2455 1190 2456 1123 2456 1186 2456 1190 2457 1186 2457 1192 2457 1192 2458 1186 2458 1184 2458 1192 2459 1184 2459 1187 2459 1187 2460 1184 2460 1188 2460 1187 2461 1188 2461 1194 2461 1194 2462 1188 2462 1189 2462 1194 2463 1189 2463 349 2463 1148 2464 1124 2464 1275 2464 1275 2465 1124 2465 1190 2465 1275 2466 1190 2466 1191 2466 1191 2467 1190 2467 1192 2467 1191 2468 1192 2468 1273 2468 1273 2469 1192 2469 1187 2469 1273 2470 1187 2470 1193 2470 1193 2471 1187 2471 1194 2471 1193 2472 1194 2472 1271 2472 1271 2473 1194 2473 349 2473 1271 2474 349 2474 1270 2474 986 2475 1195 2475 1164 2475 1164 2476 1195 2476 1196 2476 1164 2477 1196 2477 1197 2477 1197 2478 1196 2478 1238 2478 1197 2479 1238 2479 1174 2479 1174 2480 1238 2480 1236 2480 1174 2481 1236 2481 1173 2481 1173 2482 1236 2482 1235 2482 1173 2483 1235 2483 1198 2483 1198 2484 1235 2484 1149 2484 1198 2485 1149 2485 1153 2485 1153 2486 1149 2486 1133 2486 1153 2487 1133 2487 1177 2487 1009 2488 1199 2488 1201 2488 1201 2489 1199 2489 1200 2489 1201 2490 1200 2490 1243 2490 1243 2491 1200 2491 1160 2491 1243 2492 1160 2492 1011 2492 1207 2493 1033 2493 1032 2493 1369 2494 1176 2494 265 2494 265 2495 1176 2495 1202 2495 265 2496 1202 2496 1203 2496 1203 2497 1202 2497 1209 2497 1203 2498 1209 2498 1204 2498 1204 2499 1209 2499 1212 2499 1204 2500 1212 2500 267 2500 267 2501 1212 2501 1205 2501 267 2502 1205 2502 1206 2502 1206 2503 1205 2503 1207 2503 1206 2504 1207 2504 268 2504 268 2505 1207 2505 1032 2505 268 2506 1032 2506 270 2506 1219 2507 1035 2507 1034 2507 1143 2508 1208 2508 1176 2508 1176 2509 1208 2509 1216 2509 1176 2510 1216 2510 1202 2510 1202 2511 1216 2511 1210 2511 1202 2512 1210 2512 1209 2512 1209 2513 1210 2513 1211 2513 1209 2514 1211 2514 1212 2514 1212 2515 1211 2515 1213 2515 1212 2516 1213 2516 1205 2516 1205 2517 1213 2517 1219 2517 1205 2518 1219 2518 1207 2518 1207 2519 1219 2519 1034 2519 1207 2520 1034 2520 1033 2520 1228 2521 1214 2521 1220 2521 1139 2522 1222 2522 1208 2522 1208 2523 1222 2523 1215 2523 1208 2524 1215 2524 1216 2524 1216 2525 1215 2525 1225 2525 1216 2526 1225 2526 1210 2526 1210 2527 1225 2527 1217 2527 1210 2528 1217 2528 1211 2528 1211 2529 1217 2529 1218 2529 1211 2530 1218 2530 1213 2530 1213 2531 1218 2531 1228 2531 1213 2532 1228 2532 1219 2532 1219 2533 1228 2533 1220 2533 1219 2534 1220 2534 1035 2534 1227 2535 1234 2535 1221 2535 1137 2536 1223 2536 1222 2536 1222 2537 1223 2537 1224 2537 1222 2538 1224 2538 1215 2538 1215 2539 1224 2539 1230 2539 1215 2540 1230 2540 1225 2540 1225 2541 1230 2541 1231 2541 1225 2542 1231 2542 1217 2542 1217 2543 1231 2543 1226 2543 1217 2544 1226 2544 1218 2544 1218 2545 1226 2545 1227 2545 1218 2546 1227 2546 1228 2546 1228 2547 1227 2547 1221 2547 1228 2548 1221 2548 1214 2548 1233 2549 1031 2549 1036 2549 1135 2550 1150 2550 1223 2550 1223 2551 1150 2551 1229 2551 1223 2552 1229 2552 1224 2552 1224 2553 1229 2553 1237 2553 1224 2554 1237 2554 1230 2554 1230 2555 1237 2555 1239 2555 1230 2556 1239 2556 1231 2556 1231 2557 1239 2557 1232 2557 1231 2558 1232 2558 1226 2558 1226 2559 1232 2559 1233 2559 1226 2560 1233 2560 1227 2560 1227 2561 1233 2561 1036 2561 1227 2562 1036 2562 1234 2562 1240 2563 1195 2563 1030 2563 1030 2564 1195 2564 1162 2564 1030 2565 1162 2565 1028 2565 1134 2566 1149 2566 1150 2566 1150 2567 1149 2567 1235 2567 1150 2568 1235 2568 1229 2568 1229 2569 1235 2569 1236 2569 1229 2570 1236 2570 1237 2570 1237 2571 1236 2571 1238 2571 1237 2572 1238 2572 1239 2572 1239 2573 1238 2573 1196 2573 1239 2574 1196 2574 1232 2574 1232 2575 1196 2575 1195 2575 1232 2576 1195 2576 1233 2576 1233 2577 1195 2577 1240 2577 1233 2578 1240 2578 1031 2578 1241 2579 1161 2579 1146 2579 1146 2580 1161 2580 1201 2580 1146 2581 1201 2581 1242 2581 1242 2582 1201 2582 1243 2582 1242 2583 1243 2583 1247 2583 1247 2584 1243 2584 1244 2584 1247 2585 1244 2585 1245 2585 1288 2586 1287 2586 1251 2586 1251 2587 1287 2587 1146 2587 1251 2588 1146 2588 1246 2588 1246 2589 1146 2589 1242 2589 1246 2590 1242 2590 1253 2590 1253 2591 1242 2591 1247 2591 1253 2592 1247 2592 1255 2592 1255 2593 1247 2593 1016 2593 1255 2594 1016 2594 1248 2594 1249 2595 1250 2595 1145 2595 1145 2596 1250 2596 1251 2596 1145 2597 1251 2597 1252 2597 1252 2598 1251 2598 1246 2598 1252 2599 1246 2599 1259 2599 1259 2600 1246 2600 1253 2600 1259 2601 1253 2601 1254 2601 1254 2602 1253 2602 1255 2602 1254 2603 1255 2603 1260 2603 1260 2604 1255 2604 1013 2604 1260 2605 1013 2605 1012 2605 1304 2606 1289 2606 1256 2606 1256 2607 1289 2607 1145 2607 1256 2608 1145 2608 1257 2608 1257 2609 1145 2609 1252 2609 1257 2610 1252 2610 1264 2610 1264 2611 1252 2611 1259 2611 1264 2612 1259 2612 1258 2612 1258 2613 1259 2613 1254 2613 1258 2614 1254 2614 1266 2614 1266 2615 1254 2615 1260 2615 1266 2616 1260 2616 1268 2616 1268 2617 1260 2617 1156 2617 1268 2618 1156 2618 1179 2618 1179 2619 1156 2619 1261 2619 1179 2620 1261 2620 1390 2620 1290 2621 1144 2621 1272 2621 1272 2622 1144 2622 1256 2622 1272 2623 1256 2623 1262 2623 1262 2624 1256 2624 1257 2624 1262 2625 1257 2625 1263 2625 1263 2626 1257 2626 1264 2626 1263 2627 1264 2627 1274 2627 1274 2628 1264 2628 1258 2628 1274 2629 1258 2629 1265 2629 1265 2630 1258 2630 1266 2630 1265 2631 1266 2631 1276 2631 1276 2632 1266 2632 1268 2632 1276 2633 1268 2633 1267 2633 1267 2634 1268 2634 1180 2634 1269 2635 1277 2635 1270 2635 1270 2636 1277 2636 1272 2636 1270 2637 1272 2637 1271 2637 1271 2638 1272 2638 1262 2638 1271 2639 1262 2639 1193 2639 1193 2640 1262 2640 1263 2640 1193 2641 1263 2641 1273 2641 1273 2642 1263 2642 1274 2642 1273 2643 1274 2643 1191 2643 1191 2644 1274 2644 1265 2644 1191 2645 1265 2645 1275 2645 1275 2646 1265 2646 1276 2646 1275 2647 1276 2647 1126 2647 1126 2648 1276 2648 1267 2648 1277 2649 1269 2649 351 2649 1290 2650 1277 2650 1309 2650 1002 2651 1010 2651 1286 2651 1002 2652 1286 2652 1003 2652 1278 2653 1292 2653 1279 2653 1279 2654 1006 2654 1278 2654 1278 2655 1006 2655 1005 2655 1278 2656 1005 2656 1003 2656 1280 2657 1326 2657 1283 2657 1281 2658 1001 2658 1283 2658 1283 2659 1001 2659 1282 2659 1283 2660 1282 2660 1280 2660 1280 2661 1282 2661 1000 2661 1280 2662 1000 2662 1293 2662 1293 2663 1000 2663 1284 2663 1293 2664 1284 2664 1292 2664 1292 2665 1284 2665 1285 2665 1292 2666 1285 2666 1279 2666 1003 2667 1286 2667 1278 2667 1278 2668 1286 2668 1161 2668 1278 2669 1161 2669 1241 2669 1241 2670 1287 2670 1291 2670 1291 2671 1287 2671 1288 2671 1288 2672 1250 2672 1299 2672 1299 2673 1250 2673 1249 2673 1249 2674 1289 2674 1305 2674 1305 2675 1289 2675 1304 2675 1304 2676 1144 2676 1308 2676 1308 2677 1144 2677 1290 2677 1241 2678 1291 2678 1278 2678 1278 2679 1291 2679 1296 2679 1278 2680 1296 2680 1292 2680 1292 2681 1296 2681 1294 2681 1292 2682 1294 2682 1293 2682 1293 2683 1294 2683 1295 2683 1293 2684 1295 2684 1280 2684 1280 2685 1295 2685 1327 2685 1280 2686 1327 2686 1326 2686 1298 2687 1331 2687 1329 2687 1288 2688 1299 2688 1291 2688 1291 2689 1299 2689 1301 2689 1291 2690 1301 2690 1296 2690 1296 2691 1301 2691 1297 2691 1296 2692 1297 2692 1294 2692 1294 2693 1297 2693 1298 2693 1294 2694 1298 2694 1295 2694 1295 2695 1298 2695 1329 2695 1295 2696 1329 2696 1327 2696 1306 2697 1323 2697 1303 2697 1249 2698 1305 2698 1299 2698 1299 2699 1305 2699 1300 2699 1299 2700 1300 2700 1301 2700 1301 2701 1300 2701 1302 2701 1301 2702 1302 2702 1297 2702 1297 2703 1302 2703 1306 2703 1297 2704 1306 2704 1298 2704 1298 2705 1306 2705 1303 2705 1298 2706 1303 2706 1331 2706 1313 2707 1315 2707 1307 2707 1304 2708 1308 2708 1305 2708 1305 2709 1308 2709 1311 2709 1305 2710 1311 2710 1300 2710 1300 2711 1311 2711 1312 2711 1300 2712 1312 2712 1302 2712 1302 2713 1312 2713 1313 2713 1302 2714 1313 2714 1306 2714 1306 2715 1313 2715 1307 2715 1306 2716 1307 2716 1323 2716 1314 2717 1319 2717 1320 2717 1290 2718 1309 2718 1308 2718 1308 2719 1309 2719 1310 2719 1308 2720 1310 2720 1311 2720 1311 2721 1310 2721 1316 2721 1311 2722 1316 2722 1312 2722 1312 2723 1316 2723 1314 2723 1312 2724 1314 2724 1313 2724 1313 2725 1314 2725 1320 2725 1313 2726 1320 2726 1315 2726 1277 2727 351 2727 1309 2727 1309 2728 351 2728 352 2728 1309 2729 352 2729 1310 2729 1310 2730 352 2730 1317 2730 1310 2731 1317 2731 1316 2731 1316 2732 1317 2732 350 2732 1316 2733 350 2733 1314 2733 1314 2734 350 2734 1318 2734 1314 2735 1318 2735 1319 2735 1318 2736 1341 2736 1319 2736 1319 2737 1341 2737 1344 2737 1319 2738 1344 2738 1320 2738 1320 2739 1344 2739 1345 2739 1320 2740 1345 2740 1315 2740 1315 2741 1345 2741 1321 2741 1315 2742 1321 2742 1307 2742 1307 2743 1321 2743 1322 2743 1307 2744 1322 2744 1323 2744 1323 2745 1322 2745 1340 2745 1323 2746 1340 2746 1303 2746 1303 2747 1340 2747 1339 2747 1303 2748 1339 2748 1331 2748 1324 2749 1281 2749 1336 2749 1336 2750 1281 2750 1283 2750 1336 2751 1283 2751 1325 2751 1325 2752 1283 2752 1326 2752 1325 2753 1326 2753 1338 2753 1338 2754 1326 2754 1327 2754 1338 2755 1327 2755 1328 2755 1328 2756 1327 2756 1329 2756 1328 2757 1329 2757 1330 2757 1330 2758 1329 2758 1331 2758 1330 2759 1331 2759 1332 2759 1332 2760 1331 2760 1339 2760 1335 2761 1324 2761 1336 2761 1355 2762 1007 2762 1337 2762 1337 2763 1007 2763 1335 2763 1333 2764 1334 2764 1356 2764 1356 2765 1334 2765 1357 2765 1335 2766 1336 2766 1337 2766 1337 2767 1336 2767 1325 2767 1337 2768 1325 2768 1353 2768 1325 2769 1338 2769 1353 2769 1353 2770 1338 2770 1328 2770 1353 2771 1328 2771 1352 2771 1352 2772 1328 2772 1330 2772 1352 2773 1330 2773 1351 2773 1330 2774 1332 2774 1351 2774 1351 2775 1332 2775 1339 2775 1351 2776 1339 2776 1348 2776 1339 2777 1340 2777 1348 2777 1348 2778 1340 2778 1322 2778 1348 2779 1322 2779 1347 2779 1341 2780 1342 2780 1344 2780 1344 2781 1342 2781 1343 2781 1344 2782 1343 2782 1345 2782 1345 2783 1343 2783 1347 2783 1345 2784 1347 2784 1321 2784 1321 2785 1347 2785 1322 2785 1342 2786 348 2786 1343 2786 1343 2787 348 2787 1346 2787 1343 2788 1346 2788 1347 2788 1347 2789 1346 2789 1349 2789 1347 2790 1349 2790 1348 2790 1348 2791 1349 2791 1361 2791 1348 2792 1361 2792 1351 2792 1351 2793 1361 2793 1350 2793 1351 2794 1350 2794 1352 2794 1352 2795 1350 2795 1363 2795 1352 2796 1363 2796 1353 2796 1353 2797 1363 2797 1354 2797 1353 2798 1354 2798 1337 2798 1337 2799 1354 2799 1356 2799 1337 2800 1356 2800 1355 2800 1355 2801 1356 2801 1357 2801 348 2802 1358 2802 1346 2802 1346 2803 1358 2803 1359 2803 1346 2804 1359 2804 1349 2804 1349 2805 1359 2805 1360 2805 1349 2806 1360 2806 1361 2806 1361 2807 1360 2807 1362 2807 1361 2808 1362 2808 1350 2808 1350 2809 1362 2809 461 2809 1350 2810 461 2810 1363 2810 1363 2811 461 2811 1364 2811 1363 2812 1364 2812 1354 2812 1354 2813 1364 2813 1365 2813 1354 2814 1365 2814 1356 2814 1356 2815 1365 2815 1366 2815 1356 2816 1366 2816 1333 2816 1333 2817 1366 2817 453 2817 264 2818 1375 2818 1367 2818 1367 2819 1140 2819 1368 2819 1368 2820 1369 2820 1367 2820 1367 2821 1369 2821 265 2821 1367 2822 265 2822 264 2822 1371 2823 1109 2823 1370 2823 162 2824 353 2824 1370 2824 1370 2825 353 2825 1372 2825 1370 2826 1372 2826 1371 2826 1371 2827 1372 2827 1373 2827 162 2828 1370 2828 155 2828 155 2829 1370 2829 1382 2829 1118 2830 1367 2830 1374 2830 1374 2831 1367 2831 1375 2831 1386 2832 184 2832 182 2832 193 2833 1376 2833 192 2833 192 2834 1376 2834 1115 2834 192 2835 1115 2835 1377 2835 1377 2836 1115 2836 1379 2836 1377 2837 1379 2837 1378 2837 1378 2838 1379 2838 1117 2838 1378 2839 1117 2839 195 2839 195 2840 1117 2840 1118 2840 195 2841 1118 2841 115 2841 115 2842 1118 2842 1374 2842 1380 2843 155 2843 1381 2843 1381 2844 155 2844 1382 2844 1381 2845 1382 2845 179 2845 179 2846 1382 2846 1383 2846 179 2847 1383 2847 178 2847 178 2848 1383 2848 1384 2848 178 2849 1384 2849 177 2849 177 2850 1384 2850 1112 2850 177 2851 1112 2851 182 2851 182 2852 1112 2852 1385 2852 182 2853 1385 2853 1386 2853 1386 2854 1385 2854 1114 2854 1386 2855 1114 2855 1387 2855 1387 2856 1114 2856 1376 2856 1387 2857 1376 2857 188 2857 188 2858 1376 2858 193 2858 1388 2859 1389 2859 1391 2859 1108 2860 1388 2860 1390 2860 1390 2861 1388 2861 1391 2861 1390 2862 1391 2862 1392 2862 1392 2863 1391 2863 993 2863 1392 2864 993 2864 1393 2864 1156 2865 1004 2865 1261 2865 1261 2866 1004 2866 17 2866 1261 2867 17 2867 1390 2867 1390 2868 17 2868 1394 2868 1390 2869 1394 2869 1108 2869 1638 2870 1637 2870 1636 2870 1409 2871 1415 2871 1395 2871 1395 2872 1415 2872 189 2872 1641 2873 1640 2873 62 2873 62 2874 1640 2874 65 2874 1398 2875 1396 2875 1397 2875 1397 2876 1396 2876 1414 2876 1395 2877 1398 2877 1409 2877 1409 2878 1398 2878 1397 2878 1409 2879 1397 2879 1640 2879 1640 2880 1397 2880 1638 2880 1640 2881 1638 2881 65 2881 65 2882 1638 2882 1636 2882 969 2883 1396 2883 1399 2883 1399 2884 1396 2884 1398 2884 1502 2885 1401 2885 1404 2885 1400 2886 1457 2886 1401 2886 1401 2887 1457 2887 1402 2887 1401 2888 1402 2888 1404 2888 1403 2889 1507 2889 1455 2889 1455 2890 1507 2890 1405 2890 1455 2891 1405 2891 1404 2891 1404 2892 1405 2892 1501 2892 1404 2893 1501 2893 1502 2893 1487 2894 1508 2894 1454 2894 1454 2895 1508 2895 1406 2895 1454 2896 1406 2896 1407 2896 1407 2897 1406 2897 1504 2897 1407 2898 1504 2898 1455 2898 1455 2899 1504 2899 1506 2899 1455 2900 1506 2900 1403 2900 1411 2901 1408 2901 1526 2901 1526 2902 1408 2902 1409 2902 1526 2903 1409 2903 1410 2903 1410 2904 1409 2904 1640 2904 1410 2905 1640 2905 1537 2905 1537 2906 1640 2906 1642 2906 1534 2907 1639 2907 1533 2907 1533 2908 1639 2908 1638 2908 1533 2909 1638 2909 1538 2909 1538 2910 1638 2910 1397 2910 1538 2911 1397 2911 1528 2911 1528 2912 1397 2912 1412 2912 1534 2913 1537 2913 1639 2913 1639 2914 1537 2914 1642 2914 1528 2915 1412 2915 1411 2915 1411 2916 1412 2916 1408 2916 1397 2917 1414 2917 1412 2917 1412 2918 1414 2918 1413 2918 1412 2919 1413 2919 1408 2919 1408 2920 1413 2920 1416 2920 1408 2921 1416 2921 1409 2921 1409 2922 1416 2922 1415 2922 979 2923 1413 2923 970 2923 970 2924 1413 2924 1414 2924 970 2925 1414 2925 969 2925 969 2926 1414 2926 1396 2926 189 2927 1415 2927 190 2927 190 2928 1415 2928 1416 2928 978 2929 65 2929 1635 2929 1635 2930 65 2930 1636 2930 1410 2931 1532 2931 1526 2931 1526 2932 1532 2932 1417 2932 1439 2933 1481 2933 1542 2933 1542 2934 1481 2934 1418 2934 1542 2935 1418 2935 1419 2935 1419 2936 1418 2936 1519 2936 1419 2937 1519 2937 1421 2937 1421 2938 1519 2938 1420 2938 1421 2939 1420 2939 1585 2939 1585 2940 1420 2940 1422 2940 1585 2941 1422 2941 1584 2941 1584 2942 1422 2942 1423 2942 1584 2943 1423 2943 1424 2943 1424 2944 1423 2944 1425 2944 1424 2945 1425 2945 1580 2945 1580 2946 1425 2946 1514 2946 1580 2947 1514 2947 1426 2947 1426 2948 1514 2948 1513 2948 1426 2949 1513 2949 1427 2949 1427 2950 1513 2950 1428 2950 1427 2951 1428 2951 1575 2951 1575 2952 1428 2952 1511 2952 1575 2953 1511 2953 1570 2953 1570 2954 1511 2954 1429 2954 1570 2955 1429 2955 1569 2955 1569 2956 1429 2956 1430 2956 1569 2957 1430 2957 1431 2957 1431 2958 1430 2958 1432 2958 1431 2959 1432 2959 1567 2959 1567 2960 1432 2960 1510 2960 1567 2961 1510 2961 1433 2961 1433 2962 1510 2962 1479 2962 1444 2963 1434 2963 1435 2963 1435 2964 1434 2964 1437 2964 1435 2965 1437 2965 1436 2965 1437 2966 1438 2966 1436 2966 1436 2967 1438 2967 1433 2967 1436 2968 1433 2968 1479 2968 1481 2969 1439 2969 1440 2969 1440 2970 1439 2970 1442 2970 1440 2971 1442 2971 1441 2971 1442 2972 1589 2972 1441 2972 1441 2973 1589 2973 1443 2973 1441 2974 1443 2974 1480 2974 1444 2975 1445 2975 1434 2975 1434 2976 1445 2976 1449 2976 1446 2977 1480 2977 1450 2977 1450 2978 1480 2978 1443 2978 1453 2979 1539 2979 1478 2979 1478 2980 1539 2980 1447 2980 1478 2981 1447 2981 1477 2981 1447 2982 1448 2982 1477 2982 1477 2983 1448 2983 1449 2983 1477 2984 1449 2984 1445 2984 1446 2985 1450 2985 1483 2985 1483 2986 1450 2986 1451 2986 1483 2987 1451 2987 1485 2987 1451 2988 1588 2988 1485 2988 1485 2989 1588 2989 1452 2989 1485 2990 1452 2990 1486 2990 1461 2991 1486 2991 1452 2991 1549 2992 1552 2992 1465 2992 1465 2993 1552 2993 1460 2993 1465 2994 1460 2994 1459 2994 1539 2995 1453 2995 1540 2995 1540 2996 1453 2996 1454 2996 1540 2997 1454 2997 1564 2997 1564 2998 1454 2998 1407 2998 1564 2999 1407 2999 1563 2999 1563 3000 1407 3000 1455 3000 1563 3001 1455 3001 1560 3001 1560 3002 1455 3002 1404 3002 1560 3003 1404 3003 1558 3003 1558 3004 1404 3004 1402 3004 1558 3005 1402 3005 1456 3005 1456 3006 1402 3006 1457 3006 1456 3007 1457 3007 1555 3007 1555 3008 1457 3008 1459 3008 1555 3009 1459 3009 1458 3009 1458 3010 1459 3010 1460 3010 1452 3011 1543 3011 1461 3011 1461 3012 1543 3012 1546 3012 1461 3013 1546 3013 1462 3013 1462 3014 1546 3014 1463 3014 1462 3015 1463 3015 1470 3015 1470 3016 1463 3016 1549 3016 1470 3017 1549 3017 1464 3017 1464 3018 1549 3018 1465 3018 1459 3019 1495 3019 1465 3019 1465 3020 1495 3020 1499 3020 1468 3021 1470 3021 1466 3021 1466 3022 1470 3022 1464 3022 1499 3023 1498 3023 1465 3023 1465 3024 1498 3024 1497 3024 1465 3025 1497 3025 1464 3025 1464 3026 1497 3026 1500 3026 1464 3027 1500 3027 1466 3027 1484 3028 1461 3028 1467 3028 1467 3029 1461 3029 1462 3029 1468 3030 1469 3030 1470 3030 1470 3031 1469 3031 1505 3031 1470 3032 1505 3032 1462 3032 1462 3033 1505 3033 1503 3033 1462 3034 1503 3034 1467 3034 1473 3035 1475 3035 1471 3035 1471 3036 1475 3036 1472 3036 1471 3037 1472 3037 1523 3037 1523 3038 1472 3038 1476 3038 1523 3039 1476 3039 1522 3039 1522 3040 1476 3040 1474 3040 1522 3041 1474 3041 1473 3041 1473 3042 1474 3042 1475 3042 1444 3043 1476 3043 1445 3043 1445 3044 1476 3044 1472 3044 1445 3045 1472 3045 1477 3045 1477 3046 1472 3046 1478 3046 1478 3047 1472 3047 1453 3047 1453 3048 1472 3048 1487 3048 1453 3049 1487 3049 1454 3049 1444 3050 1435 3050 1476 3050 1476 3051 1435 3051 1436 3051 1476 3052 1436 3052 1494 3052 1494 3053 1436 3053 1479 3053 1494 3054 1479 3054 1510 3054 1474 3055 1440 3055 1441 3055 1441 3056 1480 3056 1474 3056 1474 3057 1480 3057 1446 3057 1474 3058 1446 3058 1475 3058 1440 3059 1474 3059 1481 3059 1481 3060 1474 3060 1482 3060 1481 3061 1482 3061 1418 3061 1446 3062 1483 3062 1475 3062 1475 3063 1483 3063 1485 3063 1475 3064 1485 3064 1484 3064 1484 3065 1485 3065 1486 3065 1484 3066 1486 3066 1461 3066 1472 3067 1475 3067 1487 3067 1487 3068 1475 3068 1484 3068 1487 3069 1484 3069 1508 3069 1508 3070 1484 3070 1467 3070 1482 3071 1474 3071 1476 3071 1516 3072 1517 3072 1493 3072 1493 3073 1517 3073 1476 3073 1488 3074 1482 3074 1518 3074 1518 3075 1482 3075 1476 3075 1518 3076 1476 3076 1489 3076 1489 3077 1476 3077 1517 3077 1515 3078 1493 3078 1490 3078 1490 3079 1493 3079 1491 3079 1490 3080 1491 3080 1512 3080 1492 3081 1491 3081 1509 3081 1509 3082 1491 3082 1493 3082 1509 3083 1493 3083 1494 3083 1494 3084 1493 3084 1476 3084 1501 3085 1468 3085 1466 3085 1499 3086 1495 3086 1496 3086 1644 3087 1497 3087 1496 3087 1496 3088 1497 3088 1498 3088 1496 3089 1498 3089 1499 3089 1466 3090 1500 3090 1501 3090 1501 3091 1500 3091 1497 3091 1501 3092 1497 3092 1502 3092 1502 3093 1497 3093 1644 3093 1502 3094 1644 3094 1401 3094 1401 3095 1644 3095 1400 3095 1503 3096 1505 3096 1504 3096 1504 3097 1505 3097 1506 3097 1506 3098 1505 3098 1469 3098 1506 3099 1469 3099 1403 3099 1403 3100 1469 3100 1468 3100 1403 3101 1468 3101 1507 3101 1507 3102 1468 3102 1501 3102 1507 3103 1501 3103 1405 3103 1503 3104 1504 3104 1467 3104 1467 3105 1504 3105 1406 3105 1467 3106 1406 3106 1508 3106 1491 3107 1492 3107 1430 3107 1430 3108 1492 3108 1509 3108 1430 3109 1509 3109 1432 3109 1432 3110 1509 3110 1494 3110 1432 3111 1494 3111 1510 3111 1430 3112 1429 3112 1491 3112 1491 3113 1429 3113 1511 3113 1491 3114 1511 3114 1512 3114 1512 3115 1511 3115 1428 3115 1512 3116 1428 3116 1490 3116 1490 3117 1428 3117 1513 3117 1490 3118 1513 3118 1515 3118 1515 3119 1513 3119 1514 3119 1515 3120 1514 3120 1493 3120 1493 3121 1514 3121 1425 3121 1493 3122 1425 3122 1516 3122 1516 3123 1425 3123 1423 3123 1516 3124 1423 3124 1517 3124 1517 3125 1423 3125 1422 3125 1517 3126 1422 3126 1489 3126 1489 3127 1422 3127 1518 3127 1422 3128 1420 3128 1518 3128 1518 3129 1420 3129 1519 3129 1518 3130 1519 3130 1488 3130 1488 3131 1519 3131 1418 3131 1488 3132 1418 3132 1482 3132 1471 3133 1520 3133 1473 3133 1473 3134 1520 3134 1521 3134 1523 3135 1525 3135 1471 3135 1471 3136 1525 3136 1520 3136 1522 3137 1524 3137 1523 3137 1523 3138 1524 3138 1525 3138 1473 3139 1521 3139 1522 3139 1522 3140 1521 3140 1524 3140 1524 3141 1536 3141 1525 3141 1525 3142 1536 3142 1527 3142 1525 3143 1527 3143 1520 3143 1520 3144 1527 3144 1530 3144 1520 3145 1530 3145 1521 3145 1521 3146 1530 3146 1531 3146 1521 3147 1531 3147 1524 3147 1524 3148 1531 3148 1536 3148 1526 3149 1417 3149 1411 3149 1411 3150 1417 3150 1530 3150 1411 3151 1530 3151 1528 3151 1528 3152 1530 3152 1527 3152 1528 3153 1527 3153 1538 3153 1538 3154 1527 3154 1529 3154 1530 3155 1417 3155 1531 3155 1531 3156 1417 3156 1532 3156 1533 3157 1535 3157 1534 3157 1534 3158 1535 3158 1536 3158 1534 3159 1536 3159 1537 3159 1537 3160 1536 3160 1531 3160 1537 3161 1531 3161 1410 3161 1410 3162 1531 3162 1532 3162 1536 3163 1535 3163 1527 3163 1527 3164 1535 3164 1529 3164 1538 3165 1529 3165 1533 3165 1533 3166 1529 3166 1535 3166 1438 3167 1540 3167 1433 3167 1433 3168 1540 3168 1567 3168 1448 3169 1447 3169 1539 3169 1434 3170 1449 3170 1437 3170 1437 3171 1449 3171 1448 3171 1437 3172 1448 3172 1438 3172 1438 3173 1448 3173 1539 3173 1438 3174 1539 3174 1540 3174 1419 3175 1607 3175 1541 3175 1419 3176 1541 3176 1542 3176 1542 3177 1541 3177 1544 3177 1542 3178 1544 3178 1543 3178 1543 3179 1544 3179 1545 3179 1543 3180 1545 3180 1546 3180 1546 3181 1545 3181 1547 3181 1546 3182 1547 3182 1463 3182 1547 3183 1609 3183 1463 3183 1463 3184 1609 3184 1610 3184 1463 3185 1610 3185 1549 3185 1549 3186 1610 3186 1615 3186 1548 3187 1552 3187 1613 3187 1613 3188 1552 3188 1549 3188 1613 3189 1549 3189 1614 3189 1614 3190 1549 3190 1615 3190 1611 3191 1458 3191 1550 3191 1550 3192 1458 3192 1460 3192 1550 3193 1460 3193 1551 3193 1551 3194 1460 3194 1552 3194 1551 3195 1552 3195 1612 3195 1612 3196 1552 3196 1548 3196 1611 3197 1616 3197 1458 3197 1458 3198 1616 3198 1553 3198 1458 3199 1553 3199 1555 3199 1555 3200 1553 3200 1554 3200 1554 3201 1617 3201 1555 3201 1555 3202 1617 3202 1556 3202 1555 3203 1556 3203 1456 3203 1556 3204 1557 3204 1456 3204 1456 3205 1557 3205 1619 3205 1456 3206 1619 3206 1558 3206 1558 3207 1619 3207 1620 3207 1620 3208 1559 3208 1558 3208 1558 3209 1559 3209 1622 3209 1558 3210 1622 3210 1560 3210 1622 3211 1624 3211 1560 3211 1560 3212 1624 3212 1623 3212 1560 3213 1623 3213 1563 3213 1627 3214 1564 3214 1561 3214 1561 3215 1564 3215 1563 3215 1561 3216 1563 3216 1562 3216 1562 3217 1563 3217 1623 3217 1627 3218 1565 3218 1564 3218 1564 3219 1565 3219 1626 3219 1564 3220 1626 3220 1540 3220 1540 3221 1626 3221 1566 3221 1540 3222 1566 3222 1567 3222 1567 3223 1566 3223 1591 3223 1567 3224 1591 3224 1431 3224 1431 3225 1591 3225 1568 3225 1431 3226 1568 3226 1569 3226 1568 3227 1593 3227 1569 3227 1569 3228 1593 3228 1590 3228 1569 3229 1590 3229 1570 3229 1570 3230 1590 3230 1596 3230 1571 3231 1575 3231 1572 3231 1572 3232 1575 3232 1570 3232 1572 3233 1570 3233 1573 3233 1573 3234 1570 3234 1596 3234 1571 3235 1574 3235 1575 3235 1575 3236 1574 3236 1576 3236 1575 3237 1576 3237 1427 3237 1427 3238 1576 3238 1594 3238 1427 3239 1594 3239 1426 3239 1426 3240 1594 3240 1577 3240 1426 3241 1577 3241 1578 3241 1578 3242 1579 3242 1426 3242 1426 3243 1579 3243 1601 3243 1426 3244 1601 3244 1580 3244 1601 3245 1581 3245 1580 3245 1580 3246 1581 3246 1582 3246 1580 3247 1582 3247 1424 3247 1582 3248 1600 3248 1424 3248 1424 3249 1600 3249 1599 3249 1424 3250 1599 3250 1584 3250 1584 3251 1599 3251 1598 3251 1598 3252 1583 3252 1584 3252 1584 3253 1583 3253 1605 3253 1584 3254 1605 3254 1585 3254 1605 3255 1604 3255 1585 3255 1585 3256 1604 3256 1603 3256 1585 3257 1603 3257 1421 3257 1603 3258 1586 3258 1421 3258 1421 3259 1586 3259 1606 3259 1421 3260 1606 3260 1419 3260 1419 3261 1606 3261 1587 3261 1419 3262 1587 3262 1607 3262 1588 3263 1542 3263 1452 3263 1452 3264 1542 3264 1543 3264 1589 3265 1442 3265 1439 3265 1450 3266 1443 3266 1451 3266 1451 3267 1443 3267 1589 3267 1451 3268 1589 3268 1588 3268 1588 3269 1589 3269 1439 3269 1588 3270 1439 3270 1542 3270 1596 3271 1590 3271 1633 3271 1591 3272 1592 3272 1568 3272 1568 3273 1592 3273 1633 3273 1568 3274 1633 3274 1593 3274 1593 3275 1633 3275 1590 3275 1577 3276 1594 3276 1595 3276 1595 3277 1594 3277 1576 3277 1595 3278 1576 3278 1574 3278 1574 3279 1571 3279 1595 3279 1595 3280 1571 3280 1572 3280 1595 3281 1572 3281 1633 3281 1633 3282 1572 3282 1573 3282 1633 3283 1573 3283 1596 3283 1605 3284 1583 3284 1597 3284 1597 3285 1583 3285 1598 3285 1598 3286 1599 3286 1597 3286 1597 3287 1599 3287 1600 3287 1597 3288 1600 3288 1632 3288 1632 3289 1600 3289 1582 3289 1578 3290 1577 3290 1579 3290 1579 3291 1577 3291 1595 3291 1579 3292 1595 3292 1601 3292 1601 3293 1595 3293 1632 3293 1601 3294 1632 3294 1581 3294 1581 3295 1632 3295 1582 3295 1606 3296 1586 3296 1602 3296 1602 3297 1586 3297 1603 3297 1602 3298 1603 3298 1597 3298 1597 3299 1603 3299 1604 3299 1597 3300 1604 3300 1605 3300 1606 3301 1602 3301 1587 3301 1587 3302 1602 3302 1630 3302 1587 3303 1630 3303 1607 3303 1607 3304 1630 3304 1544 3304 1607 3305 1544 3305 1541 3305 1627 3306 1561 3306 1625 3306 1615 3307 1610 3307 1608 3307 1545 3308 1629 3308 1547 3308 1547 3309 1629 3309 1608 3309 1547 3310 1608 3310 1609 3310 1609 3311 1608 3311 1610 3311 1611 3312 1550 3312 1631 3312 1631 3313 1550 3313 1551 3313 1631 3314 1551 3314 1612 3314 1612 3315 1548 3315 1631 3315 1631 3316 1548 3316 1613 3316 1631 3317 1613 3317 1608 3317 1608 3318 1613 3318 1614 3318 1608 3319 1614 3319 1615 3319 1616 3320 1611 3320 1553 3320 1553 3321 1611 3321 1631 3321 1553 3322 1631 3322 1554 3322 1554 3323 1631 3323 1618 3323 1554 3324 1618 3324 1617 3324 1617 3325 1618 3325 1556 3325 1557 3326 1556 3326 1619 3326 1619 3327 1556 3327 1618 3327 1619 3328 1618 3328 1620 3328 1620 3329 1618 3329 1621 3329 1620 3330 1621 3330 1559 3330 1559 3331 1621 3331 1622 3331 1561 3332 1562 3332 1625 3332 1625 3333 1562 3333 1623 3333 1625 3334 1623 3334 1621 3334 1621 3335 1623 3335 1624 3335 1621 3336 1624 3336 1622 3336 1628 3337 1566 3337 1626 3337 1628 3338 1626 3338 1625 3338 1625 3339 1626 3339 1565 3339 1625 3340 1565 3340 1627 3340 1592 3341 1591 3341 1628 3341 1628 3342 1591 3342 1566 3342 1629 3343 1630 3343 1608 3343 1608 3344 1630 3344 1602 3344 1608 3345 1602 3345 1631 3345 1631 3346 1602 3346 1597 3346 1631 3347 1597 3347 1618 3347 1618 3348 1597 3348 1632 3348 1618 3349 1632 3349 1621 3349 1621 3350 1632 3350 1595 3350 1621 3351 1595 3351 1625 3351 1625 3352 1595 3352 1633 3352 1625 3353 1633 3353 1628 3353 1628 3354 1633 3354 1592 3354 1630 3355 1629 3355 1544 3355 1544 3356 1629 3356 1545 3356 18 3357 19 3357 62 3357 62 3358 19 3358 1641 3358 1643 3359 999 3359 1634 3359 1635 3360 1636 3360 1634 3360 1634 3361 1636 3361 1637 3361 1634 3362 1637 3362 1643 3362 1637 3363 1638 3363 1639 3363 1640 3364 1641 3364 1642 3364 1642 3365 1641 3365 19 3365 1642 3366 19 3366 1639 3366 1639 3367 19 3367 1643 3367 1639 3368 1643 3368 1637 3368 1459 3369 1457 3369 1400 3369 1400 3370 1644 3370 1459 3370 1459 3371 1644 3371 1496 3371 1459 3372 1496 3372 1495 3372 1653 3373 1894 3373 545 3373 545 3374 1894 3374 557 3374 570 3375 1645 3375 1646 3375 1646 3376 1645 3376 1671 3376 1646 3377 1671 3377 1647 3377 1647 3378 1671 3378 1648 3378 206 3379 1676 3379 25 3379 25 3380 1676 3380 1649 3380 557 3381 1894 3381 1650 3381 1650 3382 1894 3382 1892 3382 1650 3383 1892 3383 1651 3383 1651 3384 1892 3384 1652 3384 1653 3385 545 3385 1655 3385 596 3386 1654 3386 1655 3386 1655 3387 1654 3387 1675 3387 1655 3388 1675 3388 1653 3388 1656 3389 1657 3389 1660 3389 1895 3390 1658 3390 1657 3390 1657 3391 1658 3391 1723 3391 1657 3392 1723 3392 1660 3392 1766 3393 1768 3393 1659 3393 1659 3394 1768 3394 1661 3394 1659 3395 1661 3395 1660 3395 1660 3396 1661 3396 1764 3396 1660 3397 1764 3397 1656 3397 1746 3398 1755 3398 1721 3398 1721 3399 1755 3399 1769 3399 1721 3400 1769 3400 1722 3400 1722 3401 1769 3401 1662 3401 1722 3402 1662 3402 1659 3402 1659 3403 1662 3403 1663 3403 1659 3404 1663 3404 1766 3404 1670 3405 1673 3405 1664 3405 1664 3406 1673 3406 1679 3406 1664 3407 1679 3407 1665 3407 1665 3408 1679 3408 1666 3408 1665 3409 1666 3409 1669 3409 1669 3410 1666 3410 1893 3410 1794 3411 1891 3411 1667 3411 1667 3412 1891 3412 1677 3412 1667 3413 1677 3413 1668 3413 1668 3414 1677 3414 1678 3414 1668 3415 1678 3415 1791 3415 1791 3416 1678 3416 1672 3416 1794 3417 1669 3417 1891 3417 1891 3418 1669 3418 1893 3418 1791 3419 1672 3419 1670 3419 1670 3420 1672 3420 1673 3420 1678 3421 1671 3421 1672 3421 1672 3422 1671 3422 1645 3422 1672 3423 1645 3423 1673 3423 1673 3424 1645 3424 1649 3424 1673 3425 1649 3425 1679 3425 1679 3426 1649 3426 1676 3426 1647 3427 1648 3427 1674 3427 1674 3428 1648 3428 35 3428 1677 3429 1675 3429 1654 3429 35 3430 1679 3430 206 3430 206 3431 1679 3431 1676 3431 1652 3432 1892 3432 1666 3432 1648 3433 1671 3433 1678 3433 1654 3434 1652 3434 1677 3434 1677 3435 1652 3435 1666 3435 1677 3436 1666 3436 1678 3436 1678 3437 1666 3437 1679 3437 1678 3438 1679 3438 1648 3438 1648 3439 1679 3439 35 3439 1651 3440 1652 3440 596 3440 596 3441 1652 3441 1654 3441 1665 3442 1680 3442 1664 3442 1664 3443 1680 3443 1681 3443 1844 3444 1701 3444 1682 3444 1682 3445 1701 3445 1751 3445 1682 3446 1751 3446 1840 3446 1840 3447 1751 3447 1683 3447 1840 3448 1683 3448 1838 3448 1838 3449 1683 3449 1685 3449 1838 3450 1685 3450 1684 3450 1684 3451 1685 3451 1686 3451 1684 3452 1686 3452 1834 3452 1834 3453 1686 3453 1779 3453 1834 3454 1779 3454 1687 3454 1687 3455 1779 3455 1778 3455 1687 3456 1778 3456 1688 3456 1688 3457 1778 3457 1776 3457 1688 3458 1776 3458 1829 3458 1829 3459 1776 3459 1689 3459 1829 3460 1689 3460 1690 3460 1690 3461 1689 3461 1691 3461 1690 3462 1691 3462 1692 3462 1692 3463 1691 3463 1774 3463 1692 3464 1774 3464 1693 3464 1693 3465 1774 3465 1694 3465 1693 3466 1694 3466 1695 3466 1695 3467 1694 3467 1770 3467 1695 3468 1770 3468 1823 3468 1823 3469 1770 3469 1772 3469 1823 3470 1772 3470 1696 3470 1696 3471 1772 3471 1748 3471 1696 3472 1748 3472 1797 3472 1797 3473 1748 3473 1700 3473 1743 3474 1707 3474 1697 3474 1697 3475 1707 3475 1698 3475 1697 3476 1698 3476 1699 3476 1698 3477 1798 3477 1699 3477 1699 3478 1798 3478 1797 3478 1699 3479 1797 3479 1700 3479 1701 3480 1844 3480 1702 3480 1702 3481 1844 3481 1842 3481 1702 3482 1842 3482 1704 3482 1842 3483 1841 3483 1704 3483 1704 3484 1841 3484 1703 3484 1704 3485 1703 3485 1705 3485 1743 3486 1706 3486 1707 3486 1707 3487 1706 3487 1714 3487 1750 3488 1705 3488 1708 3488 1708 3489 1705 3489 1703 3489 1745 3490 1709 3490 1710 3490 1710 3491 1709 3491 1711 3491 1710 3492 1711 3492 1713 3492 1711 3493 1712 3493 1713 3493 1713 3494 1712 3494 1714 3494 1713 3495 1714 3495 1706 3495 1750 3496 1708 3496 1715 3496 1715 3497 1708 3497 1845 3497 1715 3498 1845 3498 1716 3498 1845 3499 1717 3499 1716 3499 1716 3500 1717 3500 1718 3500 1716 3501 1718 3501 1754 3501 1727 3502 1754 3502 1718 3502 1800 3503 1802 3503 1731 3503 1731 3504 1802 3504 1805 3504 1731 3505 1805 3505 1719 3505 1709 3506 1745 3506 1720 3506 1720 3507 1745 3507 1721 3507 1720 3508 1721 3508 1819 3508 1819 3509 1721 3509 1722 3509 1819 3510 1722 3510 1817 3510 1817 3511 1722 3511 1659 3511 1817 3512 1659 3512 1816 3512 1816 3513 1659 3513 1660 3513 1816 3514 1660 3514 1814 3514 1814 3515 1660 3515 1723 3515 1814 3516 1723 3516 1724 3516 1724 3517 1723 3517 1658 3517 1724 3518 1658 3518 1725 3518 1725 3519 1658 3519 1719 3519 1725 3520 1719 3520 1808 3520 1808 3521 1719 3521 1805 3521 1718 3522 1843 3522 1727 3522 1727 3523 1843 3523 1726 3523 1727 3524 1726 3524 1728 3524 1728 3525 1726 3525 1729 3525 1728 3526 1729 3526 1737 3526 1737 3527 1729 3527 1800 3527 1737 3528 1800 3528 1735 3528 1735 3529 1800 3529 1731 3529 1719 3530 1730 3530 1731 3530 1731 3531 1730 3531 1732 3531 1767 3532 1737 3532 1763 3532 1763 3533 1737 3533 1735 3533 1732 3534 1733 3534 1731 3534 1731 3535 1733 3535 1734 3535 1731 3536 1734 3536 1735 3536 1735 3537 1734 3537 1765 3537 1735 3538 1765 3538 1763 3538 1753 3539 1727 3539 1740 3539 1740 3540 1727 3540 1728 3540 1767 3541 1736 3541 1737 3541 1737 3542 1736 3542 1738 3542 1737 3543 1738 3543 1728 3543 1728 3544 1738 3544 1739 3544 1728 3545 1739 3545 1740 3545 1741 3546 1744 3546 1747 3546 1744 3547 1741 3547 1752 3547 1752 3548 1741 3548 1742 3548 1752 3549 1742 3549 1749 3549 1749 3550 1742 3550 1783 3550 1749 3551 1783 3551 1747 3551 1747 3552 1783 3552 1784 3552 1747 3553 1784 3553 1741 3553 1743 3554 1747 3554 1706 3554 1706 3555 1747 3555 1744 3555 1706 3556 1744 3556 1713 3556 1713 3557 1744 3557 1710 3557 1710 3558 1744 3558 1745 3558 1745 3559 1744 3559 1746 3559 1745 3560 1746 3560 1721 3560 1743 3561 1697 3561 1747 3561 1747 3562 1697 3562 1699 3562 1747 3563 1699 3563 1773 3563 1773 3564 1699 3564 1700 3564 1773 3565 1700 3565 1748 3565 1749 3566 1702 3566 1704 3566 1704 3567 1705 3567 1749 3567 1749 3568 1705 3568 1750 3568 1749 3569 1750 3569 1752 3569 1702 3570 1749 3570 1701 3570 1701 3571 1749 3571 1756 3571 1701 3572 1756 3572 1751 3572 1750 3573 1715 3573 1752 3573 1752 3574 1715 3574 1716 3574 1752 3575 1716 3575 1753 3575 1753 3576 1716 3576 1754 3576 1753 3577 1754 3577 1727 3577 1744 3578 1752 3578 1746 3578 1746 3579 1752 3579 1753 3579 1746 3580 1753 3580 1755 3580 1755 3581 1753 3581 1740 3581 1781 3582 1782 3582 1756 3582 1771 3583 1756 3583 1773 3583 1773 3584 1756 3584 1749 3584 1773 3585 1749 3585 1747 3585 1771 3586 1757 3586 1756 3586 1756 3587 1757 3587 1775 3587 1756 3588 1775 3588 1758 3588 1758 3589 1759 3589 1756 3589 1756 3590 1759 3590 1777 3590 1756 3591 1777 3591 1760 3591 1761 3592 1781 3592 1780 3592 1780 3593 1781 3593 1756 3593 1780 3594 1756 3594 1762 3594 1762 3595 1756 3595 1760 3595 1764 3596 1767 3596 1763 3596 1732 3597 1730 3597 1897 3597 1896 3598 1734 3598 1897 3598 1897 3599 1734 3599 1733 3599 1897 3600 1733 3600 1732 3600 1763 3601 1765 3601 1764 3601 1764 3602 1765 3602 1734 3602 1764 3603 1734 3603 1656 3603 1656 3604 1734 3604 1896 3604 1656 3605 1896 3605 1657 3605 1657 3606 1896 3606 1895 3606 1739 3607 1738 3607 1662 3607 1662 3608 1738 3608 1663 3608 1663 3609 1738 3609 1736 3609 1663 3610 1736 3610 1766 3610 1766 3611 1736 3611 1767 3611 1766 3612 1767 3612 1768 3612 1768 3613 1767 3613 1764 3613 1768 3614 1764 3614 1661 3614 1739 3615 1662 3615 1740 3615 1740 3616 1662 3616 1769 3616 1740 3617 1769 3617 1755 3617 1775 3618 1757 3618 1770 3618 1770 3619 1757 3619 1771 3619 1770 3620 1771 3620 1772 3620 1772 3621 1771 3621 1773 3621 1772 3622 1773 3622 1748 3622 1770 3623 1694 3623 1775 3623 1775 3624 1694 3624 1774 3624 1775 3625 1774 3625 1758 3625 1758 3626 1774 3626 1691 3626 1758 3627 1691 3627 1759 3627 1759 3628 1691 3628 1689 3628 1759 3629 1689 3629 1777 3629 1777 3630 1689 3630 1776 3630 1777 3631 1776 3631 1760 3631 1760 3632 1776 3632 1778 3632 1760 3633 1778 3633 1762 3633 1762 3634 1778 3634 1779 3634 1762 3635 1779 3635 1780 3635 1780 3636 1779 3636 1686 3636 1780 3637 1686 3637 1761 3637 1761 3638 1686 3638 1781 3638 1686 3639 1685 3639 1781 3639 1781 3640 1685 3640 1683 3640 1781 3641 1683 3641 1782 3641 1782 3642 1683 3642 1751 3642 1782 3643 1751 3643 1756 3643 1741 3644 1790 3644 1742 3644 1742 3645 1790 3645 1786 3645 1784 3646 1789 3646 1741 3646 1741 3647 1789 3647 1790 3647 1783 3648 1785 3648 1784 3648 1784 3649 1785 3649 1789 3649 1742 3650 1786 3650 1783 3650 1783 3651 1786 3651 1785 3651 1786 3652 1787 3652 1785 3652 1785 3653 1787 3653 1793 3653 1785 3654 1793 3654 1789 3654 1789 3655 1793 3655 1788 3655 1789 3656 1788 3656 1790 3656 1790 3657 1788 3657 1792 3657 1790 3658 1792 3658 1786 3658 1786 3659 1792 3659 1787 3659 1664 3660 1681 3660 1670 3660 1670 3661 1681 3661 1792 3661 1670 3662 1792 3662 1791 3662 1791 3663 1792 3663 1788 3663 1791 3664 1788 3664 1668 3664 1668 3665 1788 3665 1796 3665 1792 3666 1681 3666 1787 3666 1787 3667 1681 3667 1680 3667 1667 3668 1795 3668 1794 3668 1794 3669 1795 3669 1793 3669 1794 3670 1793 3670 1669 3670 1669 3671 1793 3671 1787 3671 1669 3672 1787 3672 1665 3672 1665 3673 1787 3673 1680 3673 1793 3674 1795 3674 1788 3674 1788 3675 1795 3675 1796 3675 1668 3676 1796 3676 1667 3676 1667 3677 1796 3677 1795 3677 1712 3678 1711 3678 1709 3678 1797 3679 1712 3679 1696 3679 1696 3680 1712 3680 1709 3680 1696 3681 1709 3681 1720 3681 1707 3682 1714 3682 1698 3682 1698 3683 1714 3683 1712 3683 1698 3684 1712 3684 1798 3684 1798 3685 1712 3685 1797 3685 1840 3686 1864 3686 1866 3686 1840 3687 1866 3687 1682 3687 1682 3688 1866 3688 1865 3688 1682 3689 1865 3689 1843 3689 1843 3690 1865 3690 1890 3690 1843 3691 1890 3691 1726 3691 1726 3692 1890 3692 1799 3692 1726 3693 1799 3693 1729 3693 1799 3694 1868 3694 1729 3694 1729 3695 1868 3695 1801 3695 1729 3696 1801 3696 1800 3696 1800 3697 1801 3697 1867 3697 1871 3698 1802 3698 1872 3698 1872 3699 1802 3699 1800 3699 1872 3700 1800 3700 1803 3700 1803 3701 1800 3701 1867 3701 1870 3702 1808 3702 1804 3702 1804 3703 1808 3703 1805 3703 1804 3704 1805 3704 1806 3704 1806 3705 1805 3705 1802 3705 1806 3706 1802 3706 1807 3706 1807 3707 1802 3707 1871 3707 1870 3708 1873 3708 1808 3708 1808 3709 1873 3709 1874 3709 1808 3710 1874 3710 1725 3710 1725 3711 1874 3711 1875 3711 1875 3712 1809 3712 1725 3712 1725 3713 1809 3713 1810 3713 1725 3714 1810 3714 1724 3714 1810 3715 1811 3715 1724 3715 1724 3716 1811 3716 1812 3716 1724 3717 1812 3717 1814 3717 1814 3718 1812 3718 1877 3718 1877 3719 1813 3719 1814 3719 1814 3720 1813 3720 1815 3720 1814 3721 1815 3721 1816 3721 1815 3722 1878 3722 1816 3722 1816 3723 1878 3723 1821 3723 1816 3724 1821 3724 1817 3724 1881 3725 1819 3725 1818 3725 1818 3726 1819 3726 1817 3726 1818 3727 1817 3727 1820 3727 1820 3728 1817 3728 1821 3728 1881 3729 1822 3729 1819 3729 1819 3730 1822 3730 1880 3730 1819 3731 1880 3731 1720 3731 1720 3732 1880 3732 1883 3732 1720 3733 1883 3733 1696 3733 1696 3734 1883 3734 1882 3734 1696 3735 1882 3735 1823 3735 1823 3736 1882 3736 1847 3736 1823 3737 1847 3737 1695 3737 1847 3738 1848 3738 1695 3738 1695 3739 1848 3739 1824 3739 1695 3740 1824 3740 1693 3740 1693 3741 1824 3741 1825 3741 1826 3742 1692 3742 1852 3742 1852 3743 1692 3743 1693 3743 1852 3744 1693 3744 1854 3744 1854 3745 1693 3745 1825 3745 1826 3746 1851 3746 1692 3746 1692 3747 1851 3747 1850 3747 1692 3748 1850 3748 1690 3748 1690 3749 1850 3749 1849 3749 1690 3750 1849 3750 1829 3750 1829 3751 1849 3751 1857 3751 1829 3752 1857 3752 1827 3752 1827 3753 1828 3753 1829 3753 1829 3754 1828 3754 1830 3754 1829 3755 1830 3755 1688 3755 1830 3756 1859 3756 1688 3756 1688 3757 1859 3757 1831 3757 1688 3758 1831 3758 1687 3758 1831 3759 1832 3759 1687 3759 1687 3760 1832 3760 1833 3760 1687 3761 1833 3761 1834 3761 1834 3762 1833 3762 1856 3762 1856 3763 1855 3763 1834 3763 1834 3764 1855 3764 1835 3764 1834 3765 1835 3765 1684 3765 1835 3766 1836 3766 1684 3766 1684 3767 1836 3767 1860 3767 1684 3768 1860 3768 1838 3768 1860 3769 1837 3769 1838 3769 1838 3770 1837 3770 1839 3770 1838 3771 1839 3771 1840 3771 1840 3772 1839 3772 1862 3772 1840 3773 1862 3773 1864 3773 1841 3774 1842 3774 1844 3774 1718 3775 1841 3775 1843 3775 1843 3776 1841 3776 1844 3776 1843 3777 1844 3777 1682 3777 1708 3778 1703 3778 1845 3778 1845 3779 1703 3779 1841 3779 1845 3780 1841 3780 1717 3780 1717 3781 1841 3781 1718 3781 1825 3782 1824 3782 1853 3782 1882 3783 1846 3783 1847 3783 1847 3784 1846 3784 1853 3784 1847 3785 1853 3785 1848 3785 1848 3786 1853 3786 1824 3786 1857 3787 1849 3787 1858 3787 1858 3788 1849 3788 1850 3788 1858 3789 1850 3789 1851 3789 1851 3790 1826 3790 1858 3790 1858 3791 1826 3791 1852 3791 1858 3792 1852 3792 1853 3792 1853 3793 1852 3793 1854 3793 1853 3794 1854 3794 1825 3794 1835 3795 1855 3795 1886 3795 1886 3796 1855 3796 1856 3796 1856 3797 1833 3797 1886 3797 1886 3798 1833 3798 1832 3798 1886 3799 1832 3799 1887 3799 1887 3800 1832 3800 1831 3800 1827 3801 1857 3801 1828 3801 1828 3802 1857 3802 1858 3802 1828 3803 1858 3803 1830 3803 1830 3804 1858 3804 1887 3804 1830 3805 1887 3805 1859 3805 1859 3806 1887 3806 1831 3806 1839 3807 1837 3807 1861 3807 1861 3808 1837 3808 1860 3808 1861 3809 1860 3809 1886 3809 1886 3810 1860 3810 1836 3810 1886 3811 1836 3811 1835 3811 1839 3812 1861 3812 1862 3812 1862 3813 1861 3813 1863 3813 1862 3814 1863 3814 1864 3814 1864 3815 1863 3815 1865 3815 1864 3816 1865 3816 1866 3816 1881 3817 1818 3817 1889 3817 1867 3818 1801 3818 1869 3818 1890 3819 1884 3819 1799 3819 1799 3820 1884 3820 1869 3820 1799 3821 1869 3821 1868 3821 1868 3822 1869 3822 1801 3822 1870 3823 1804 3823 1885 3823 1885 3824 1804 3824 1806 3824 1885 3825 1806 3825 1807 3825 1807 3826 1871 3826 1885 3826 1885 3827 1871 3827 1872 3827 1885 3828 1872 3828 1869 3828 1869 3829 1872 3829 1803 3829 1869 3830 1803 3830 1867 3830 1873 3831 1870 3831 1874 3831 1874 3832 1870 3832 1885 3832 1874 3833 1885 3833 1875 3833 1875 3834 1885 3834 1876 3834 1875 3835 1876 3835 1809 3835 1809 3836 1876 3836 1810 3836 1811 3837 1810 3837 1812 3837 1812 3838 1810 3838 1876 3838 1812 3839 1876 3839 1877 3839 1877 3840 1876 3840 1888 3840 1877 3841 1888 3841 1813 3841 1813 3842 1888 3842 1815 3842 1818 3843 1820 3843 1889 3843 1889 3844 1820 3844 1821 3844 1889 3845 1821 3845 1888 3845 1888 3846 1821 3846 1878 3846 1888 3847 1878 3847 1815 3847 1879 3848 1883 3848 1880 3848 1879 3849 1880 3849 1889 3849 1889 3850 1880 3850 1822 3850 1889 3851 1822 3851 1881 3851 1846 3852 1882 3852 1879 3852 1879 3853 1882 3853 1883 3853 1884 3854 1863 3854 1869 3854 1869 3855 1863 3855 1861 3855 1869 3856 1861 3856 1885 3856 1885 3857 1861 3857 1886 3857 1885 3858 1886 3858 1876 3858 1876 3859 1886 3859 1887 3859 1876 3860 1887 3860 1888 3860 1888 3861 1887 3861 1858 3861 1888 3862 1858 3862 1889 3862 1889 3863 1858 3863 1853 3863 1889 3864 1853 3864 1879 3864 1879 3865 1853 3865 1846 3865 1863 3866 1884 3866 1865 3866 1865 3867 1884 3867 1890 3867 1675 3868 1677 3868 1891 3868 1666 3869 1892 3869 1893 3869 1893 3870 1892 3870 1894 3870 1893 3871 1894 3871 1891 3871 1891 3872 1894 3872 1653 3872 1891 3873 1653 3873 1675 3873 1719 3874 1658 3874 1895 3874 1895 3875 1896 3875 1719 3875 1719 3876 1896 3876 1897 3876 1719 3877 1897 3877 1730 3877 1902 3878 1899 3878 1898 3878 1898 3879 1899 3879 51 3879 38 3880 1901 3880 1900 3880 1900 3881 1901 3881 252 3881 1901 3882 1902 3882 252 3882 252 3883 1902 3883 1898 3883 1901 3884 38 3884 1902 3884 1902 3885 38 3885 1899 3885</p>\n                </triangles>\n            </mesh>\n        </geometry>\n    </library_geometries>\n    <library_visual_scenes>\n        <visual_scene id=\"VisualSceneNode\" name=\"VisualScene\">\n            <node id=\"node\" name=\"node\">\n                <instance_geometry url=\"#shape0-lib\">\n                    <bind_material>\n                        <technique_common/>\n                    </bind_material>\n                </instance_geometry>\n            </node>\n        </visual_scene>\n    </library_visual_scenes>\n    <scene>\n        <instance_visual_scene url=\"#VisualSceneNode\"/>\n    </scene>\n</COLLADA>\n"
  },
  {
    "path": "agvs_description/meshes/motor_wheel.dae",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<COLLADA xmlns=\"http://www.collada.org/2005/11/COLLADASchema\" version=\"1.4.1\">\n    <asset>\n        <contributor>\n            <author>VCGLab</author>\n            <authoring_tool>VCGLib | MeshLab</authoring_tool>\n        </contributor>\n        <up_axis>Y_UP</up_axis>\n        <created>Wed Feb 26 13:37:22 2014</created>\n        <modified>Wed Feb 26 13:37:22 2014</modified>\n    </asset>\n    <library_images/>\n    <library_materials/>\n    <library_effects/>\n    <library_geometries>\n        <geometry id=\"shape0-lib\" name=\"shape0\">\n            <mesh>\n                <source id=\"shape0-lib-positions\" name=\"position\">\n                    <float_array id=\"shape0-lib-positions-array\" count=\"867\">-0.0213922 0.0718844 0.124 -0.0373933 0.0650134 0.124 0.0448857 0.0600856 0.124 -0.0625938 0.0413161 0.124 -0.0745071 -0.00858459 0.1305 0.104576 -0.072062 0.1305 0.0900279 -0.0895766 0.1305 0.044688 -0.0602327 0.1305 0.0725866 -0.104212 0.1305 -0.0201823 0.125386 0.1305 -0.00423786 0.0748802 0.1305 0.00253057 0.126975 0.1305 0.0251621 0.124482 0.1305 0.0298191 0.0688173 0.1305 0.046985 0.117989 0.1305 -0.0766812 -0.101237 0.1305 -0.0935255 -0.0859184 0.1305 -0.117751 -0.0475773 0.1305 -0.12696 -0.00316868 0.1305 0.0448857 0.0600856 0.1305 0.0854473 0.0939561 0.1305 0.121542 0.0368306 0.1305 0.115762 -0.0522312 0.1305 -0.00448385 -0.0748658 0.1305 -0.0362193 -0.121726 0.1305 -0.0376066 -0.0648902 0.1305 -0.110614 0.0623978 0.1305 -0.0625938 0.0413161 0.1305 -0.0816359 0.0972861 0.1305 -0.0213922 0.0718844 0.1305 -0.108979 -0.00212676 0.162 -0.108979 -0.00212676 0.1515 -0.101963 0.0385291 0.162 -0.092829 0.0571295 0.1515 -0.092829 0.0571295 0.162 -0.0803396 0.0736651 0.162 -0.0649466 0.0875382 0.162 -0.0803396 0.0736651 0.1515 -0.0649466 0.0875382 0.1515 -0.0472062 0.0982475 0.1515 -0.0277596 0.105406 0.1515 -0.0073098 0.108755 0.162 -0.0073098 0.108755 0.1515 0.0134042 0.108173 0.1515 0.0336338 0.103681 0.162 0.0526478 0.0954422 0.1515 0.0697589 0.0837537 0.1515 0.0843488 0.0690382 0.162 0.0958901 0.0518275 0.162 0.0958901 0.0518275 0.1515 0.103966 0.0327436 0.162 0.108284 0.0124763 0.1515 0.108284 0.0124763 0.162 0.108688 -0.008242 0.1515 0.105164 -0.0286624 0.1515 0.0978392 -0.0480468 0.1515 0.0978392 -0.0480468 0.162 0.0869782 -0.0656947 0.162 0.0869782 -0.0656947 0.1515 0.0729735 -0.0809683 0.1515 0.0376534 -0.10229 0.1515 0.0376534 -0.10229 0.162 0.0176145 -0.107567 0.1515 -0.00306109 -0.108957 0.1515 -0.023626 -0.106409 0.162 -0.0614818 -0.0900055 0.162 -0.0614818 -0.0900055 0.1515 -0.0905294 -0.0607078 0.1515 -0.100382 -0.0424779 0.1515 -0.100382 -0.0424779 0.162 -0.106607 -0.0227128 0.162 -0.106607 -0.0227128 0.1515 -0.0277596 0.105406 0.162 0.0134042 0.108173 0.162 -0.0472062 0.0982475 0.162 0.0526478 0.0954422 0.162 0.0697589 0.0837537 0.162 -0.107412 0.0185361 0.162 -0.108284 -0.0124763 0.162 0.0176145 -0.107567 0.162 -0.00306109 -0.108957 0.162 -0.043337 -0.100015 0.162 0.0729735 -0.0809683 0.162 0.0563315 -0.0933154 0.162 -0.0905294 -0.0607078 0.162 -0.0774044 -0.0767435 0.162 0.108688 -0.008242 0.162 0.105164 -0.0286624 0.162 -0.0201823 0.125386 0.1515 -0.0629529 0.110299 0.1515 -0.0976951 0.081146 0.1515 -0.101963 0.0385291 0.1515 -0.107412 0.0185361 0.1515 -0.125486 0.0195519 0.1515 -0.12696 -0.00316868 0.1515 -0.124354 -0.0257874 0.1515 -0.107364 -0.0678381 0.1515 -0.0774044 -0.0767435 0.1515 -0.0766812 -0.101237 0.1515 -0.043337 -0.100015 0.1515 -0.023626 -0.106409 0.1515 -0.0139023 -0.126237 0.1515 0.0563315 -0.0933154 0.1515 0.0900279 -0.0895766 0.1515 0.104576 -0.072062 0.1515 0.103966 0.0327436 0.1515 0.0843488 0.0690382 0.1515 0.100851 0.077189 0.1515 0.0336338 0.103681 0.1515 0.046985 0.117989 0.1515 0.00253057 0.126975 0.1515 0.126165 0.0145366 0.1305 0.126165 0.0145366 0.1515 0.121542 0.0368306 0.1515 0.113013 0.057941 0.1305 0.113013 0.057941 0.1515 0.100851 0.077189 0.1305 0.0854473 0.0939561 0.1515 0.0672976 0.107703 0.1305 0.0672976 0.107703 0.1515 0.0251621 0.124482 0.1515 -0.0422465 0.119767 0.1305 -0.0422465 0.119767 0.1515 -0.0629529 0.110299 0.1305 -0.0976951 0.081146 0.1305 -0.0816359 0.0972861 0.1515 -0.110614 0.0623978 0.1515 -0.119978 0.0416441 0.1515 -0.119978 0.0416441 0.1305 -0.125486 0.0195519 0.1305 -0.124354 -0.0257874 0.1305 -0.117751 -0.0475773 0.1515 -0.107364 -0.0678381 0.1305 -0.0935255 -0.0859184 0.1515 -0.0573723 -0.113302 0.1515 -0.0573723 -0.113302 0.1305 -0.0362193 -0.121726 0.1515 -0.0139023 -0.126237 0.1305 0.00886155 -0.12669 0.1305 0.00886155 -0.12669 0.1515 0.0313406 -0.123072 0.1515 0.0313406 -0.123072 0.1305 0.0528123 -0.115498 0.1305 0.0528123 -0.115498 0.1515 0.0725866 -0.104212 0.1515 0.115762 -0.0522312 0.1515 0.123228 -0.0307217 0.1515 0.123228 -0.0307217 0.1305 0.126733 -0.00822472 0.1305 0.126733 -0.00822472 0.1515 -0.0704347 0.0257672 0.1305 -0.0634429 0.04 0.124 -0.0513784 0.0546375 0.124 -0.0513784 0.0546375 0.1305 -0.0373933 0.0650134 0.1305 -0.00423786 0.0748802 0.124 0.0131449 0.0738391 0.1305 0.0131449 0.0738391 0.124 0.0298191 0.0688173 0.124 0.0575324 0.0481146 0.124 0.0634429 0.04 0.124 0.0575324 0.0481146 0.1305 0.0670777 0.0335498 0.1305 0.0730067 0.0171763 0.1305 0.0670777 0.0335498 0.124 0.0730067 0.0171763 0.124 0.0745071 0.00858459 0.1305 0.0749999 -0.0001232 0.1305 0.0729499 -0.017416 0.1305 0.0669671 -0.03377 0.124 0.0669671 -0.03377 0.1305 0.0573741 -0.0483034 0.1305 -0.0515577 -0.0544684 0.1305 -0.0376066 -0.0648902 0.124 -0.00448385 -0.0748658 0.124 -0.0216282 -0.0718138 0.1305 0.0129023 -0.0738819 0.1305 0.0295928 -0.0689149 0.124 0.0295928 -0.0689149 0.1305 0.0573741 -0.0483034 0.124 -0.0704347 0.0257672 0.124 -0.0744785 0.00882932 0.124 -0.0745071 -0.00858459 0.124 -0.0744785 0.00882932 0.1305 -0.070519 -0.0255357 0.124 -0.070519 -0.0255357 0.1305 -0.0627292 -0.0411102 0.1305 -0.0627292 -0.0411102 0.124 -0.0559017 -0.05 0.124 -0.0515577 -0.0544684 0.124 0.044688 -0.0602327 0.124 -0.0216282 -0.0718138 0.124 0.0129023 -0.0738819 0.124 -0.08 -0.05 0.124 -0.08 0.04 0.124 0.0749999 -0.0001232 0.124 0.0729499 -0.017416 0.124 0.08 -0.05 0.124 0.0559017 -0.05 0.124 0.0779942 -0.04 -0.0178017 0.0588138 -0.04 -0.0276757 0.0625465 -0.04 -0.0498792 0.038206 -0.04 -0.0525861 0.0548813 -0.04 0.0348287 0.08 -0.04 0.104 0.0444956 -0.04 0.047383 -0.08 -0.04 -1.54972e-09 -0.0618187 -0.04 0.0200861 -0.0648717 -0.04 0.00408138 -0.0779942 -0.04 -0.0178017 -0.038206 -0.04 -0.0525861 -0.0239281 -0.04 -0.0604355 0.0178017 -0.04 -0.0779942 0.031314 -0.04 0.0569599 5.45403e-11 -0.04 0.065 -0.0161648 -0.04 0.0629579 0.0720775 -0.06 -0.0347107 0.0779942 -0.06 -0.0178017 -0.0779942 -0.06 -0.0178017 -0.0720775 -0.06 -0.0347107 -0.0178017 -0.06 -0.0779942 -3.62691e-10 -0.06 -0.08 0.0498792 -0.06 -0.0625465 0.08 0.04 0.124 0.08 -0.06 0.114 -0.08 -0.06 -1.54972e-09 -0.08 -0.04 0.104 -0.08 -0.03 0.114 0.08 0.04 0.114 -0.08 0.04 0.114 0.08 -0.06 -1.54972e-09 0.08 -0.04 -1.54972e-09 0.0720775 -0.04 -0.0347107 0.0625465 -0.06 -0.0498792 0.0498792 -0.04 -0.0625465 0.0347107 -0.04 -0.0720775 0.0347107 -0.06 -0.0720775 0.0178017 -0.06 -0.0779942 5.45403e-11 -0.04 -0.08 -0.0178017 -0.04 -0.0779942 -0.0347107 -0.06 -0.0720775 -0.0498792 -0.06 -0.0625465 -0.0347107 -0.04 -0.0720775 -0.0498792 -0.04 -0.0625465 -0.0625465 -0.06 -0.0498792 -0.0625465 -0.04 -0.0498792 -0.0720775 -0.04 -0.0347107 -0.0588138 0.008 -0.0276757 -0.0588138 -0.04 -0.0276757 -0.0500834 -0.04 -0.0414326 -0.038206 0.008 -0.0525861 -0.0239281 0.008 -0.0604355 -0.00814666 0.008 -0.0644875 -0.00814666 -0.04 -0.0644875 0.00814666 -0.04 -0.0644875 0.0239281 -0.04 -0.0604355 0.0500834 -0.04 -0.0414326 0.0638487 -0.04 -0.0121798 0.0648717 -0.04 0.00408138 0.0618187 -0.04 0.0200861 0.0548813 0.008 0.0348287 0.0161648 -0.04 0.0629579 -0.0161648 0.008 0.0629579 -0.031314 -0.04 0.0569599 -0.0444956 -0.04 0.047383 -0.0444956 0.008 0.047383 -0.0548813 0.008 0.0348287 -0.0548813 -0.04 0.0348287 -0.0618187 0.008 0.0200861 -0.0648717 0.008 0.00408138 -0.0638487 -0.04 -0.0121798 -0.065 0.008 -1.54972e-09 -0.0638487 0.008 -0.0121798 0.0638487 0.008 -0.0121798 -0.0500834 0.008 -0.0414326 0.0588138 0.008 -0.0276757 0.0500834 0.008 -0.0414326 0.038206 0.008 -0.0525861 0.0239281 0.008 -0.0604355 0.00814666 0.008 -0.0644875 0.0648717 0.008 0.00408138 0.0618187 0.008 0.0200861 -0.031314 0.008 0.0569599 0.0444956 0.008 0.047383 0.031314 0.008 0.0569599 0.0161648 0.008 0.0629579 3.3542e-11 0.008 0.065 -0.08 -0.06 0.114 0.08 -0.03 0.114</float_array>\n                    <technique_common>\n                        <accessor count=\"289\" source=\"#shape0-lib-positions-array\" stride=\"3\">\n                            <param name=\"X\" type=\"float\"/>\n                            <param name=\"Y\" type=\"float\"/>\n                            <param name=\"Z\" type=\"float\"/>\n                        </accessor>\n                    </technique_common>\n                </source>\n                <source id=\"shape0-lib-normals\" name=\"normal\">\n                    <float_array id=\"shape0-lib-normals-array\" count=\"1722\">0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 -0.997749 -0.0670633 0 -0.997137 0.0756149 0 -0.997137 0.0756149 0 -0.964807 0.262958 0 -0.964807 0.262958 0 -0.897607 0.440797 0 -0.897607 0.440797 0 -0.797965 0.602704 0 -0.797965 0.602704 0 -0.669482 0.742828 0 -0.669482 0.742828 0 -0.516802 0.856105 0 -0.516802 0.856105 0 -0.345444 0.938439 0 -0.345444 0.938439 0 -0.161601 0.986856 0 -0.161601 0.986856 0 0.0280834 0.999606 0 0.0280834 0.999606 0 0.216752 0.976227 0 0.216752 0.976227 0 0.397588 0.917564 0 0.397588 0.917564 0 0.564053 0.825739 0 0.564053 0.825739 0 0.710132 0.704069 0 0.710132 0.704069 0 0.830545 0.556952 0 0.830545 0.556952 0 0.920939 0.389706 0 0.920939 0.389706 0 0.978049 0.208374 0 0.978049 0.208374 0 0.99981 0.0195118 0 0.99981 0.0195118 0 0.985434 -0.170056 0 0.985434 -0.170056 0 0.935443 -0.353478 0 0.935443 -0.353478 0 0.851642 -0.524124 0 0.851642 -0.524124 0 0.737061 -0.675826 0 0.737061 -0.675826 0 0.59584 -0.803103 0 0.59584 -0.803103 0 0.433084 -0.901353 0 0.433084 -0.901353 0 0.254676 -0.967027 0 0.254676 -0.967027 0 0.0670621 -0.997749 0 0.0670621 -0.997749 0 -0.122975 -0.99241 0 -0.122975 -0.99241 0 -0.308567 -0.951203 0 -0.308567 -0.951203 0 -0.483007 -0.875616 0 -0.483007 -0.875616 0 -0.63999 -0.768383 0 -0.63999 -0.768383 0 -0.773842 -0.633379 0 -0.773842 -0.633379 0 -0.879726 -0.475482 0 -0.879726 -0.475482 0 -0.953813 -0.3004 0 -0.953813 -0.3004 0 -0.986856 -0.1616 0 -0.992332 -0.114335 -0.0469531 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0.999689 0.0249496 0 0.979168 0.203051 0 0.979168 0.203051 0 0.927177 0.374625 0 0.927177 0.374625 0 0.845385 0.534158 0 0.845385 0.534158 0 0.736421 0.676523 0 0.736421 0.676523 0 0.603789 0.797144 0 0.603789 0.797144 0 0.45175 0.892145 0 0.45175 0.892145 0 0.285192 0.958471 0 0.285192 0.958471 0 0.109467 0.99399 0 0.109467 0.99399 0 -0.069776 0.997563 0 -0.069776 0.997563 0 -0.246777 0.969072 0 -0.246777 0.969072 0 -0.415845 0.909436 0 -0.415845 0.909436 0 -0.571548 0.820569 0 -0.571548 0.820569 0 -0.708882 0.705328 0 -0.708882 0.705328 0 -0.82343 0.567417 0 -0.82343 0.567417 0 -0.911514 0.411269 0 -0.911514 0.411269 0 -0.9703 0.241903 0 -0.9703 0.241903 0 -0.997901 0.0647615 0 -0.997901 0.0647615 0 -0.993428 -0.114461 0 -0.993428 -0.114461 0 -0.957025 -0.290005 0 -0.957025 -0.290005 0 -0.889863 -0.456228 0 -0.889863 -0.456228 0 -0.7941 -0.607787 0 -0.7941 -0.607787 0 -0.672814 -0.739812 0 -0.672814 -0.739812 0 -0.529903 -0.848058 0 -0.529903 -0.848058 0 -0.36996 -0.929048 0 -0.36996 -0.929048 0 -0.198127 -0.980176 0 -0.198127 -0.980176 0 -0.0199259 -0.999801 0 -0.0199259 -0.999801 0 0.158916 -0.987292 0 0.158916 -0.987292 0 0.33265 -0.943051 0 0.33265 -0.943051 0 0.495692 -0.868498 0 0.495692 -0.868498 0 0.642803 -0.766032 0 0.642803 -0.766032 0 0.769253 -0.638945 0 0.769253 -0.638945 0 0.870979 -0.491321 0 0.870979 -0.491321 0 0.94471 -0.327906 0 0.94471 -0.327906 0 0.988078 -0.153952 0 0.988078 -0.153952 0 0.999689 0.0249496 0 -0.892605 0.450121 0.0254639 -0.840291 0.542136 0 -0.764987 0.644045 0 -0.764987 0.644045 0 -0.59584 0.803103 0 -0.59584 0.803103 0 -0.394571 0.918866 0 -0.394571 0.918866 0 -0.172031 0.985092 0 -0.172031 0.985092 0 0.059785 0.998211 0 0.059785 0.998211 0 0.288376 0.957517 0 0.288376 0.957517 0 0.501422 0.865203 0 0.501422 0.865203 0 0.687436 0.726245 0 0.687436 0.726245 0 0.808315 0.588751 0 0.83397 0.54655 0.0760114 0.871199 0.490931 0 0.940253 0.340476 0 0.940253 0.340476 0 0.985092 0.17203 0 0.990418 0.114114 -0.0777824 0.998402 0.0565047 0 0.993046 -0.117724 0 0.993046 -0.117724 0 0.93913 -0.343563 0 0.93913 -0.343563 0 0.834584 -0.550881 0 -0.598475 -0.801141 0 -0.397588 -0.917564 0 -0.397588 -0.917564 0 -0.175266 -0.984521 0 -0.175266 -0.984521 0 0.0565051 -0.998402 0 0.0565051 -0.998402 0 0.285229 -0.958459 0 0.285229 -0.958459 0 0.498577 -0.866846 0 0.498577 -0.866846 0 0.674059 -0.738678 0 0.684627 -0.728055 0.0349556 0.755257 -0.655429 0 0.834584 -0.550881 0 -0.897547 0.440919 0 -0.972665 0.232213 0 -0.972665 0.232213 0 -0.999999 0.00164295 0 -0.999999 0.00164295 0 -0.973422 -0.229017 0 -0.973422 -0.229017 0 -0.894369 -0.44733 0 -0.894369 -0.44733 0 -0.79309 -0.609104 0 -0.765138 -0.639888 0.0714627 -0.717015 -0.697058 0 -0.598475 -0.801141 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 5.71298e-07 1 -1.23781e-07 -2.46247e-07 1 0 -2.42137e-07 1 1.52339e-08 -2.52067e-07 1 2.8401e-08 -2.33236e-07 1 7.57828e-08 -2.36896e-07 1 8.28935e-08 -1.02674e-07 1 3.35954e-07 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 -1.90705e-07 1 -1.76627e-07 -3.6769e-07 1 7.96662e-08 -4.52416e-08 1 -3.74271e-08 1.61312e-07 1 -1.66957e-07 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 7.68696e-08 1 -1.93416e-07 -2.39575e-07 1 -7.78426e-08 -2.10657e-07 1 -1.32365e-07 1.2833e-07 1 -1.89354e-07 -1.18798e-07 1 1.75289e-07 -1.49318e-07 1 1.74993e-07 0 1 0 2.89448e-07 1 5.19059e-08 2.50952e-07 1 8.75597e-08 -2.59283e-07 1 -9.04664e-08 -2.22428e-07 1 -1.16812e-07 2.28639e-07 1 1.20073e-07 -2.87599e-08 1 2.55251e-07 -7.71998e-08 1 2.20625e-07 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 -2.54991e-07 -1 4.05815e-07 7.31461e-07 -1 -8.31156e-07 -2.68244e-07 -1 1.68549e-07 -1.8188e-06 -1 2.11289e-06 1 -1.06437e-07 0 1 -8.27842e-08 -1.65568e-07 1 0 0 1 0 0 1 0 0 1 0 0 -1 -3.72529e-07 0 -1 -3.72529e-07 0 -1 -2.48353e-07 2.48353e-07 -1 -2.48353e-07 2.48353e-07 -1 1.06437e-07 9.57932e-07 -1 0 0 0 1 0 0 1 0 2.93594e-08 1 -4.2114e-07 -2.24996e-07 1 0 0 0 -1 0 0 -1 0.993712 0 -0.111964 0.993712 0 -0.111964 0.943883 0 -0.330279 0.943883 0 -0.330279 0.846724 0 -0.532032 0.846724 -3.24923e-07 -0.532032 0.707107 -2.63418e-07 -0.707106 0.707107 1.62461e-07 -0.707107 0.532032 9.90987e-08 -0.846724 0.532032 0 -0.846724 0.330279 0 -0.943883 0.330279 4.06153e-08 -0.943883 0.111965 1.04275e-08 -0.993712 0.111965 0 -0.993712 -0.111965 2.33576e-09 -0.993712 -0.111965 1.01538e-08 -0.993712 -0.330279 3.07596e-08 -0.943883 -0.330279 0 -0.943883 -0.532032 0 -0.846724 -0.532032 0 -0.846724 -0.707107 0 -0.707107 -0.707107 2.43692e-07 -0.707106 -0.846724 3.15429e-07 -0.532032 -0.846724 0 -0.532032 -0.943883 0 -0.330279 -0.943883 0 -0.330279 -0.993712 0 -0.111964 -0.993712 -3.65538e-07 -0.111965 -0.995562 -1.54877e-07 -0.0941079 -0.951057 -1.47623e-07 -0.309017 -0.951057 0 -0.309017 -0.844328 0 -0.535827 -0.844328 0 -0.535827 -0.684547 0 -0.728969 -0.684547 0 -0.728969 -0.481754 0 -0.876307 -0.481754 0 -0.876307 -0.24869 0 -0.968583 -0.24869 0 -0.968583 0 0 -1 0 0 -1 0.24869 4.82522e-09 -0.968583 0.24869 9.30335e-09 -0.968583 0.481754 1.86945e-08 -0.876307 0.481754 0 -0.876307 0.684547 0 -0.728969 0.684547 -5.58201e-08 -0.728968 0.844328 -6.55285e-08 -0.535827 0.844328 0 -0.535827 0.951057 0 -0.309017 0.951057 1.48853e-07 -0.309017 0.998027 1.54914e-07 -0.0627912 0.998027 -1.55831e-07 -0.0627903 0.982287 -1.52471e-07 0.187382 0.982287 0 0.187381 0.904827 0 0.425779 0.904827 0 0.425779 0.770513 0 0.637424 0.770513 0 0.637424 0.587785 0 0.809017 0.587785 0 0.809017 0.368125 0 0.929777 0.368125 0 0.929777 0.125334 0 0.992115 0.125334 0 0.992115 -0.125334 -5.48288e-11 0.992115 -0.125334 0 0.992115 -0.368125 0 0.929777 -0.368125 0 0.929777 -0.587785 0 0.809017 -0.587785 3.72134e-08 0.809017 -0.770513 5.97997e-08 0.637424 -0.770513 0 0.637424 -0.904827 0 0.425779 -0.904827 -6.51235e-08 0.425779 -0.982287 -7.62355e-08 0.187381 -0.982287 1.53505e-07 0.187382 -0.999507 1.55144e-07 0.0314105 -0.997995 -0.0080055 -0.0627892 2.39588e-09 1 -7.62382e-08 0 1 -5.72728e-08 0 1 6.01013e-08 7.91756e-09 1 -2.57257e-09 7.91756e-09 1 -6.26739e-08 -9.29772e-09 1 7.35991e-08 -9.29772e-09 1 7.3599e-08 1.21882e-08 1 -9.64792e-08 1.21882e-08 1 -9.64792e-08 -1.94609e-08 1 1.54049e-07 -1.94609e-08 1 1.54049e-07 5.71598e-08 1 -4.52466e-07 0 1 0 0 1 5.81905e-08 -7.5327e-09 1 -1.43694e-09 -7.5327e-09 1 -5.96274e-08 0 1 0 0 1 0 0 1 0 0 1 0 1.48707e-08 1 1.17714e-07 1.48707e-08 1 -3.75591e-08 0 1 -1.55273e-07 0 1 4.56061e-07 0 -0.707107 0.707107 0 -0.707107 0.707107 0 -0.707107 0.707107 1.0931e-07 -0.707107 0.707107 0 0.707107 -0.707107 0 0.707107 -0.707107</float_array>\n                    <technique_common>\n                        <accessor count=\"574\" source=\"#shape0-lib-normals-array\" stride=\"3\">\n                            <param name=\"X\" type=\"float\"/>\n                            <param name=\"Y\" type=\"float\"/>\n                            <param name=\"Z\" type=\"float\"/>\n                        </accessor>\n                    </technique_common>\n                </source>\n                <vertices id=\"shape0-lib-vertices\">\n                    <input semantic=\"POSITION\" source=\"#shape0-lib-positions\"/>\n                </vertices>\n                <triangles count=\"574\">\n                    <input offset=\"0\" semantic=\"VERTEX\" source=\"#shape0-lib-vertices\"/>\n                    <input offset=\"1\" semantic=\"NORMAL\" source=\"#shape0-lib-normals\"/>\n                    <p>155 0 157 0 0 0 0 1 157 1 158 1 0 2 158 2 1 2 1 3 158 3 2 3 1 4 2 4 152 4 152 5 2 5 159 5 152 6 159 6 3 6 3 7 159 7 160 7 3 8 160 8 151 8 4 9 18 9 183 9 183 10 18 10 129 10 183 11 129 11 150 11 150 12 129 12 128 12 150 13 128 13 27 13 170 14 5 14 171 14 171 15 5 15 6 15 171 16 6 16 7 16 7 17 6 17 8 17 7 18 8 18 178 18 178 19 8 19 142 19 178 20 142 20 176 20 29 21 9 21 10 21 10 22 9 22 11 22 10 23 11 23 156 23 156 24 11 24 12 24 156 25 12 25 13 25 13 26 12 26 14 26 13 27 14 27 19 27 25 28 15 28 172 28 172 29 15 29 16 29 172 30 16 30 186 30 186 31 16 31 132 31 186 32 132 32 185 32 185 33 132 33 17 33 185 34 17 34 4 34 4 35 17 35 130 35 4 36 130 36 18 36 14 37 118 37 19 37 19 38 118 38 20 38 19 39 20 39 161 39 161 40 20 40 116 40 161 41 116 41 162 41 162 42 116 42 114 42 162 43 114 43 163 43 163 44 114 44 21 44 163 45 21 45 166 45 166 46 21 46 111 46 166 47 111 47 167 47 167 48 111 48 148 48 167 49 148 49 168 49 168 50 148 50 147 50 168 51 147 51 170 51 170 52 147 52 22 52 170 53 22 53 5 53 142 54 141 54 176 54 176 55 141 55 138 55 176 56 138 56 23 56 23 57 138 57 137 57 23 58 137 58 175 58 175 59 137 59 24 59 175 60 24 60 25 60 25 61 24 61 135 61 25 62 135 62 15 62 128 63 26 63 27 63 27 64 26 64 124 64 27 65 124 65 153 65 153 66 124 66 28 66 153 67 28 67 154 67 154 68 28 68 123 68 154 69 123 69 29 69 29 70 123 70 121 70 29 71 121 71 9 71 78 72 30 72 31 72 31 73 30 73 77 73 31 74 77 74 92 74 92 75 77 75 32 75 92 76 32 76 91 76 91 77 32 77 34 77 91 78 34 78 33 78 33 79 34 79 35 79 33 80 35 80 37 80 37 81 35 81 36 81 37 82 36 82 38 82 38 83 36 83 74 83 38 84 74 84 39 84 39 85 74 85 72 85 39 86 72 86 40 86 40 87 72 87 41 87 40 88 41 88 42 88 42 89 41 89 73 89 42 90 73 90 43 90 43 91 73 91 44 91 43 92 44 92 108 92 108 93 44 93 75 93 108 94 75 94 45 94 45 95 75 95 76 95 45 96 76 96 46 96 46 97 76 97 47 97 46 98 47 98 106 98 106 99 47 99 48 99 106 100 48 100 49 100 49 101 48 101 50 101 49 102 50 102 105 102 105 103 50 103 52 103 105 104 52 104 51 104 51 105 52 105 86 105 51 106 86 106 53 106 53 107 86 107 87 107 53 108 87 108 54 108 54 109 87 109 56 109 54 110 56 110 55 110 55 111 56 111 57 111 55 112 57 112 58 112 58 113 57 113 82 113 58 114 82 114 59 114 59 115 82 115 83 115 59 116 83 116 102 116 102 117 83 117 61 117 102 118 61 118 60 118 60 119 61 119 79 119 60 120 79 120 62 120 62 121 79 121 80 121 62 122 80 122 63 122 63 123 80 123 64 123 63 124 64 124 100 124 100 125 64 125 81 125 100 126 81 126 99 126 99 127 81 127 65 127 99 128 65 128 66 128 66 129 65 129 85 129 66 130 85 130 97 130 97 131 85 131 84 131 97 132 84 132 67 132 67 133 84 133 69 133 67 134 69 134 68 134 68 135 69 135 70 135 68 136 70 136 71 136 71 137 70 137 78 137 71 138 78 138 31 138 41 139 72 139 73 139 73 140 72 140 74 140 73 141 74 141 44 141 44 142 74 142 36 142 44 143 36 143 75 143 75 144 36 144 35 144 75 145 35 145 76 145 76 146 35 146 34 146 76 147 34 147 47 147 47 148 34 148 32 148 47 149 32 149 48 149 48 150 32 150 77 150 48 151 77 151 50 151 50 152 77 152 30 152 50 153 30 153 52 153 30 154 78 154 52 154 52 155 78 155 70 155 52 156 70 156 69 156 82 157 57 157 85 157 85 158 57 158 56 158 85 159 56 159 87 159 79 160 61 160 80 160 80 161 61 161 81 161 80 162 81 162 64 162 85 163 65 163 82 163 82 164 65 164 81 164 82 165 81 165 83 165 83 166 81 166 61 166 69 167 84 167 52 167 52 168 84 168 85 168 52 169 85 169 86 169 86 170 85 170 87 170 42 171 88 171 40 171 40 172 88 172 122 172 40 173 122 173 39 173 39 174 122 174 89 174 39 175 89 175 38 175 38 176 89 176 125 176 38 177 125 177 37 177 37 178 125 178 90 178 37 179 90 179 33 179 33 180 90 180 126 180 33 181 126 181 91 181 91 182 126 182 127 182 91 183 127 183 92 183 92 184 127 184 93 184 92 185 93 185 31 185 31 186 93 186 94 186 31 187 94 187 71 187 71 188 94 188 95 188 71 189 95 189 68 189 68 190 95 190 131 190 68 191 131 191 67 191 67 192 131 192 96 192 67 193 96 193 97 193 97 194 96 194 133 194 97 195 133 195 66 195 66 196 133 196 98 196 66 197 98 197 99 197 99 198 98 198 134 198 99 199 134 199 100 199 100 200 134 200 136 200 100 201 136 201 63 201 136 202 101 202 63 202 63 203 101 203 139 203 63 204 139 204 62 204 62 205 139 205 140 205 62 206 140 206 60 206 60 207 140 207 143 207 60 208 143 208 102 208 102 209 143 209 144 209 102 210 144 210 59 210 59 211 144 211 103 211 59 212 103 212 58 212 58 213 103 213 104 213 58 214 104 214 55 214 55 215 104 215 145 215 55 216 145 216 54 216 54 217 145 217 146 217 54 218 146 218 53 218 53 219 146 219 149 219 53 220 149 220 51 220 51 221 149 221 112 221 51 222 112 222 105 222 105 223 112 223 113 223 105 224 113 224 49 224 49 225 113 225 115 225 49 226 115 226 106 226 106 227 115 227 107 227 106 228 107 228 46 228 46 229 107 229 117 229 46 230 117 230 45 230 45 231 117 231 119 231 45 232 119 232 108 232 108 233 119 233 109 233 108 234 109 234 43 234 43 235 109 235 120 235 43 236 120 236 42 236 42 237 120 237 110 237 42 238 110 238 88 238 149 239 111 239 112 239 112 240 111 240 21 240 112 241 21 241 113 241 113 242 21 242 114 242 113 243 114 243 115 243 115 244 114 244 116 244 115 245 116 245 107 245 107 246 116 246 20 246 107 247 20 247 117 247 117 248 20 248 118 248 117 249 118 249 119 249 119 250 118 250 14 250 119 251 14 251 109 251 109 252 14 252 12 252 109 253 12 253 120 253 120 254 12 254 11 254 120 255 11 255 110 255 110 256 11 256 9 256 110 257 9 257 88 257 88 258 9 258 121 258 88 259 121 259 122 259 122 260 121 260 123 260 122 261 123 261 89 261 89 262 123 262 28 262 89 263 28 263 125 263 125 264 28 264 124 264 125 265 124 265 90 265 90 266 124 266 26 266 90 267 26 267 126 267 126 268 26 268 128 268 126 269 128 269 127 269 127 270 128 270 129 270 127 271 129 271 93 271 93 272 129 272 18 272 93 273 18 273 94 273 94 274 18 274 130 274 94 275 130 275 95 275 95 276 130 276 17 276 95 277 17 277 131 277 131 278 17 278 132 278 131 279 132 279 96 279 96 280 132 280 16 280 96 281 16 281 133 281 133 282 16 282 15 282 133 283 15 283 98 283 98 284 15 284 135 284 98 285 135 285 134 285 134 286 135 286 24 286 134 287 24 287 136 287 136 288 24 288 137 288 136 289 137 289 101 289 101 290 137 290 138 290 101 291 138 291 139 291 139 292 138 292 141 292 139 293 141 293 140 293 140 294 141 294 142 294 140 295 142 295 143 295 143 296 142 296 8 296 143 297 8 297 144 297 144 298 8 298 6 298 144 299 6 299 103 299 103 300 6 300 5 300 103 301 5 301 104 301 104 302 5 302 22 302 104 303 22 303 145 303 145 304 22 304 147 304 145 305 147 305 146 305 146 306 147 306 148 306 146 307 148 307 149 307 149 308 148 308 111 308 150 309 27 309 151 309 151 310 27 310 3 310 3 311 27 311 153 311 3 312 153 312 152 312 152 313 153 313 154 313 152 314 154 314 1 314 1 315 154 315 29 315 1 316 29 316 0 316 0 317 29 317 10 317 0 318 10 318 155 318 155 319 10 319 156 319 155 320 156 320 157 320 157 321 156 321 13 321 157 322 13 322 158 322 158 323 13 323 19 323 158 324 19 324 2 324 2 325 19 325 161 325 2 326 161 326 159 326 159 327 161 327 160 327 160 328 161 328 162 328 160 329 162 329 164 329 164 330 162 330 163 330 164 331 163 331 165 331 165 332 163 332 166 332 165 333 166 333 195 333 166 334 167 334 195 334 195 335 167 335 168 335 195 336 168 336 196 336 196 337 168 337 170 337 196 338 170 338 169 338 169 339 170 339 171 339 172 340 173 340 25 340 25 341 173 341 191 341 25 342 191 342 175 342 175 343 191 343 174 343 175 344 174 344 23 344 23 345 174 345 192 345 23 346 192 346 176 346 176 347 192 347 177 347 176 348 177 348 178 348 178 349 177 349 190 349 178 350 190 350 7 350 7 351 190 351 198 351 7 352 198 352 171 352 171 353 198 353 179 353 171 354 179 354 169 354 151 355 180 355 150 355 150 356 180 356 181 356 150 357 181 357 183 357 183 358 181 358 182 358 183 359 182 359 4 359 4 360 182 360 184 360 4 361 184 361 185 361 185 362 184 362 187 362 185 363 187 363 186 363 186 364 187 364 188 364 186 365 188 365 172 365 172 366 188 366 189 366 172 367 189 367 173 367 188 368 198 368 189 368 189 369 198 369 190 369 189 370 190 370 173 370 173 371 190 371 177 371 173 372 177 372 191 372 191 373 177 373 192 373 191 374 192 374 174 374 180 375 151 375 194 375 193 376 188 376 187 376 187 377 184 377 193 377 193 378 184 378 182 378 193 379 182 379 194 379 194 380 182 380 181 380 194 381 181 381 180 381 223 382 160 382 164 382 196 383 197 383 195 383 195 384 197 384 223 384 195 385 223 385 165 385 165 386 223 386 164 386 196 387 169 387 197 387 197 388 169 388 179 388 197 389 179 389 198 389 259 390 204 390 258 390 258 391 204 391 231 391 258 392 231 392 257 392 257 393 231 393 199 393 257 394 199 394 200 394 200 395 199 395 232 395 200 396 232 396 256 396 256 397 232 397 201 397 256 398 201 398 202 398 202 399 201 399 234 399 202 400 234 400 255 400 255 401 234 401 235 401 255 402 235 402 254 402 259 403 203 403 204 403 204 404 203 404 205 404 204 405 205 405 213 405 226 406 263 406 264 406 264 407 267 407 226 407 226 408 267 408 207 408 226 409 207 409 206 409 206 410 207 410 208 410 206 411 208 411 209 411 209 412 208 412 270 412 209 413 270 413 246 413 246 414 270 414 248 414 246 415 248 415 245 415 245 416 248 416 249 416 245 417 249 417 243 417 243 418 249 418 210 418 243 419 210 419 242 419 242 420 210 420 211 420 242 421 211 421 239 421 239 422 211 422 253 422 239 423 253 423 238 423 238 424 253 424 254 424 238 425 254 425 212 425 212 426 254 426 235 426 213 427 261 427 204 427 204 428 261 428 214 428 204 429 214 429 226 429 226 430 214 430 215 430 226 431 215 431 263 431 224 432 287 432 230 432 230 433 287 433 225 433 218 434 216 434 225 434 225 435 216 435 217 435 225 436 217 436 230 436 218 437 219 437 216 437 216 438 219 438 244 438 216 439 244 439 241 439 241 440 240 440 216 440 216 441 240 441 220 441 216 442 220 442 221 442 221 443 237 443 216 443 216 444 237 444 236 444 216 445 236 445 233 445 233 446 236 446 222 446 228 447 223 447 288 447 288 448 223 448 197 448 288 449 197 449 204 449 204 450 197 450 224 450 204 451 224 451 231 451 231 452 224 452 230 452 206 453 225 453 226 453 226 454 225 454 287 454 226 455 287 455 227 455 227 456 287 456 193 456 227 457 193 457 229 457 229 458 193 458 194 458 223 459 228 459 160 459 160 460 228 460 229 460 160 461 229 461 151 461 151 462 229 462 194 462 288 463 227 463 228 463 228 464 227 464 229 464 231 465 230 465 217 465 231 466 217 466 199 466 199 467 217 467 216 467 199 468 216 468 232 468 232 469 216 469 233 469 232 470 233 470 201 470 201 471 233 471 222 471 201 472 222 472 234 472 234 473 222 473 236 473 234 474 236 474 235 474 235 475 236 475 237 475 235 476 237 476 212 476 212 477 237 477 221 477 212 478 221 478 238 478 238 479 221 479 220 479 238 480 220 480 239 480 239 481 220 481 240 481 239 482 240 482 242 482 242 483 240 483 241 483 242 484 241 484 243 484 243 485 241 485 244 485 243 486 244 486 245 486 245 487 244 487 219 487 245 488 219 488 246 488 246 489 219 489 218 489 246 490 218 490 209 490 209 491 218 491 225 491 209 492 225 492 206 492 271 493 272 493 270 493 270 494 272 494 247 494 270 495 247 495 248 495 248 496 247 496 274 496 248 497 274 497 249 497 249 498 274 498 250 498 249 499 250 499 210 499 210 500 250 500 251 500 210 501 251 501 211 501 211 502 251 502 252 502 211 503 252 503 253 503 253 504 252 504 279 504 253 505 279 505 254 505 254 506 279 506 278 506 254 507 278 507 255 507 255 508 278 508 277 508 255 509 277 509 202 509 202 510 277 510 276 510 202 511 276 511 256 511 256 512 276 512 275 512 256 513 275 513 200 513 200 514 275 514 273 514 200 515 273 515 257 515 257 516 273 516 280 516 257 517 280 517 258 517 258 518 280 518 281 518 258 519 281 519 259 519 259 520 281 520 260 520 259 521 260 521 203 521 203 522 260 522 283 522 203 523 283 523 205 523 205 524 283 524 284 524 205 525 284 525 213 525 213 526 284 526 285 526 213 527 285 527 261 527 261 528 285 528 286 528 261 529 286 529 214 529 214 530 286 530 262 530 214 531 262 531 215 531 215 532 262 532 282 532 215 533 282 533 263 533 263 534 282 534 265 534 263 535 265 535 264 535 264 536 265 536 266 536 264 537 266 537 267 537 267 538 266 538 268 538 267 539 268 539 207 539 207 540 268 540 269 540 207 541 269 541 208 541 208 542 269 542 271 542 208 543 271 543 270 543 271 544 280 544 272 544 272 545 280 545 273 545 272 546 273 546 247 546 247 547 273 547 275 547 247 548 275 548 274 548 274 549 275 549 276 549 274 550 276 550 250 550 250 551 276 551 277 551 250 552 277 552 251 552 251 553 277 553 278 553 251 554 278 554 252 554 252 555 278 555 279 555 271 556 269 556 280 556 280 557 269 557 268 557 280 558 268 558 281 558 281 559 268 559 266 559 281 560 266 560 260 560 260 561 266 561 265 561 260 562 265 562 283 562 283 563 265 563 282 563 283 564 282 564 284 564 284 565 282 565 262 565 284 566 262 566 285 566 285 567 262 567 286 567 193 568 287 568 188 568 188 569 287 569 224 569 188 570 224 570 198 570 198 571 224 571 197 571 227 572 288 572 226 572 226 573 288 573 204 573</p>\n                </triangles>\n            </mesh>\n        </geometry>\n    </library_geometries>\n    <library_visual_scenes>\n        <visual_scene id=\"VisualSceneNode\" name=\"VisualScene\">\n            <node id=\"node\" name=\"node\">\n                <instance_geometry url=\"#shape0-lib\">\n                    <bind_material>\n                        <technique_common/>\n                    </bind_material>\n                </instance_geometry>\n            </node>\n        </visual_scene>\n    </library_visual_scenes>\n    <scene>\n        <instance_visual_scene url=\"#VisualSceneNode\"/>\n    </scene>\n</COLLADA>\n"
  },
  {
    "path": "agvs_description/meshes/side_wheel_agvs.dae",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<COLLADA xmlns=\"http://www.collada.org/2005/11/COLLADASchema\" version=\"1.4.1\">\n    <asset>\n        <contributor>\n            <author>VCGLab</author>\n            <authoring_tool>VCGLib | MeshLab</authoring_tool>\n        </contributor>\n        <up_axis>Y_UP</up_axis>\n        <created>Wed Feb 26 13:37:49 2014</created>\n        <modified>Wed Feb 26 13:37:49 2014</modified>\n    </asset>\n    <library_images/>\n    <library_materials/>\n    <library_effects/>\n    <library_geometries>\n        <geometry id=\"shape0-lib\" name=\"shape0\">\n            <mesh>\n                <source id=\"shape0-lib-positions\" name=\"position\">\n                    <float_array id=\"shape0-lib-positions-array\" count=\"246\">-0.0112288 -0.01 0.0690935 -0.0221668 -0.01 0.0663975 -0.0167521 -0.01 -0.0679659 -0.0274377 -0.01 -0.0643986 -0.0325306 -0.01 0.0619819 -0.042052 -0.01 0.055961 -0.0464186 -0.01 -0.0523958 -0.0504842 -0.01 0.0484907 -0.0542223 -0.01 -0.0442712 -0.0606218 -0.01 -0.035 -0.0632415 -0.01 0.0300085 -0.0672363 -0.01 0.0194752 -0.00563266 -0.01 -0.069773 8.57253e-18 -0.01 -0.07 0 -0.01 0.07 0.00563266 -0.01 -0.069773 0.0167521 -0.01 -0.0679659 0.0221668 -0.01 0.0663975 0.0274377 -0.01 -0.0643986 0.0325306 -0.01 0.0619819 0.0464186 -0.01 -0.0523958 0.0606218 -0.01 -0.035 0.0654511 -0.01 -0.0248223 0.0685853 -0.01 -0.0140018 0.0672363 -0.01 0.0194752 2.57176e-17 -0.01 -0.07 8.57253e-18 0.01 -0.07 -0.00563266 0.01 -0.069773 0.00563266 0.01 -0.069773 0.0374126 -0.01 -0.0591633 0.0374126 0.01 -0.0591633 0.0464186 0.01 -0.0523958 0.0542223 -0.01 -0.0442712 0.0542223 0.01 -0.0442712 0.0654511 0.01 -0.0248223 0.0699432 0.01 -0.00281862 0.0699432 -0.01 -0.00281862 0.0694896 -0.01 0.00843757 0.0672363 0.01 0.0194752 0.0632415 -0.01 0.0300085 0.0576089 -0.01 0.0397645 0.0504842 -0.01 0.0484907 0.0504842 0.01 0.0484907 0.042052 0.01 0.055961 0.042052 -0.01 0.055961 0.0221668 0.01 0.0663975 0.0112288 -0.01 0.0690935 0.0112288 0.01 0.0690935 0 0.01 0.07 -0.0112288 0.01 0.0690935 -0.0325306 0.01 0.0619819 -0.0504842 0.01 0.0484907 -0.0576089 -0.01 0.0397645 -0.0632415 0.01 0.0300085 -0.0694896 -0.01 0.00843757 -0.0694896 0.01 0.00843757 -0.0699432 0.01 -0.00281862 -0.0699432 -0.01 -0.00281862 -0.0685853 -0.01 -0.0140018 -0.0654511 0.01 -0.0248223 -0.0654511 -0.01 -0.0248223 -0.0606218 0.01 -0.035 -0.0374126 0.01 -0.0591633 -0.0374126 -0.01 -0.0591633 -0.0274377 0.01 -0.0643986 -0.0167521 0.01 -0.0679659 0.0694896 0.01 0.00843757 0.0685853 0.01 -0.0140018 0.0632415 0.01 0.0300085 0.0606218 0.01 -0.035 0.0576089 0.01 0.0397645 0.0325306 0.01 0.0619819 0.0274377 0.01 -0.0643986 0.0167521 0.01 -0.0679659 2.57176e-17 0.01 -0.07 -0.0672363 0.01 0.0194752 -0.0464186 0.01 -0.0523958 -0.0542223 0.01 -0.0442712 -0.0685853 0.01 -0.0140018 -0.0576089 0.01 0.0397645 -0.042052 0.01 0.055961 -0.0221668 0.01 0.0663975</float_array>\n                    <technique_common>\n                        <accessor count=\"82\" source=\"#shape0-lib-positions-array\" stride=\"3\">\n                            <param name=\"X\" type=\"float\"/>\n                            <param name=\"Y\" type=\"float\"/>\n                            <param name=\"Z\" type=\"float\"/>\n                        </accessor>\n                    </technique_common>\n                </source>\n                <source id=\"shape0-lib-normals\" name=\"normal\">\n                    <float_array id=\"shape0-lib-normals-array\" count=\"468\">0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0.0402661 0 -0.999189 -0.0402661 -3.45182e-17 -0.999189 0.0402661 0 -0.999189 0.160411 0 -0.98705 0.160411 0 -0.98705 0.316667 0 -0.948537 0.316667 0 -0.948537 0.464723 0 -0.885456 0.464723 0 -0.885456 0.600742 0 -0.799443 0.600742 0 -0.799443 0.721202 0 -0.692724 0.721202 0 -0.692724 0.822984 0 -0.568065 0.822984 0 -0.568065 0.90345 0 -0.428693 0.90345 0 -0.428693 0.960518 0 -0.278217 0.960518 0 -0.278217 0.992709 0 -0.120537 0.992709 0 -0.120537 0.999189 0 0.0402657 0.999189 0 0.0402657 0.979791 0 0.200026 0.979791 0 0.200026 0.935016 0 0.354604 0.935016 0 0.354604 0.866025 0 0.5 0.866025 0 0.5 0.774605 0 0.632445 0.774605 0 0.632445 0.663123 0 0.748511 0.663123 0 0.748511 0.534466 0 0.84519 0.534466 0 0.84519 0.391967 0 0.91998 0.391967 0 0.91998 0.239316 0 0.970942 0.239316 0 0.970942 0.0804666 0 0.996757 0.0804666 0 0.996757 -0.0804666 0 0.996757 -0.0804666 0 0.996757 -0.239316 0 0.970942 -0.239316 0 0.970942 -0.391967 0 0.91998 -0.391967 0 0.91998 -0.534466 0 0.84519 -0.534466 0 0.84519 -0.663123 0 0.748511 -0.663123 0 0.748511 -0.774605 0 0.632445 -0.774605 0 0.632445 -0.866025 0 0.5 -0.866025 0 0.5 -0.935016 0 0.354604 -0.935016 0 0.354604 -0.979791 0 0.200026 -0.979791 0 0.200026 -0.999189 0 0.0402657 -0.999189 0 0.0402657 -0.992709 0 -0.120537 -0.992709 0 -0.120537 -0.960518 0 -0.278217 -0.960518 0 -0.278217 -0.90345 0 -0.428693 -0.90345 0 -0.428693 -0.822984 0 -0.568065 -0.822984 0 -0.568065 -0.721202 0 -0.692724 -0.721202 0 -0.692724 -0.600742 0 -0.799443 -0.600742 0 -0.799443 -0.464723 0 -0.885456 -0.464723 0 -0.885456 -0.316667 0 -0.948537 -0.316667 0 -0.948537 -0.160411 0 -0.98705 -0.160411 0 -0.98705 -0.0402661 0 -0.999189 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0</float_array>\n                    <technique_common>\n                        <accessor count=\"156\" source=\"#shape0-lib-normals-array\" stride=\"3\">\n                            <param name=\"X\" type=\"float\"/>\n                            <param name=\"Y\" type=\"float\"/>\n                            <param name=\"Z\" type=\"float\"/>\n                        </accessor>\n                    </technique_common>\n                </source>\n                <vertices id=\"shape0-lib-vertices\">\n                    <input semantic=\"POSITION\" source=\"#shape0-lib-positions\"/>\n                </vertices>\n                <triangles count=\"156\">\n                    <input offset=\"0\" semantic=\"VERTEX\" source=\"#shape0-lib-vertices\"/>\n                    <input offset=\"1\" semantic=\"NORMAL\" source=\"#shape0-lib-normals\"/>\n                    <p>12 0 14 0 0 0 12 1 0 1 2 1 2 2 0 2 1 2 2 3 1 3 3 3 3 4 1 4 4 4 3 5 4 5 63 5 63 6 4 6 5 6 63 7 5 7 6 7 6 8 5 8 7 8 6 9 7 9 8 9 8 10 7 10 52 10 8 11 52 11 9 11 9 12 52 12 10 12 9 13 10 13 60 13 60 14 10 14 11 14 60 15 11 15 58 15 58 16 11 16 54 16 58 17 54 17 57 17 12 18 13 18 14 18 14 19 13 19 15 19 14 20 15 20 16 20 19 21 17 21 46 21 18 22 19 22 16 22 16 23 19 23 46 23 16 24 46 24 14 24 18 25 29 25 19 25 19 26 29 26 20 26 19 27 20 27 32 27 32 28 21 28 19 28 19 29 21 29 22 29 19 30 22 30 23 30 23 31 36 31 37 31 23 32 37 32 19 32 19 33 37 33 24 33 19 34 24 34 39 34 39 35 40 35 19 35 19 36 40 36 41 36 19 37 41 37 44 37 15 38 25 38 26 38 26 39 25 39 27 39 26 40 28 40 15 40 15 41 28 41 73 41 15 42 73 42 16 42 16 43 73 43 72 43 16 44 72 44 18 44 18 45 72 45 30 45 18 46 30 46 29 46 29 47 30 47 31 47 29 48 31 48 20 48 20 49 31 49 33 49 20 50 33 50 32 50 32 51 33 51 69 51 32 52 69 52 21 52 21 53 69 53 34 53 21 54 34 54 22 54 22 55 34 55 67 55 22 56 67 56 23 56 23 57 67 57 35 57 23 58 35 58 36 58 36 59 35 59 66 59 36 60 66 60 37 60 37 61 66 61 38 61 37 62 38 62 24 62 24 63 38 63 68 63 24 64 68 64 39 64 39 65 68 65 70 65 39 66 70 66 40 66 40 67 70 67 42 67 40 68 42 68 41 68 41 69 42 69 43 69 41 70 43 70 44 70 44 71 43 71 71 71 44 72 71 72 19 72 19 73 71 73 45 73 19 74 45 74 17 74 17 75 45 75 47 75 17 76 47 76 46 76 46 77 47 77 48 77 46 78 48 78 14 78 14 79 48 79 49 79 14 80 49 80 0 80 0 81 49 81 81 81 0 82 81 82 1 82 1 83 81 83 50 83 1 84 50 84 4 84 4 85 50 85 80 85 4 86 80 86 5 86 5 87 80 87 51 87 5 88 51 88 7 88 7 89 51 89 79 89 7 90 79 90 52 90 52 91 79 91 53 91 52 92 53 92 10 92 10 93 53 93 75 93 10 94 75 94 11 94 11 95 75 95 55 95 11 96 55 96 54 96 54 97 55 97 56 97 54 98 56 98 57 98 57 99 56 99 78 99 57 100 78 100 58 100 58 101 78 101 59 101 58 102 59 102 60 102 60 103 59 103 61 103 60 104 61 104 9 104 9 105 61 105 77 105 9 106 77 106 8 106 8 107 77 107 76 107 8 108 76 108 6 108 6 109 76 109 62 109 6 110 62 110 63 110 63 111 62 111 64 111 63 112 64 112 3 112 3 113 64 113 65 113 3 114 65 114 2 114 2 115 65 115 27 115 2 116 27 116 12 116 12 117 27 117 25 117 66 118 35 118 67 118 66 119 67 119 38 119 38 120 67 120 34 120 38 121 34 121 68 121 68 122 34 122 69 122 68 123 69 123 70 123 70 124 69 124 33 124 70 125 33 125 42 125 42 126 33 126 31 126 42 127 31 127 43 127 43 128 31 128 30 128 43 129 30 129 71 129 71 130 30 130 72 130 71 131 72 131 45 131 45 132 72 132 73 132 45 133 73 133 47 133 47 134 73 134 28 134 47 135 28 135 48 135 48 136 28 136 74 136 48 137 74 137 27 137 64 138 62 138 75 138 75 139 62 139 76 139 75 140 76 140 77 140 59 141 78 141 56 141 75 142 53 142 64 142 64 143 53 143 79 143 64 144 79 144 51 144 77 145 61 145 75 145 75 146 61 146 59 146 75 147 59 147 55 147 55 148 59 148 56 148 51 149 80 149 64 149 64 150 80 150 50 150 64 151 50 151 81 151 27 152 65 152 48 152 48 153 65 153 64 153 48 154 64 154 49 154 49 155 64 155 81 155</p>\n                </triangles>\n            </mesh>\n        </geometry>\n    </library_geometries>\n    <library_visual_scenes>\n        <visual_scene id=\"VisualSceneNode\" name=\"VisualScene\">\n            <node id=\"node\" name=\"node\">\n                <instance_geometry url=\"#shape0-lib\">\n                    <bind_material>\n                        <technique_common/>\n                    </bind_material>\n                </instance_geometry>\n            </node>\n        </visual_scene>\n    </library_visual_scenes>\n    <scene>\n        <instance_visual_scene url=\"#VisualSceneNode\"/>\n    </scene>\n</COLLADA>\n"
  },
  {
    "path": "agvs_description/package.xml",
    "content": "<?xml version=\"1.0\"?>\n<package>\n  <name>agvs_description</name>\n  <version>0.1.0</version>\n  <description>The agvs_description package. Robot description. Urdf and mesh files.</description>\n\n  <maintainer email=\"rguzman@robotnik.es\">Roberto Guzmán</maintainer>\n  <maintainer email=\"rnavarro@robotnik.es\">Román Navarro</maintainer>\n\n  <license>BSD</license>\n\n  <url type=\"website\">http://wiki.ros.org/agvs_description</url>\n  <url type=\"repository\">https://github.com/RobotnikAutomation/agvs</url>\n  <url type=\"bugtracker\">https://github.com/RobotnikAutomation/agvs/issues</url>\n\n  <author email=\"rnavarro@robotnik.es\">Román Navarro</author> \n  <author email=\"rguzman@robotnik.es\">Roberto Guzmán</author>\n\n\n  <buildtool_depend>catkin</buildtool_depend>\n  <build_depend>roscpp</build_depend>\n  <build_depend>std_msgs</build_depend>\n  <build_depend>std_srvs</build_depend>\n  <build_depend>tf</build_depend>\n  <run_depend>message_runtime</run_depend>\n  <run_depend>roscpp</run_depend>\n  <run_depend>std_msgs</run_depend>\n  <run_depend>std_srvs</run_depend>\n  <run_depend>tf</run_depend>\n\n\n  <export>\n\n  </export>\n</package>\n"
  },
  {
    "path": "agvs_description/urdf/agvs.gazebo",
    "content": "<?xml version=\"1.0\"?>\n<robot>\n  <!-- ros_control plugin -->\n  <gazebo>\n    <plugin name=\"ros_control\" filename=\"libgazebo_ros_control.so\">\n       <robotNamespace>/agvs</robotNamespace>\n       <controlPeriod>0.001</controlPeriod>\n\t   <robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType>\n    </plugin>\n  </gazebo>\n\n  <gazebo reference=\"base_footprint\">\n    <material>Gazebo/Green</material>\n  </gazebo>\n  \n  <gazebo reference=\"base_link\">\n    <material>Gazebo/Red</material>\n  </gazebo>\n\n  <gazebo reference=\"back_wheel\">\n    <mu1 value=\"1.0\"/> \n    <mu2 value=\"1.0\"/> \n    <fdir1 value=\"0 0 0\"/>\n    <kp value=\"1000000000.0\"/> \n    <kd value=\"1.0\" />    \n    <material>Gazebo/Grey</material>\n  </gazebo>\n\n  <gazebo reference=\"front_wheel\">\n    <mu1 value=\"1.0\"/> \n    <mu2 value=\"1.0\"/> \n    <fdir1 value=\"0 0 0\"/>\n    <kp value=\"1000000000.0\"/>\n    <kd value=\"1.0\" />    \n    <material>Gazebo/Grey</material>\n  </gazebo>\n\n  <gazebo reference=\"front_motor_wheel\">\n    <material>Gazebo/Blue</material>\n  </gazebo>\n\n  <gazebo reference=\"back_motor_wheel\">\n    <material>Gazebo/Blue</material>\n  </gazebo>\n\n  <gazebo reference=\"side_wheel_right\">\n    <mu1 value=\"1.0\"/> \n    <mu2 value=\"1.0\"/> \n    <fdir1 value=\"0 0 0\"/>\n    <!-- kp value=\"1000000.0\"/>\n    <kd value=\"1.0\" / -->    \n    <!-- value ok for 25kg robot mass -->\n    <!-- kp value=\"10000.0\"/>\n    <kd value=\"1.0\" / -->\n    <kp value=\"1000000000.0\"/>\n    <kd value=\"1.0\"/>        \n    <material>Gazebo/Grey</material>\n  </gazebo>\n\n  <gazebo reference=\"side_wheel_left\">\n    <mu1 value=\"1.0\"/> <!-- 2.0 -->\n    <mu2 value=\"1.0\"/> <!-- 0.5 -->\n    <kp value=\"1000000000.0\"/>\n    <kd value=\"1.0\"/>        \n    <fdir1 value=\"0 0 0\"/>\n    <material>Gazebo/Grey</material>\n  </gazebo>\n\n  <gazebo reference=\"elevator_link\">\n    <material>Gazebo/Grey</material>\n    <kp value=\"1000000000.0\"/>\n    <kd value=\"1.0\"/>  \n  </gazebo>\n\n  <!-- sick laser -->\n  <gazebo reference=\"laser_front\">\n    <!-- sensor type=\"gpu_ray\" name=\"head_hokuyo_sensor\" -->\n    <sensor type=\"ray\" name=\"front_sick_sensor\">\n      <pose>0 0 0 0 0 0</pose>\n      <visualize>false</visualize>\n      <update_rate>30</update_rate>\n      <ray>\n        <scan>\n          <horizontal>\n            <samples>720</samples>\n            <resolution>1</resolution>\n            <min_angle>-1.570796</min_angle>\n            <max_angle>1.570796</max_angle>\n           <!--samples>1081</samples>\n           <resolution>1</resolution>\n           <min_angle>2.35619449</min_angle> \n           <max_angle>-2.35619449</max_angle -->\n          </horizontal>\n        </scan>\n        <range>\n          <min>0.10</min>\n          <max>10.0</max>\n          <resolution>0.01</resolution>\n        </range>\n        <noise>\n          <type>gaussian</type>\n          <mean>0.0</mean>\n          <stddev>0.01</stddev>\n        </noise>\n      </ray>\n      <!-- plugin name=\"gazebo_ros_head_hokuyo_controller\" filename=\"libgazebo_ros_gpu_laser.so\" -->\n      <plugin name=\"gazebo_ros_front_sick_controller\" filename=\"libgazebo_ros_laser.so\">\n        <topicName>/scan</topicName>\n        <frameName>laser_front</frameName>\n      </plugin>\n    </sensor>\n  </gazebo>\n\n\n  <!-- sick laser -->\n  <!--gazebo reference=\"laser_back\">\n    <sensor type=\"ray\" name=\"back_sick_sensor\">\n      <pose>0 0 0 0 0 0</pose>\n      <visualize>false</visualize>\n      <update_rate>30</update_rate>\n      <ray>\n        <scan>\n          <horizontal>\n            <samples>720</samples>\n            <resolution>1</resolution>\n            <min_angle>-1.570796</min_angle>\n            <max_angle>1.570796</max_angle>\n          </horizontal>\n        </scan>\n        <range>\n          <min>0.10</min>\n          <max>10.0</max>\n          <resolution>0.01</resolution>\n        </range>\n        <noise>\n          <type>gaussian</type>\n          <mean>0.0</mean>\n          <stddev>0.01</stddev>\n        </noise>\n      </ray>\n      \n      <plugin name=\"gazebo_ros_front_sick_controller\" filename=\"libgazebo_ros_laser.so\">\n        <topicName>/scan</topicName>\n        <frameName>laser_back</frameName>\n      </plugin>\n    </sensor>\n  </gazebo-->\n\n\n\n\n\n\n\n  \n  <gazebo>\n    <plugin name=\"ros_imu\" filename=\"libgazebo_ros_imu.so\">\n       <robotNamespace>/agvs</robotNamespace>\n       <topicName>imu_data</topicName>\n\t\t<bodyName>imu_link </bodyName>\n\t\t<serviceName>/imu_service</serviceName>\n        <gaussianNoise>0.005</gaussianNoise>\t\t\n    </plugin>\n  </gazebo>\n  \n</robot>\n"
  },
  {
    "path": "agvs_description/urdf/agvs.urdf",
    "content": "<?xml version=\"1.0\" ?>\n<!-- =================================================================================== -->\n<!-- |    This document was autogenerated by xacro from agvs.urdf.xacro                | -->\n<!-- |    EDITING THIS FILE BY HAND IS NOT RECOMMENDED                                 | -->\n<!-- =================================================================================== -->\n<robot name=\"agvs\" xmlns:xacro=\"http://www.ros.org/wiki/xacro\">\n  <!-- Import all Gazebo-customization elements, including Gazebo colors -->\n  <gazebo>\n    <plugin filename=\"libgazebo_ros_control.so\" name=\"ros_control\">\n      <robotNamespace>/agvs</robotNamespace>\n      <controlPeriod>0.001</controlPeriod>\n      <robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType>\n    </plugin>\n  </gazebo>\n  <gazebo reference=\"base_footprint\">\n    <material>Gazebo/Green</material>\n  </gazebo>\n  <gazebo reference=\"base_link\">\n    <material>Gazebo/Red</material>\n  </gazebo>\n  <gazebo reference=\"back_left_wheel\">\n    <mu1 value=\"4.0\"/>\n    <!-- 2.0 -->\n    <mu2 value=\"1.0\"/>\n    <!-- 0.5 -->\n    <fdir1 value=\"1 0 0\"/>\n    <material>Gazebo/Grey</material>\n  </gazebo>\n  <gazebo reference=\"back_right_wheel\">\n    <mu1 value=\"4.0\"/>\n    <!-- 2.0 -->\n    <mu2 value=\"1.0\"/>\n    <!-- 0.5 -->\n    <fdir1 value=\"1 0 0\"/>\n    <material>Gazebo/Grey</material>\n  </gazebo>\n  <gazebo reference=\"front_left_wheel\">\n    <mu1 value=\"4.0\"/>\n    <!-- 2.0 -->\n    <mu2 value=\"1.0\"/>\n    <!-- 0.5 -->\n    <fdir1 value=\"1 0 0\"/>\n    <material>Gazebo/Grey</material>\n  </gazebo>\n  <gazebo reference=\"front_right_wheel\">\n    <mu1 value=\"4.0\"/>\n    <!-- 2.0 -->\n    <mu2 value=\"1.0\"/>\n    <!-- 0.5 -->\n    <fdir1 value=\"1 0 0\"/>\n    <material>Gazebo/Grey</material>\n  </gazebo>\n  <gazebo reference=\"camera_tilt_link\">\n    <mu1>0.2</mu1>\n    <mu2>0.2</mu2>\n    <material>Gazebo/Red</material>\n    <sensor name=\"camera1\" type=\"camera\">\n      <update_rate>30.0</update_rate>\n      <camera name=\"head\">\n        <horizontal_fov>1.3962634</horizontal_fov>\n        <image>\n          <width>800</width>\n          <height>800</height>\n          <format>R8G8B8</format>\n        </image>\n        <clip>\n          <near>0.02</near>\n          <far>300</far>\n        </clip>\n        <noise>\n          <type>gaussian</type>\n          <!-- Noise is sampled independently per pixel on each frame.  \n               That pixel's noise value is added to each of its color\n               channels, which at that point lie in the range [0,1]. -->\n          <mean>0.0</mean>\n          <stddev>0.007</stddev>\n        </noise>\n      </camera>\n      <plugin filename=\"libgazebo_ros_camera.so\" name=\"camera_controller\">\n        <alwaysOn>true</alwaysOn>\n        <updateRate>0.0</updateRate>\n        <cameraName>/agvs/camera1</cameraName>\n        <imageTopicName>image_raw</imageTopicName>\n        <cameraInfoTopicName>camera_info</cameraInfoTopicName>\n        <frameName>camera_tilt_link</frameName>\n        <hackBaseline>0.07</hackBaseline>\n        <distortionK1>0.0</distortionK1>\n        <distortionK2>0.0</distortionK2>\n        <distortionK3>0.0</distortionK3>\n        <distortionT1>0.0</distortionT1>\n        <distortionT2>0.0</distortionT2>\n      </plugin>\n    </sensor>\n  </gazebo>\n  <gazebo reference=\"hokuyo_laser_link\">\n    <!-- sensor type=\"gpu_ray\" name=\"head_hokuyo_sensor\" -->\n    <sensor name=\"head_hokuyo_sensor\" type=\"ray\">\n      <pose>0 0 0 0 0 0</pose>\n      <visualize>false</visualize>\n      <update_rate>30</update_rate>\n      <ray>\n        <scan>\n          <horizontal>\n            <!-- samples>720</samples>\n            <resolution>1</resolution>\n            <min_angle>-1.570796</min_angle>\n            <max_angle>1.570796</max_angle -->\n            <samples>1081</samples>\n            <resolution>1</resolution>\n            <min_angle>2.35619449</min_angle>\n            <!-- +/-135 deg -->\n            <max_angle>-2.35619449</max_angle>\n          </horizontal>\n        </scan>\n        <range>\n          <min>0.10</min>\n          <max>30.0</max>\n          <resolution>0.01</resolution>\n        </range>\n        <noise>\n          <type>gaussian</type>\n          <mean>0.0</mean>\n          <stddev>0.01</stddev>\n        </noise>\n      </ray>\n      <!-- plugin name=\"gazebo_ros_head_hokuyo_controller\" filename=\"libgazebo_ros_gpu_laser.so\" -->\n      <plugin filename=\"libgazebo_ros_laser.so\" name=\"gazebo_ros_head_hokuyo_controller\">\n        <topicName>/scan</topicName>\n        <frameName>hokuyo_laser_link</frameName>\n      </plugin>\n    </sensor>\n  </gazebo>\n  <gazebo>\n    <plugin filename=\"libgazebo_ros_imu.so\" name=\"ros_imu\">\n      <robotNamespace>/agvs</robotNamespace>\n      <topicName>imu_data</topicName>\n      <bodyName>imu_link </bodyName>\n      <serviceName>/imu_service</serviceName>\n      <gaussianNoise>0.005</gaussianNoise>\n    </plugin>\n  </gazebo>\n  <!-- Robot mechanical and motor parameters -->\n  <!-- x,y,z in base_footprint CS -->\n  <!-- Used for fixing robot to Gazebo 'base_link' -->\n  <!-- link name=\"world\"/>\n  <joint name=\"fwf\" type=\"planar\">\n    <parent link=\"world\"/>\n    <child link=\"base_footprint\"/>\n  </joint -->\n  <!-- BASE FOOTPRINT -->\n  <!-- base_footprint is a fictitious link(frame) that is on the ground right below base_link origin,\n             navigation stack depends on this frame -->\n  <link name=\"base_footprint\">\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <box size=\"0.001 0.001 0.001\"/>\n      </geometry>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <box size=\"0.001 0.001 0.001\"/>\n      </geometry>\n    </collision>\n  </link>\n  <joint name=\"base_footprint_joint\" type=\"fixed\">\n    <!-- NB While you would think this would make it go up, it is oddly reversed.\n      This moves the joint to 0,0,0 where we want it for rviz, etc. -->\n    <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n    <parent link=\"base_footprint\"/>\n    <child link=\"base_link\"/>\n  </joint>\n  <!-- BASE_LINK (RED) -->\n  <link name=\"base_link\">\n    <inertial>\n      <mass value=\"25.0\"/>\n      <origin xyz=\"0 0 0\"/>\n      <inertia ixx=\"1.391\" ixy=\"0.004\" ixz=\"0.0\" iyy=\"6.853\" iyz=\"0.0\" izz=\"6.125\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://agvs_description/meshes/chassis_agvs.dae\"/>\n      </geometry>\n      <material name=\"red\">\n        <color rgba=\"1.0 0.1 0.1 1\"/>\n      </material>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0 \" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://agvs_description/meshes/chassis_agvs.dae\"/>\n      </geometry>\n    </collision>\n  </link>\n  <!-- BACK MOTOR WHEEL (GREY) -->\n  <link name=\"back_motor_wheel\">\n    <inertial>\n      <mass value=\"1.250\"/>\n      <origin xyz=\"0 0 0\"/>\n      <inertia ixx=\"0.0109375\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"0.021125\" iyz=\"0.0\" izz=\"0.0109375\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://agvs_description/meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n      <material name=\"grey\">\n        <color rgba=\"0.5 0.5 0.5 1\"/>\n      </material>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://agvs_description/meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n    </collision>\n  </link>\n  <joint name=\"joint_back_motor_wheel\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"back_motor_wheel\"/>\n    <origin rpy=\"0 0 0\" xyz=\"-0.479 0.0 0.11\"/>\n    <axis rpy=\"0 0 0\" xyz=\"0 0 1\"/>\n    <limit effort=\"100.0\" velocity=\"100.0\"/>\n    <joint_properties damping=\"0.0\" friction=\"{wheel_joint_friction}\"/>\n  </joint>\n  <transmission name=\"joint_bmw_trans\">\n    <type>transmission_interface/SimpleTransmission</type>\n    <joint name=\"joint_back_motor_wheel\"/>\n    <actuator name=\"joint_bmw_motor\">\n      <hardwareInterface>EffortJointInterface</hardwareInterface>\n      <mechanicalReduction>1.0</mechanicalReduction>\n    </actuator>\n  </transmission>\n  <!-- BACK WHEEL (GREY) -->\n  <link name=\"back_wheel\">\n    <inertial>\n      <mass value=\"1.250\"/>\n      <origin xyz=\"0 0 0\"/>\n      <inertia ixx=\"0.0109375\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"0.021125\" iyz=\"0.0\" izz=\"0.0109375\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://agvs_description/meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n      <material name=\"grey\">\n        <color rgba=\"0.5 0.5 0.5 1\"/>\n      </material>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://agvs_description/meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n    </collision>\n  </link>\n  <joint name=\"joint_back_wheel\" type=\"continuous\">\n    <parent link=\"back_motor_wheel\"/>\n    <child link=\"back_wheel\"/>\n    <origin rpy=\"0 0 3.1416\" xyz=\"0 0 0\"/>\n    <axis rpy=\"0 0 0\" xyz=\"0 1 0\"/>\n    <limit effort=\"100.0\" velocity=\"100.0\"/>\n    <joint_properties damping=\"0.0\" friction=\"{wheel_joint_friction}\"/>\n  </joint>\n  <transmission name=\"joint_bw_trans\">\n    <type>transmission_interface/SimpleTransmission</type>\n    <joint name=\"joint_back_wheel\"/>\n    <actuator name=\"joint_bw_motor\">\n      <hardwareInterface>EffortJointInterface</hardwareInterface>\n      <mechanicalReduction>1.0</mechanicalReduction>\n    </actuator>\n  </transmission>\n  <!-- FRONT MOTOR WHEEL (GREY) -->\n  <link name=\"front_motor_wheel\">\n    <inertial>\n      <mass value=\"1.250\"/>\n      <origin xyz=\"0 0 0\"/>\n      <inertia ixx=\"0.0109375\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"0.021125\" iyz=\"0.0\" izz=\"0.0109375\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://agvs_description/meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n      <material name=\"grey\">\n        <color rgba=\"0.5 0.5 0.5 1\"/>\n      </material>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://agvs_description/meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n    </collision>\n  </link>\n  <joint name=\"joint_front_motor_wheel\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"front_motor_wheel\"/>\n    <origin rpy=\"0 0 0\" xyz=\"0.479 0.0 0.11\"/>\n    <axis rpy=\"0 0 0\" xyz=\"0 0 1\"/>\n    <limit effort=\"100.0\" velocity=\"100.0\"/>\n    <joint_properties damping=\"0.0\" friction=\"{wheel_joint_friction}\"/>\n  </joint>\n  <transmission name=\"joint_fmw_trans\">\n    <type>transmission_interface/SimpleTransmission</type>\n    <joint name=\"joint_front_motor_wheel\"/>\n    <actuator name=\"joint_fmw_motor\">\n      <hardwareInterface>EffortJointInterface</hardwareInterface>\n      <!-- hardwareInterface>VelocityJointInterface</hardwareInterface -->\n      <mechanicalReduction>1.0</mechanicalReduction>\n      <!-- motorTorqueConstant>1</motorTorqueConstant -->\n    </actuator>\n  </transmission>\n  <!-- FRONT WHEEL (GREY) -->\n  <link name=\"front_wheel\">\n    <inertial>\n      <mass value=\"1.250\"/>\n      <origin xyz=\"0 0 0\"/>\n      <inertia ixx=\"0.0109375\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"0.021125\" iyz=\"0.0\" izz=\"0.0109375\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://agvs_description/meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n      <material name=\"grey\">\n        <color rgba=\"0.5 0.5 0.5 1\"/>\n      </material>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://agvs_description/meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n    </collision>\n  </link>\n  <joint name=\"joint_front_wheel\" type=\"continuous\">\n    <parent link=\"front_motor_wheel\"/>\n    <child link=\"front_wheel\"/>\n    <origin rpy=\"0 0 3.1416\" xyz=\"0 0 0\"/>\n    <axis rpy=\"0 0 0\" xyz=\"0 1 0\"/>\n    <limit effort=\"100.0\" velocity=\"100.0\"/>\n    <joint_properties damping=\"0.0\" friction=\"{wheel_joint_friction}\"/>\n  </joint>\n  <transmission name=\"joint_fw_trans\">\n    <type>transmission_interface/SimpleTransmission</type>\n    <joint name=\"joint_front_wheel\"/>\n    <actuator name=\"joint_fw_motor\">\n      <hardwareInterface>EffortJointInterface</hardwareInterface>\n      <mechanicalReduction>1.0</mechanicalReduction>\n    </actuator>\n  </transmission>\n  <!-- SIDE WHEEL LEFT (GREY) -->\n  <link name=\"side_wheel_left\">\n    <inertial>\n      <mass value=\"1.250\"/>\n      <origin xyz=\"0 0 0\"/>\n      <inertia ixx=\"0.0109375\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"0.021125\" iyz=\"0.0\" izz=\"0.0109375\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://agvs_description/meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n      <material name=\"grey\">\n        <color rgba=\"0.5 0.5 0.5 1\"/>\n      </material>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://agvs_description/meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n    </collision>\n  </link>\n  <joint name=\"joint_side_wheel_left\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"side_wheel_left\"/>\n    <origin rpy=\"0 0 0\" xyz=\"0 0.267 0.07\"/>\n    <axis rpy=\"0 0 0\" xyz=\"0 1 0\"/>\n    <limit effort=\"100.0\" velocity=\"100.0\"/>\n    <joint_properties damping=\"0.0\" friction=\"{wheel_joint_friction}\"/>\n  </joint>\n  <!-- transmission name=\"joint_swl_trans\">\n\t <type>transmission_interface/SimpleTransmission</type>\n     <joint name=\"joint_side_wheel_left\" />     \n     <actuator name=\"joint_bw_motor\">\n\t   <hardwareInterface>EffortJointInterface</hardwareInterface>\n       <mechanicalReduction>${wheel_mechanical_reduction}</mechanicalReduction>\n     </actuator>\n  </transmission -->\n  <!-- SIDE WHEEL RIGHT (GREY) -->\n  <link name=\"side_wheel_right\">\n    <inertial>\n      <mass value=\"1.250\"/>\n      <origin xyz=\"0 0 0\"/>\n      <inertia ixx=\"0.0109375\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"0.021125\" iyz=\"0.0\" izz=\"0.0109375\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://agvs_description/meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n      <material name=\"grey\">\n        <color rgba=\"0.5 0.5 0.5 1\"/>\n      </material>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://agvs_description/meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n    </collision>\n  </link>\n  <joint name=\"joint_side_wheel_right\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"side_wheel_right\"/>\n    <origin rpy=\"0 0 0\" xyz=\"0 -0.267 0.07\"/>\n    <axis rpy=\"0 0 0\" xyz=\"0 1 0\"/>\n    <limit effort=\"100.0\" velocity=\"100.0\"/>\n    <joint_properties damping=\"0.0\" friction=\"{wheel_joint_friction}\"/>\n  </joint>\n  <!-- SICK SENSORS -->\n  <!-- Sick Laser Front -->\n  <joint name=\"joint_laser_front\" type=\"fixed\">\n    <axis xyz=\"0 1 0\"/>\n    <origin xyz=\"0.772 0.0 0.140\"/>\n    <parent link=\"base_link\"/>\n    <child link=\"laser_front\"/>\n  </joint>\n  <link name=\"laser_front\">\n  </link>\n  <!-- Sick Laser Back -->\n  <joint name=\"joint_laser_back\" type=\"fixed\">\n    <axis xyz=\"0 1 0\"/>\n    <origin rpy=\"0 0 3.1416\" xyz=\"-0.772 0.0 0.140\"/>\n    <parent link=\"base_link\"/>\n    <child link=\"laser_back\"/>\n  </joint>\n  <link name=\"laser_back\">\n  </link>\n  <!-- IMU SENSOR -->\n  <joint name=\"imu_joint\" type=\"fixed\">\n    <axis xyz=\"1 0 0\"/>\n    <!-- 0 1 0 -->\n    <origin xyz=\"0 0 0.2825\"/>\n    <parent link=\"base_link\"/>\n    <child link=\"imu_link\"/>\n  </joint>\n  <link name=\"imu_link\">\n    <inertial>\n      <mass value=\"0.001\"/>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <inertia ixx=\"0.0001\" ixy=\"0\" ixz=\"0\" iyy=\"0.000001\" iyz=\"0\" izz=\"0.0001\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <box size=\"0.001 0.001 0.001\"/>\n      </geometry>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <box size=\".001 .001 .001\"/>\n      </geometry>\n    </collision>\n  </link>\n</robot>\n\n"
  },
  {
    "path": "agvs_description/urdf/agvs.urdf.xacro",
    "content": "<?xml version=\"1.0\"?>\n<robot name=\"agvs\" xmlns:xacro=\"http://www.ros.org/wiki/xacro\"> \n\n  <!-- Import all Gazebo-customization elements, including Gazebo colors -->\n  <xacro:include filename=\"$(find agvs_description)/urdf/agvs.gazebo\" />\n\n  <!-- Robot mechanical and motor parameters -->\n  <xacro:property name=\"PI\" value=\"3.1415926535897931\"/>\n  <xacro:property name=\"wheel_offset_x\" value=\"0.479\" />    <!-- x,y,z in base_footprint CS -->\n  <xacro:property name=\"wheel_offset_y\" value=\"0.0\" /> \n  <xacro:property name=\"wheel_offset_z\" value=\"0.110\" /> \n  <xacro:property name=\"wheel_joint_damping\" value=\"1.0\" />\n  <xacro:property name=\"wheel_joint_friction\" value=\"1.0\" />\n  <xacro:property name=\"wheel_joint_effort_limit\" value=\"1000.0\" />\n  <xacro:property name=\"wheel_joint_velocity_limit\" value=\"2000.0\" />\n  <xacro:property name=\"wheel_mechanical_reduction\" value=\"1.0\" />\n  <xacro:property name=\"motor_wheel_offset_z\" value=\"0.110\" /> \n  <xacro:property name=\"side_wheel_offset_y\" value=\"0.267\" /> \n  <xacro:property name=\"side_wheel_offset_z\" value=\"0.070\" />\n  <xacro:property name=\"side_wheel_joint_damping\" value=\"1.0\" />\n  <xacro:property name=\"side_wheel_joint_friction\" value=\"1.0\" />\n  <!-- xacro:property name=\"side_wheel_offset_z\" value=\"0.075\" / -->  \n\n  <xacro:property name=\"steer_joint_damping\" value=\"2.0\" />\n  <xacro:property name=\"steer_joint_friction\" value=\"1.0\" />\n  <xacro:property name=\"steer_joint_effort_limit\" value=\"100.0\" />\n  <xacro:property name=\"steer_joint_velocity_limit\" value=\"100.0\" />\n  <xacro:property name=\"motor_wheel_mechanical_reduction\" value=\"100.0\" />\n\n\n  <!-- Used for fixing robot to Gazebo 'base_link' -->\n  <!-- link name=\"world\"/>\n  <joint name=\"fwf\" type=\"planar\">\n    <parent link=\"world\"/>\n    <child link=\"base_footprint\"/>\n  </joint -->\n\n  <!-- BASE FOOTPRINT -->\n  <!-- base_footprint is a fictitious link(frame) that is on the ground right below base_link origin,\n             navigation stack depends on this frame -->\n  <link name=\"base_footprint\">\n      <visual>\n          <origin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n          <geometry>\n             <box size=\"0.001 0.001 0.001\" />\n          </geometry>\n      </visual>\n\n      <!--collision>\n          <origin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n          <geometry>\n            <box size=\"0.001 0.001 0.001\" />\n         </geometry>\n     </collision -->\n  </link>\n\n  <joint name=\"base_footprint_joint\" type=\"fixed\">\n     <!-- NB While you would think this would make it go up, it is oddly reversed.\n      This moves the joint to 0,0,0 where we want it for rviz, etc. -->\n     <!-- origin xyz=\"0 0 -0.005\" rpy=\"0 0 0\" / -->\n     <origin xyz=\"0 0 -0.005\" rpy=\"0 0 0\" />\n     <parent link=\"base_footprint\"/>\n     <child link=\"base_link\" />\n  </joint>\n\n  <!-- BASE_LINK (RED) -->\n  <link name=\"base_link\">\n    <inertial>\n      <!-- mass value=\"25.0\" />\n      <origin xyz=\"0 0 0\" />\n      <inertia  ixx=\"1.391\" ixy=\"0.004\"  ixz=\"0.0\"  iyy=\"6.853\"  iyz=\"0.0\"  izz=\"6.125\" / -->\n      <mass value=\"225.0\" />\n      <origin xyz=\"0 0 0\" />\n      <inertia  ixx=\"5.0\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"5.0\"  iyz=\"0.0\"  izz=\"5.0\" />      \n    </inertial>\n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n       <geometry>\n\t     <mesh filename=\"package://agvs_description/meshes/chassis_agvs.dae\"/>\n       </geometry>       \n\t   <material name=\"red\">\n\t     <color rgba=\"0.5 0.1 0.1 1\"/>\n       </material>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0 \" />\n       <geometry>\n         <mesh filename=\"package://agvs_description/meshes/chassis_agvs.dae\"/>\n       </geometry>\n    </collision>     \n  </link>\n\n  <!-- BACK MOTOR WHEEL (GREY) -->\n  <link name=\"back_motor_wheel\">\n    <inertial>\n      <mass value=\"10\" />\n      <origin xyz=\"0 0 0\" />\n      <inertia  ixx=\"0.01\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"0.01\"  iyz=\"0.0\"  izz=\"0.01\" />\n    </inertial>    \n  \n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t      <mesh filename=\"package://agvs_description/meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n\t   <material name=\"grey\">\n\t   <color rgba=\"0.5 0.5 0.5 1\"/>\n       </material>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n       <geometry>\n\t       <mesh filename=\"package://agvs_description/meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n    </collision>\n  </link>\n\n  <joint name=\"joint_back_motor_wheel\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"back_motor_wheel\"/>\n    <origin xyz=\"-${wheel_offset_x} ${wheel_offset_y} ${motor_wheel_offset_z}\" rpy=\"0 0 0\" /> \n    <axis xyz=\"0 0 1\" rpy=\"0 0 0\" />\n    <limit effort=\"${steer_joint_effort_limit}\" velocity=\"${steer_joint_velocity_limit}\" lower=\"-1.5708\" upper=\"1.5708\"/>\n    <joint_properties damping=\"${steer_joint_damping}\" friction=\"{steer_joint_friction}\"/>\n  </joint>\n  \n \n  <transmission name=\"joint_bmw_trans\">\n\t <type>transmission_interface/SimpleTransmission</type>\n     <joint name=\"joint_back_motor_wheel\" />\n     <actuator name=\"joint_bmw_motor\">\n\t    <hardwareInterface>EffortJointInterface</hardwareInterface>\t    \n        <mechanicalReduction>${motor_wheel_mechanical_reduction}</mechanicalReduction>\n     </actuator>\n  </transmission>\n\n\n  <!-- BACK WHEEL (GREY) -->\n  <link name=\"back_wheel\">\n    <inertial>\n      <mass value=\"1.250\" />\n      <origin xyz=\"0 0 0\" />\n      <inertia  ixx=\"0.0109375\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"0.021125\"  iyz=\"0.0\"  izz=\"0.0109375\" />\n    </inertial>\n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t     <mesh filename=\"package://agvs_description/meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n\t    <material name=\"grey\">\n\t\t   <color rgba=\"0.5 0.5 0.5 1\"/>\n      \t</material>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t   <mesh filename=\"package://agvs_description/meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n    </collision>\n  </link>\n\n  <joint name=\"joint_back_wheel\" type=\"continuous\">\n    <parent link=\"back_motor_wheel\"/>\n    <child link=\"back_wheel\"/>\n    <origin xyz=\"0 0 0\" rpy=\"0 0 3.1416\" /> \n    <axis xyz=\"0 1 0\" rpy=\"0 0 0\" />\n    <limit effort=\"${wheel_joint_effort_limit}\" velocity=\"${wheel_joint_velocity_limit}\"/>\n    <joint_properties damping=\"${wheel_joint_damping}\" friction=\"{wheel_joint_friction}\"/>\n  </joint>\n\n  <transmission name=\"joint_bw_trans\">\n\t <type>transmission_interface/SimpleTransmission</type>\n     <joint name=\"joint_back_wheel\" />     \n     <actuator name=\"joint_bw_motor\">\n\t   <!-- hardwareInterface>EffortJointInterface</hardwareInterface -->\n\t   <hardwareInterface>VelocityJointInterface</hardwareInterface>\n       <mechanicalReduction>${wheel_mechanical_reduction}</mechanicalReduction>\n     </actuator>\n  </transmission>\n\n  <!-- FRONT MOTOR WHEEL (GREY) -->\n  <link name=\"front_motor_wheel\">\n    <inertial>\n      <mass value=\"10.0\" />\n      <origin xyz=\"0 0 0\" />\n      <inertia  ixx=\"0.01\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"0.01\"  iyz=\"0.0\"  izz=\"0.01\" />\n    </inertial>\n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t <mesh filename=\"package://agvs_description/meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n\t<material name=\"grey\">\n\t\t<color rgba=\"0.5 0.5 0.5 1\"/>\n      \t</material>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t      <mesh filename=\"package://agvs_description/meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n    </collision>\n  </link>\n\n  <joint name=\"joint_front_motor_wheel\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"front_motor_wheel\"/>\n    <origin xyz=\"${wheel_offset_x} ${wheel_offset_y} ${motor_wheel_offset_z}\" rpy=\"0 0 0\" /> \n    <axis xyz=\"0 0 1\" rpy=\"0 0 0\" />\n    <limit effort=\"${steer_joint_effort_limit}\" velocity=\"${steer_joint_velocity_limit}\" lower=\"-1.5708\" upper=\"1.5708\"/>\n    <joint_properties damping=\"${steer_joint_damping}\" friction=\"{steer_joint_friction}\"/>\n  </joint>\n\n  <transmission name=\"joint_fmw_trans\">\n\t <type>transmission_interface/SimpleTransmission</type>\n     <joint name=\"joint_front_motor_wheel\" />\n     <actuator name=\"joint_fmw_motor\">\n\t   <hardwareInterface>EffortJointInterface</hardwareInterface>\n       <mechanicalReduction>${motor_wheel_mechanical_reduction}</mechanicalReduction>\n       <!-- motorTorqueConstant>1</motorTorqueConstant -->\n     </actuator>     \n  </transmission>\n  \n  <!-- FRONT WHEEL (GREY) -->\n  <link name=\"front_wheel\">\n    <inertial>\n      <mass value=\"1.250\" />\n      <origin xyz=\"0 0 0\" />\n      <inertia  ixx=\"0.0109375\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"0.021125\"  iyz=\"0.0\"  izz=\"0.0109375\" />\n    </inertial>\n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t <mesh filename=\"package://agvs_description/meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n\t<material name=\"grey\">\n\t\t<color rgba=\"0.5 0.5 0.5 1\"/>\n      \t</material>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t   <mesh filename=\"package://agvs_description/meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n    </collision>\n  </link>\n\n  <joint name=\"joint_front_wheel\" type=\"continuous\">\n    <parent link=\"front_motor_wheel\"/>\n    <child link=\"front_wheel\"/>\n    <origin xyz=\"0 0 0\" rpy=\"0 0 3.1416\" /> \n    <axis xyz=\"0 1 0\" rpy=\"0 0 0\" />\n    <limit effort=\"${wheel_joint_effort_limit}\" velocity=\"${wheel_joint_velocity_limit}\"/>\n    <joint_properties damping=\"${wheel_joint_damping}\" friction=\"{wheel_joint_friction}\"/>\n  </joint>\n\n  <transmission name=\"joint_fw_trans\">\n\t <type>transmission_interface/SimpleTransmission</type>\n     <joint name=\"joint_front_wheel\" />\n     <actuator name=\"joint_fw_motor\">\n\t   <!-- hardwareInterface>EffortJointInterface</hardwareInterface -->\n\t   <hardwareInterface>VelocityJointInterface</hardwareInterface>\n       <mechanicalReduction>${wheel_mechanical_reduction}</mechanicalReduction>\n     </actuator>\n  </transmission>\n  \n  \n    \n  <!-- SIDE WHEEL LEFT (GREY) -->\n  <link name=\"side_wheel_left\">\n    <inertial>\n      <mass value=\"1.250\" />\n      <origin xyz=\"0 0 0\" /> \n      <inertia  ixx=\"0.0109375\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"0.021125\"  iyz=\"0.0\"  izz=\"0.0109375\" />\n    </inertial>\n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t      <mesh filename=\"package://agvs_description/meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n\t   <material name=\"grey\">\n\t   <color rgba=\"0.5 0.5 0.5 1\"/>\n       </material>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n       <geometry>\n\t       <mesh filename=\"package://agvs_description/meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n    </collision>\n  </link>\n\n  <joint name=\"joint_side_wheel_left\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"side_wheel_left\"/>\n    <origin xyz=\"0 ${side_wheel_offset_y} ${side_wheel_offset_z}\" rpy=\"0 0 0\" /> \n    <axis xyz=\"0 1 0\" rpy=\"0 0 0\" />\n    <limit effort=\"${wheel_joint_effort_limit}\" velocity=\"${wheel_joint_velocity_limit}\"/>\n    <joint_properties damping=\"${side_wheel_joint_damping}\" friction=\"{side_wheel_joint_friction}\"/>\n  </joint>\n\n  <transmission name=\"joint_swl_trans\">\n\t <type>transmission_interface/SimpleTransmission</type>\n     <joint name=\"joint_side_wheel_left\" />     \n     <actuator name=\"joint_swl_motor\">\n\t   <hardwareInterface>EffortJointInterface</hardwareInterface>\n       <mechanicalReduction>${wheel_mechanical_reduction}</mechanicalReduction>\n     </actuator>\n  </transmission>\n\n  \n  <!-- SIDE WHEEL RIGHT (GREY) -->\n  <link name=\"side_wheel_right\">\n    <inertial>\n      <mass value=\"1.250\" />\n      <origin xyz=\"0 0 0\" /> \n      <inertia  ixx=\"0.0109375\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"0.021125\"  iyz=\"0.0\"  izz=\"0.0109375\" />\n    </inertial>\n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t      <mesh filename=\"package://agvs_description/meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n\t   <material name=\"grey\">\n\t   <color rgba=\"0.5 0.5 0.5 1\"/>\n       </material>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n       <geometry>\n\t       <mesh filename=\"package://agvs_description/meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n    </collision>\n  </link>\n\n  <joint name=\"joint_side_wheel_right\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"side_wheel_right\"/>\n    <origin xyz=\"0 -${side_wheel_offset_y} ${side_wheel_offset_z}\" rpy=\"0 0 0\" /> \n    <axis xyz=\"0 1 0\" rpy=\"0 0 0\" />\n    <limit effort=\"${wheel_joint_effort_limit}\" velocity=\"${wheel_joint_velocity_limit}\"/>\n    <joint_properties damping=\"${side_wheel_joint_damping}\" friction=\"{side_wheel_joint_friction}\"/>\n  </joint>\n  \n  <transmission name=\"joint_swr_trans\">\n\t <type>transmission_interface/SimpleTransmission</type>\n     <joint name=\"joint_side_wheel_right\" />     \n     <actuator name=\"joint_swr_motor\">\n\t   <hardwareInterface>EffortJointInterface</hardwareInterface>\n       <mechanicalReduction>${wheel_mechanical_reduction}</mechanicalReduction>\n     </actuator>\n  </transmission>\n  \n  \n  <!-- ***************************** --> \n  <link name=\"elevator_link\">\n    <inertial>\n      <mass value=\"20.0\" />\n      <origin xyz=\"0 0 0\" />\n      <inertia  ixx=\"0.2185\" ixy=\"0.0\"  ixz=\"-0.001\"  iyy=\"0.33677\"  iyz=\"0.0\"  izz=\"0.20511\" />\n    </inertial>\n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n       <geometry>\n\t   <mesh filename=\"package://agvs_description/meshes/agvs_top.dae\"/>\n       </geometry>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0 \" />\n       <geometry>\n       <mesh filename=\"package://agvs_description/meshes/agvs_top.dae\"/>\n       </geometry>\n    </collision>     \n  </link>\n\n  <joint name=\"elevator_joint\" type=\"prismatic\">\n    <parent link=\"base_link\"/>\n    <child link=\"elevator_link\"/>\n    <limit effort=\"5000.0\" velocity=\"0.01\" lower=\"0.0\" upper=\"0.050\"/>\n    <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n    <axis xyz=\"0 0 1\"/>\n  </joint>\n\n  <transmission name=\"joint_elevator_trans\">\n\t <type>transmission_interface/SimpleTransmission</type>\n     <joint name=\"elevator_joint\" />\n     <actuator name=\"elevator_motor\">\n\t\t<hardwareInterface>EffortJointInterface</hardwareInterface>\n\t\t<mechanicalReduction>1000.0</mechanicalReduction>\n\t </actuator>\n  </transmission>\n  \n  <!-- SICK SENSORS -->\n  <!-- Sick Laser Front -->\n  <joint name=\"joint_laser_front\" type=\"fixed\">\n     <axis xyz=\"0 1 0\" />\n     <origin xyz=\"0.772 0.0 0.140\"/>\n     <parent link=\"base_link\"/>\n     <child link=\"laser_front\"/>\n  </joint>\n  <link name=\"laser_front\">\n  </link>\n\n  <!-- Sick Laser Back -->\n  <joint name=\"joint_laser_back\" type=\"fixed\">\n     <axis xyz=\"0 1 0\"/>\n     <origin xyz=\"-0.772 0.0 0.140\" rpy=\"0 0 3.1416\"/>\n     <parent link=\"base_link\"/>\n     <child link=\"laser_back\"/>\n  </joint>\n  <link name=\"laser_back\">\n  </link>\n\n\n  <!-- IMU SENSOR -->\n  <joint name=\"imu_joint\" type=\"fixed\">\n      <axis xyz=\"1 0 0\"/> <!-- 0 1 0 -->\n      <origin xyz=\"0 0 0.2825\"/>\n      <parent link=\"base_link\"/>\n      <child link=\"imu_link\"/>\n  </joint>\n\n  <link name=\"imu_link\">\n      <inertial>\n        <mass value=\"0.001\"/>\n        <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n        <inertia ixx=\"0.0001\" ixy=\"0\" ixz=\"0\" iyy=\"0.000001\" iyz=\"0\" izz=\"0.0001\"/>\n      </inertial>\n      <visual>\n        <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n        <geometry>\n          <box size=\"0.001 0.001 0.001\"/>\n        </geometry>\n      </visual>\n      <collision>\n        <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n        <geometry>\n          <box size=\".001 .001 .001\"/>\n        </geometry>\n      </collision>\n  </link>\n\n</robot>\n\n"
  },
  {
    "path": "agvs_description/urdf/vrep/agvs_vrep.urdf",
    "content": "<?xml version=\"1.0\" ?>\n<!-- =================================================================================== -->\n<!-- |    This document was autogenerated by xacro from agvs_vrep.urdf.xacro           | -->\n<!-- |    EDITING THIS FILE BY HAND IS NOT RECOMMENDED                                 | -->\n<!-- =================================================================================== -->\n<robot name=\"agvs\" xmlns:xacro=\"http://www.ros.org/wiki/xacro\">\n  <!-- Robot mechanical and motor parameters -->\n  <!-- x,y,z in base_footprint CS -->\n  <!-- xacro:property name=\"side_wheel_offset_z\" value=\"0.075\" / -->\n  <!-- BASE FOOTPRINT -->\n  <!-- base_footprint is a fictitious link(frame) that is on the ground right below base_link origin,\n             navigation stack depends on this frame -->\n  <link name=\"base_footprint\">\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <box size=\"0.001 0.001 0.001\"/>\n      </geometry>\n    </visual>\n  </link>\n  <joint name=\"base_footprint_joint\" type=\"fixed\">\n    <origin rpy=\"0 0 0\" xyz=\"0 0 -0.005\"/>\n    <parent link=\"base_footprint\"/>\n    <child link=\"base_link\"/>\n  </joint>\n  <!-- BASE_LINK (RED) -->\n  <link name=\"base_link\">\n    <inertial>\n      <!-- mass value=\"25.0\" />\n      <origin xyz=\"0 0 0\" />\n      <inertia  ixx=\"1.391\" ixy=\"0.004\"  ixz=\"0.0\"  iyy=\"6.853\"  iyz=\"0.0\"  izz=\"6.125\" / -->\n      <mass value=\"225.0\"/>\n      <origin xyz=\"0 0 0\"/>\n      <inertia ixx=\"5.0\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"5.0\" iyz=\"0.0\" izz=\"5.0\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/chassis_agvs.dae\"/>\n      </geometry>\n      <material name=\"red\">\n        <color rgba=\"0.5 0.1 0.1 1\"/>\n      </material>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0 \" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/chassis_agvs.dae\"/>\n      </geometry>\n    </collision>\n  </link>\n  <!-- BACK MOTOR WHEEL (GREY) -->\n  <link name=\"back_motor_wheel\">\n    <inertial>\n      <mass value=\"10\"/>\n      <origin xyz=\"0 0 0\"/>\n      <inertia ixx=\"0.01\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"0.01\" iyz=\"0.0\" izz=\"0.01\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n      <material name=\"grey\">\n        <color rgba=\"0.5 0.5 0.5 1\"/>\n      </material>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n    </collision>\n  </link>\n  <joint name=\"joint_back_motor_wheel\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"back_motor_wheel\"/>\n    <origin rpy=\"0 0 0\" xyz=\"-0.479 0.0 0.11\"/>\n    <axis rpy=\"0 0 0\" xyz=\"0 0 1\"/>\n    <limit effort=\"100.0\" lower=\"-1.5708\" upper=\"1.5708\" velocity=\"100.0\"/>\n    <joint_properties damping=\"2.0\" friction=\"{steer_joint_friction}\"/>\n  </joint>\n  <transmission name=\"joint_bmw_trans\">\n    <type>transmission_interface/SimpleTransmission</type>\n    <joint name=\"joint_back_motor_wheel\"/>\n    <actuator name=\"joint_bmw_motor\">\n      <hardwareInterface>EffortJointInterface</hardwareInterface>\n      <mechanicalReduction>100.0</mechanicalReduction>\n    </actuator>\n  </transmission>\n  <!-- BACK WHEEL (GREY) -->\n  <link name=\"back_wheel\">\n    <inertial>\n      <mass value=\"1.250\"/>\n      <origin xyz=\"0 0 0\"/>\n      <inertia ixx=\"0.0109375\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"0.021125\" iyz=\"0.0\" izz=\"0.0109375\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n      <material name=\"grey\">\n        <color rgba=\"0.5 0.5 0.5 1\"/>\n      </material>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n    </collision>\n  </link>\n  <joint name=\"joint_back_wheel\" type=\"continuous\">\n    <parent link=\"back_motor_wheel\"/>\n    <child link=\"back_wheel\"/>\n    <origin rpy=\"0 0 3.1416\" xyz=\"0 0 0\"/>\n    <axis rpy=\"0 0 0\" xyz=\"0 1 0\"/>\n    <limit effort=\"1000.0\" velocity=\"2000.0\"/>\n    <joint_properties damping=\"1.0\" friction=\"{wheel_joint_friction}\"/>\n  </joint>\n  <transmission name=\"joint_bw_trans\">\n    <type>transmission_interface/SimpleTransmission</type>\n    <joint name=\"joint_back_wheel\"/>\n    <actuator name=\"joint_bw_motor\">\n      <!-- hardwareInterface>EffortJointInterface</hardwareInterface -->\n      <hardwareInterface>VelocityJointInterface</hardwareInterface>\n      <mechanicalReduction>1.0</mechanicalReduction>\n    </actuator>\n  </transmission>\n  <!-- FRONT MOTOR WHEEL (GREY) -->\n  <link name=\"front_motor_wheel\">\n    <inertial>\n      <mass value=\"10.0\"/>\n      <origin xyz=\"0 0 0\"/>\n      <inertia ixx=\"0.01\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"0.01\" iyz=\"0.0\" izz=\"0.01\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n      <material name=\"grey\">\n        <color rgba=\"0.5 0.5 0.5 1\"/>\n      </material>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n    </collision>\n  </link>\n  <joint name=\"joint_front_motor_wheel\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"front_motor_wheel\"/>\n    <origin rpy=\"0 0 0\" xyz=\"0.479 0.0 0.11\"/>\n    <axis rpy=\"0 0 0\" xyz=\"0 0 1\"/>\n    <limit effort=\"100.0\" lower=\"-1.5708\" upper=\"1.5708\" velocity=\"100.0\"/>\n    <joint_properties damping=\"2.0\" friction=\"{steer_joint_friction}\"/>\n  </joint>\n  <transmission name=\"joint_fmw_trans\">\n    <type>transmission_interface/SimpleTransmission</type>\n    <joint name=\"joint_front_motor_wheel\"/>\n    <actuator name=\"joint_fmw_motor\">\n      <hardwareInterface>EffortJointInterface</hardwareInterface>\n      <mechanicalReduction>100.0</mechanicalReduction>\n      <!-- motorTorqueConstant>1</motorTorqueConstant -->\n    </actuator>\n  </transmission>\n  <!-- FRONT WHEEL (GREY) -->\n  <link name=\"front_wheel\">\n    <inertial>\n      <mass value=\"1.250\"/>\n      <origin xyz=\"0 0 0\"/>\n      <inertia ixx=\"0.0109375\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"0.021125\" iyz=\"0.0\" izz=\"0.0109375\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n      <material name=\"grey\">\n        <color rgba=\"0.5 0.5 0.5 1\"/>\n      </material>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n    </collision>\n  </link>\n  <joint name=\"joint_front_wheel\" type=\"continuous\">\n    <parent link=\"front_motor_wheel\"/>\n    <child link=\"front_wheel\"/>\n    <origin rpy=\"0 0 3.1416\" xyz=\"0 0 0\"/>\n    <axis rpy=\"0 0 0\" xyz=\"0 1 0\"/>\n    <limit effort=\"1000.0\" velocity=\"2000.0\"/>\n    <joint_properties damping=\"1.0\" friction=\"{wheel_joint_friction}\"/>\n  </joint>\n  <transmission name=\"joint_fw_trans\">\n    <type>transmission_interface/SimpleTransmission</type>\n    <joint name=\"joint_front_wheel\"/>\n    <actuator name=\"joint_fw_motor\">\n      <!-- hardwareInterface>EffortJointInterface</hardwareInterface -->\n      <hardwareInterface>VelocityJointInterface</hardwareInterface>\n      <mechanicalReduction>1.0</mechanicalReduction>\n    </actuator>\n  </transmission>\n  <!-- SIDE WHEEL LEFT (GREY) -->\n  <link name=\"side_wheel_left\">\n    <inertial>\n      <mass value=\"1.250\"/>\n      <origin xyz=\"0 0 0\"/>\n      <inertia ixx=\"0.0109375\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"0.021125\" iyz=\"0.0\" izz=\"0.0109375\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n      <material name=\"grey\">\n        <color rgba=\"0.5 0.5 0.5 1\"/>\n      </material>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n    </collision>\n  </link>\n  <joint name=\"joint_side_wheel_left\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"side_wheel_left\"/>\n    <origin rpy=\"0 0 0\" xyz=\"0 0.267 0.07\"/>\n    <axis rpy=\"0 0 0\" xyz=\"0 1 0\"/>\n    <limit effort=\"1000.0\" velocity=\"2000.0\"/>\n    <joint_properties damping=\"1.0\" friction=\"{side_wheel_joint_friction}\"/>\n  </joint>\n  <transmission name=\"joint_swl_trans\">\n    <type>transmission_interface/SimpleTransmission</type>\n    <joint name=\"joint_side_wheel_left\"/>\n    <actuator name=\"joint_swl_motor\">\n      <hardwareInterface>EffortJointInterface</hardwareInterface>\n      <mechanicalReduction>1.0</mechanicalReduction>\n    </actuator>\n  </transmission>\n  <!-- SIDE WHEEL RIGHT (GREY) -->\n  <link name=\"side_wheel_right\">\n    <inertial>\n      <mass value=\"1.250\"/>\n      <origin xyz=\"0 0 0\"/>\n      <inertia ixx=\"0.0109375\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"0.021125\" iyz=\"0.0\" izz=\"0.0109375\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n      <material name=\"grey\">\n        <color rgba=\"0.5 0.5 0.5 1\"/>\n      </material>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n      </geometry>\n    </collision>\n  </link>\n  <joint name=\"joint_side_wheel_right\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"side_wheel_right\"/>\n    <origin rpy=\"0 0 0\" xyz=\"0 -0.267 0.07\"/>\n    <axis rpy=\"0 0 0\" xyz=\"0 1 0\"/>\n    <limit effort=\"1000.0\" velocity=\"2000.0\"/>\n    <joint_properties damping=\"1.0\" friction=\"{side_wheel_joint_friction}\"/>\n  </joint>\n  <transmission name=\"joint_swr_trans\">\n    <type>transmission_interface/SimpleTransmission</type>\n    <joint name=\"joint_side_wheel_right\"/>\n    <actuator name=\"joint_swr_motor\">\n      <hardwareInterface>EffortJointInterface</hardwareInterface>\n      <mechanicalReduction>1.0</mechanicalReduction>\n    </actuator>\n  </transmission>\n  <!-- ***************************** -->\n  <link name=\"elevator_link\">\n    <inertial>\n      <mass value=\"20.0\"/>\n      <origin xyz=\"0 0 0\"/>\n      <inertia ixx=\"0.2185\" ixy=\"0.0\" ixz=\"-0.001\" iyy=\"0.33677\" iyz=\"0.0\" izz=\"0.20511\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/agvs_top.dae\"/>\n      </geometry>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0 \" xyz=\"0 0 0\"/>\n      <geometry>\n        <mesh filename=\"package://meshes/agvs_top.dae\"/>\n      </geometry>\n    </collision>\n  </link>\n  <joint name=\"elevator_joint\" type=\"prismatic\">\n    <parent link=\"base_link\"/>\n    <child link=\"elevator_link\"/>\n    <limit effort=\"5000.0\" lower=\"0.0\" upper=\"0.050\" velocity=\"0.25\"/>\n    <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n    <axis xyz=\"0 0 1\"/>\n  </joint>\n  <transmission name=\"joint_elevator_trans\">\n    <type>transmission_interface/SimpleTransmission</type>\n    <joint name=\"elevator_joint\"/>\n    <actuator name=\"elevator_motor\">\n      <hardwareInterface>EffortJointInterface</hardwareInterface>\n      <mechanicalReduction>100.0</mechanicalReduction>\n    </actuator>\n  </transmission>\n  <!-- SICK SENSORS -->\n  <!-- Sick Laser Front -->\n  <joint name=\"joint_laser_front\" type=\"fixed\">\n    <axis xyz=\"0 1 0\"/>\n    <origin xyz=\"0.772 0.0 0.140\"/>\n    <parent link=\"base_link\"/>\n    <child link=\"laser_front\"/>\n  </joint>\n  <link name=\"laser_front\">\n  </link>\n  <!-- Sick Laser Back -->\n  <joint name=\"joint_laser_back\" type=\"fixed\">\n    <axis xyz=\"0 1 0\"/>\n    <origin rpy=\"0 0 3.1416\" xyz=\"-0.772 0.0 0.140\"/>\n    <parent link=\"base_link\"/>\n    <child link=\"laser_back\"/>\n  </joint>\n  <link name=\"laser_back\">\n  </link>\n  <!-- IMU SENSOR -->\n  <joint name=\"imu_joint\" type=\"fixed\">\n    <axis xyz=\"1 0 0\"/>\n    <!-- 0 1 0 -->\n    <origin xyz=\"0 0 0.2825\"/>\n    <parent link=\"base_link\"/>\n    <child link=\"imu_link\"/>\n  </joint>\n  <link name=\"imu_link\">\n    <inertial>\n      <mass value=\"0.001\"/>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <inertia ixx=\"0.0001\" ixy=\"0\" ixz=\"0\" iyy=\"0.000001\" iyz=\"0\" izz=\"0.0001\"/>\n    </inertial>\n    <visual>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <box size=\"0.001 0.001 0.001\"/>\n      </geometry>\n    </visual>\n    <collision>\n      <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n      <geometry>\n        <box size=\".001 .001 .001\"/>\n      </geometry>\n    </collision>\n  </link>\n</robot>\n\n"
  },
  {
    "path": "agvs_description/urdf/vrep/agvs_vrep.urdf.xacro",
    "content": "<?xml version=\"1.0\"?>\n<robot name=\"agvs\" xmlns:xacro=\"http://www.ros.org/wiki/xacro\"> \n\n  <!-- Robot mechanical and motor parameters -->\n  <xacro:property name=\"PI\" value=\"3.1415926535897931\"/>\n  <xacro:property name=\"wheel_offset_x\" value=\"0.479\" />    <!-- x,y,z in base_footprint CS -->\n  <xacro:property name=\"wheel_offset_y\" value=\"0.0\" /> \n  <xacro:property name=\"wheel_offset_z\" value=\"0.110\" /> \n  <xacro:property name=\"wheel_joint_damping\" value=\"1.0\" />\n  <xacro:property name=\"wheel_joint_friction\" value=\"1.0\" />\n  <xacro:property name=\"wheel_joint_effort_limit\" value=\"1000.0\" />\n  <xacro:property name=\"wheel_joint_velocity_limit\" value=\"2000.0\" />\n  <xacro:property name=\"wheel_mechanical_reduction\" value=\"1.0\" />\n  <xacro:property name=\"motor_wheel_offset_z\" value=\"0.110\" /> \n  <xacro:property name=\"side_wheel_offset_y\" value=\"0.267\" /> \n  <xacro:property name=\"side_wheel_offset_z\" value=\"0.070\" />\n  <xacro:property name=\"side_wheel_joint_damping\" value=\"1.0\" />\n  <xacro:property name=\"side_wheel_joint_friction\" value=\"1.0\" />\n  <!-- xacro:property name=\"side_wheel_offset_z\" value=\"0.075\" / -->  \n\n  <xacro:property name=\"steer_joint_damping\" value=\"2.0\" />\n  <xacro:property name=\"steer_joint_friction\" value=\"1.0\" />\n  <xacro:property name=\"steer_joint_effort_limit\" value=\"100.0\" />\n  <xacro:property name=\"steer_joint_velocity_limit\" value=\"100.0\" />\n  <xacro:property name=\"motor_wheel_mechanical_reduction\" value=\"100.0\" />\n\n\n  <!-- BASE FOOTPRINT -->\n  <!-- base_footprint is a fictitious link(frame) that is on the ground right below base_link origin,\n             navigation stack depends on this frame -->\n  <link name=\"base_footprint\">\n      <visual>\n          <origin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n          <geometry>\n             <box size=\"0.001 0.001 0.001\" />\n          </geometry>\n      </visual>\n  </link>\n\n  <joint name=\"base_footprint_joint\" type=\"fixed\">\n     <origin xyz=\"0 0 -0.005\" rpy=\"0 0 0\" />\n     <parent link=\"base_footprint\"/>\n     <child link=\"base_link\" />\n  </joint>\n\n  <!-- BASE_LINK (RED) -->\n  <link name=\"base_link\">\n    <inertial>\n      <!-- mass value=\"25.0\" />\n      <origin xyz=\"0 0 0\" />\n      <inertia  ixx=\"1.391\" ixy=\"0.004\"  ixz=\"0.0\"  iyy=\"6.853\"  iyz=\"0.0\"  izz=\"6.125\" / -->\n      <mass value=\"225.0\" />\n      <origin xyz=\"0 0 0\" />\n      <inertia  ixx=\"5.0\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"5.0\"  iyz=\"0.0\"  izz=\"5.0\" />      \n    </inertial>\n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n       <geometry>\n\t     <mesh filename=\"package://meshes/chassis_agvs.dae\"/>\n       </geometry>       \n\t   <material name=\"red\">\n\t     <color rgba=\"0.5 0.1 0.1 1\"/>\n       </material>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0 \" />\n       <geometry>\n         <mesh filename=\"package://meshes/chassis_agvs.dae\"/>\n       </geometry>\n    </collision>     \n  </link>\n\n  <!-- BACK MOTOR WHEEL (GREY) -->\n  <link name=\"back_motor_wheel\">\n    <inertial>\n      <mass value=\"10\" />\n      <origin xyz=\"0 0 0\" />\n      <inertia  ixx=\"0.01\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"0.01\"  iyz=\"0.0\"  izz=\"0.01\" />\n    </inertial>    \n  \n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t      <mesh filename=\"package://meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n\t   <material name=\"grey\">\n\t   <color rgba=\"0.5 0.5 0.5 1\"/>\n       </material>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n       <geometry>\n\t       <mesh filename=\"package://meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n    </collision>\n  </link>\n\n  <joint name=\"joint_back_motor_wheel\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"back_motor_wheel\"/>\n    <origin xyz=\"-${wheel_offset_x} ${wheel_offset_y} ${motor_wheel_offset_z}\" rpy=\"0 0 0\" /> \n    <axis xyz=\"0 0 1\" rpy=\"0 0 0\" />\n    <limit effort=\"${steer_joint_effort_limit}\" velocity=\"${steer_joint_velocity_limit}\" lower=\"-1.5708\" upper=\"1.5708\"/>\n    <joint_properties damping=\"${steer_joint_damping}\" friction=\"{steer_joint_friction}\"/>\n  </joint>\n  \n \n  <transmission name=\"joint_bmw_trans\">\n\t <type>transmission_interface/SimpleTransmission</type>\n     <joint name=\"joint_back_motor_wheel\" />\n     <actuator name=\"joint_bmw_motor\">\n\t    <hardwareInterface>EffortJointInterface</hardwareInterface>\t    \n        <mechanicalReduction>${motor_wheel_mechanical_reduction}</mechanicalReduction>\n     </actuator>\n  </transmission>\n\n\n  <!-- BACK WHEEL (GREY) -->\n  <link name=\"back_wheel\">\n    <inertial>\n      <mass value=\"1.250\" />\n      <origin xyz=\"0 0 0\" />\n      <inertia  ixx=\"0.0109375\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"0.021125\"  iyz=\"0.0\"  izz=\"0.0109375\" />\n    </inertial>\n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t     <mesh filename=\"package://meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n\t    <material name=\"grey\">\n\t\t   <color rgba=\"0.5 0.5 0.5 1\"/>\n      \t</material>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t   <mesh filename=\"package://meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n    </collision>\n  </link>\n\n  <joint name=\"joint_back_wheel\" type=\"continuous\">\n    <parent link=\"back_motor_wheel\"/>\n    <child link=\"back_wheel\"/>\n    <origin xyz=\"0 0 0\" rpy=\"0 0 3.1416\" /> \n    <axis xyz=\"0 1 0\" rpy=\"0 0 0\" />\n    <limit effort=\"${wheel_joint_effort_limit}\" velocity=\"${wheel_joint_velocity_limit}\"/>\n    <joint_properties damping=\"${wheel_joint_damping}\" friction=\"{wheel_joint_friction}\"/>\n  </joint>\n\n  <transmission name=\"joint_bw_trans\">\n\t <type>transmission_interface/SimpleTransmission</type>\n     <joint name=\"joint_back_wheel\" />     \n     <actuator name=\"joint_bw_motor\">\n\t   <!-- hardwareInterface>EffortJointInterface</hardwareInterface -->\n\t   <hardwareInterface>VelocityJointInterface</hardwareInterface>\n       <mechanicalReduction>${wheel_mechanical_reduction}</mechanicalReduction>\n     </actuator>\n  </transmission>\n\n  <!-- FRONT MOTOR WHEEL (GREY) -->\n  <link name=\"front_motor_wheel\">\n    <inertial>\n      <mass value=\"10.0\" />\n      <origin xyz=\"0 0 0\" />\n      <inertia  ixx=\"0.01\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"0.01\"  iyz=\"0.0\"  izz=\"0.01\" />\n    </inertial>\n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t <mesh filename=\"package://meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n\t<material name=\"grey\">\n\t\t<color rgba=\"0.5 0.5 0.5 1\"/>\n      \t</material>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t      <mesh filename=\"package://meshes/motor_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n    </collision>\n  </link>\n\n  <joint name=\"joint_front_motor_wheel\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"front_motor_wheel\"/>\n    <origin xyz=\"${wheel_offset_x} ${wheel_offset_y} ${motor_wheel_offset_z}\" rpy=\"0 0 0\" /> \n    <axis xyz=\"0 0 1\" rpy=\"0 0 0\" />\n    <limit effort=\"${steer_joint_effort_limit}\" velocity=\"${steer_joint_velocity_limit}\" lower=\"-1.5708\" upper=\"1.5708\"/>\n    <joint_properties damping=\"${steer_joint_damping}\" friction=\"{steer_joint_friction}\"/>\n  </joint>\n\n  <transmission name=\"joint_fmw_trans\">\n\t <type>transmission_interface/SimpleTransmission</type>\n     <joint name=\"joint_front_motor_wheel\" />\n     <actuator name=\"joint_fmw_motor\">\n\t   <hardwareInterface>EffortJointInterface</hardwareInterface>\n       <mechanicalReduction>${motor_wheel_mechanical_reduction}</mechanicalReduction>\n       <!-- motorTorqueConstant>1</motorTorqueConstant -->\n     </actuator>     \n  </transmission>\n  \n  <!-- FRONT WHEEL (GREY) -->\n  <link name=\"front_wheel\">\n    <inertial>\n      <mass value=\"1.250\" />\n      <origin xyz=\"0 0 0\" />\n      <inertia  ixx=\"0.0109375\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"0.021125\"  iyz=\"0.0\"  izz=\"0.0109375\" />\n    </inertial>\n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t <mesh filename=\"package://meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n\t<material name=\"grey\">\n\t\t<color rgba=\"0.5 0.5 0.5 1\"/>\n      \t</material>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t   <mesh filename=\"package://meshes/agvs_wheel.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n    </collision>\n  </link>\n\n  <joint name=\"joint_front_wheel\" type=\"continuous\">\n    <parent link=\"front_motor_wheel\"/>\n    <child link=\"front_wheel\"/>\n    <origin xyz=\"0 0 0\" rpy=\"0 0 3.1416\" /> \n    <axis xyz=\"0 1 0\" rpy=\"0 0 0\" />\n    <limit effort=\"${wheel_joint_effort_limit}\" velocity=\"${wheel_joint_velocity_limit}\"/>\n    <joint_properties damping=\"${wheel_joint_damping}\" friction=\"{wheel_joint_friction}\"/>\n  </joint>\n\n  <transmission name=\"joint_fw_trans\">\n\t <type>transmission_interface/SimpleTransmission</type>\n     <joint name=\"joint_front_wheel\" />\n     <actuator name=\"joint_fw_motor\">\n\t   <!-- hardwareInterface>EffortJointInterface</hardwareInterface -->\n\t   <hardwareInterface>VelocityJointInterface</hardwareInterface>\n       <mechanicalReduction>${wheel_mechanical_reduction}</mechanicalReduction>\n     </actuator>\n  </transmission>\n  \n      \n  <!-- SIDE WHEEL LEFT (GREY) -->\n  <link name=\"side_wheel_left\">\n    <inertial>\n      <mass value=\"1.250\" />\n      <origin xyz=\"0 0 0\" /> \n      <inertia  ixx=\"0.0109375\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"0.021125\"  iyz=\"0.0\"  izz=\"0.0109375\" />\n    </inertial>\n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t      <mesh filename=\"package://meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n\t   <material name=\"grey\">\n\t   <color rgba=\"0.5 0.5 0.5 1\"/>\n       </material>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n       <geometry>\n\t       <mesh filename=\"package://meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n    </collision>\n  </link>\n\n  <joint name=\"joint_side_wheel_left\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"side_wheel_left\"/>\n    <origin xyz=\"0 ${side_wheel_offset_y} ${side_wheel_offset_z}\" rpy=\"0 0 0\" /> \n    <axis xyz=\"0 1 0\" rpy=\"0 0 0\" />\n    <limit effort=\"${wheel_joint_effort_limit}\" velocity=\"${wheel_joint_velocity_limit}\"/>\n    <joint_properties damping=\"${side_wheel_joint_damping}\" friction=\"{side_wheel_joint_friction}\"/>\n  </joint>\n\n  <transmission name=\"joint_swl_trans\">\n\t <type>transmission_interface/SimpleTransmission</type>\n     <joint name=\"joint_side_wheel_left\" />     \n     <actuator name=\"joint_swl_motor\">\n\t   <hardwareInterface>EffortJointInterface</hardwareInterface>\n       <mechanicalReduction>${wheel_mechanical_reduction}</mechanicalReduction>\n     </actuator>\n  </transmission>\n\n  \n  <!-- SIDE WHEEL RIGHT (GREY) -->\n  <link name=\"side_wheel_right\">\n    <inertial>\n      <mass value=\"1.250\" />\n      <origin xyz=\"0 0 0\" /> \n      <inertia  ixx=\"0.0109375\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"0.021125\"  iyz=\"0.0\"  izz=\"0.0109375\" />\n    </inertial>\n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" /> \n       <geometry>\n\t      <mesh filename=\"package://meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n\t   <material name=\"grey\">\n\t   <color rgba=\"0.5 0.5 0.5 1\"/>\n       </material>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n       <geometry>\n\t       <mesh filename=\"package://meshes/side_wheel_agvs.dae\" scale=\"1.0 1.0 1.0\"/>\n       </geometry>\n    </collision>\n  </link>\n\n  <joint name=\"joint_side_wheel_right\" type=\"continuous\">\n    <parent link=\"base_link\"/>\n    <child link=\"side_wheel_right\"/>\n    <origin xyz=\"0 -${side_wheel_offset_y} ${side_wheel_offset_z}\" rpy=\"0 0 0\" /> \n    <axis xyz=\"0 1 0\" rpy=\"0 0 0\" />\n    <limit effort=\"${wheel_joint_effort_limit}\" velocity=\"${wheel_joint_velocity_limit}\"/>\n    <joint_properties damping=\"${side_wheel_joint_damping}\" friction=\"{side_wheel_joint_friction}\"/>\n  </joint>\n  \n  <transmission name=\"joint_swr_trans\">\n\t <type>transmission_interface/SimpleTransmission</type>\n     <joint name=\"joint_side_wheel_right\" />     \n     <actuator name=\"joint_swr_motor\">\n\t   <hardwareInterface>EffortJointInterface</hardwareInterface>\n       <mechanicalReduction>${wheel_mechanical_reduction}</mechanicalReduction>\n     </actuator>\n  </transmission>\n  \n  \n  <!-- ***************************** --> \n  <link name=\"elevator_link\">\n    <inertial>\n      <mass value=\"20.0\" />\n      <origin xyz=\"0 0 0\" />\n      <inertia  ixx=\"0.2185\" ixy=\"0.0\"  ixz=\"-0.001\"  iyy=\"0.33677\"  iyz=\"0.0\"  izz=\"0.20511\" />\n    </inertial>\n    <visual>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n       <geometry>\n\t   <mesh filename=\"package://meshes/agvs_top.dae\"/>\n       </geometry>\n    </visual>\n    <collision>\n       <origin xyz=\"0 0 0\" rpy=\"0 0 0 \" />\n       <geometry>\n       <mesh filename=\"package://meshes/agvs_top.dae\"/>\n       </geometry>\n    </collision>     \n  </link>\n\n  <joint name=\"elevator_joint\" type=\"prismatic\">\n    <parent link=\"base_link\"/>\n    <child link=\"elevator_link\"/>\n    <limit effort=\"5000.0\" velocity=\"0.25\" lower=\"0.0\" upper=\"0.050\"/>\n    <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n    <axis xyz=\"0 0 1\"/>\n  </joint>\n\n  <transmission name=\"joint_elevator_trans\">\n\t <type>transmission_interface/SimpleTransmission</type>\n     <joint name=\"elevator_joint\" />\n     <actuator name=\"elevator_motor\">\n\t\t<hardwareInterface>EffortJointInterface</hardwareInterface>\n\t\t<mechanicalReduction>100.0</mechanicalReduction>\n\t </actuator>\n  </transmission>\n  \n  <!-- SICK SENSORS -->\n  <!-- Sick Laser Front -->\n  <joint name=\"joint_laser_front\" type=\"fixed\">\n     <axis xyz=\"0 1 0\" />\n     <origin xyz=\"0.772 0.0 0.140\"/>\n     <parent link=\"base_link\"/>\n     <child link=\"laser_front\"/>\n  </joint>\n  <link name=\"laser_front\">\n  </link>\n\n  <!-- Sick Laser Back -->\n  <joint name=\"joint_laser_back\" type=\"fixed\">\n     <axis xyz=\"0 1 0\"/>\n     <origin xyz=\"-0.772 0.0 0.140\" rpy=\"0 0 3.1416\"/>\n     <parent link=\"base_link\"/>\n     <child link=\"laser_back\"/>\n  </joint>\n  <link name=\"laser_back\">\n  </link>\n\n\n  <!-- IMU SENSOR -->\n  <joint name=\"imu_joint\" type=\"fixed\">\n      <axis xyz=\"1 0 0\"/> <!-- 0 1 0 -->\n      <origin xyz=\"0 0 0.2825\"/>\n      <parent link=\"base_link\"/>\n      <child link=\"imu_link\"/>\n  </joint>\n\n  <link name=\"imu_link\">\n      <inertial>\n        <mass value=\"0.001\"/>\n        <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n        <inertia ixx=\"0.0001\" ixy=\"0\" ixz=\"0\" iyy=\"0.000001\" iyz=\"0\" izz=\"0.0001\"/>\n      </inertial>\n      <visual>\n        <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n        <geometry>\n          <box size=\"0.001 0.001 0.001\"/>\n        </geometry>\n      </visual>\n      <collision>\n        <origin rpy=\"0 0 0\" xyz=\"0 0 0\"/>\n        <geometry>\n          <box size=\".001 .001 .001\"/>\n        </geometry>\n      </collision>\n  </link>\n\n</robot>\n\n"
  },
  {
    "path": "agvs_description/urdf/vrep/xacro2urdf.sh",
    "content": "#!/bin/bash\n# usage xacro2urdf file1.xacro  file2.urdf\necho \"Converting file $1 in $2\" \nrosrun xacro xacro.py $1 > $2\n\n"
  },
  {
    "path": "agvs_description/urdf/xacro2urdf.sh",
    "content": "#!/bin/bash\n# usage xacro2urdf file1.xacro  file2.urdf\necho \"Converting file $1 in $2\" \nrosrun xacro xacro.py $1 > $2\n\n"
  },
  {
    "path": "agvs_gazebo/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 2.8.3)\nproject(agvs_gazebo)\n\n## Find catkin macros and libraries\n## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)\n## is used, also find other catkin packages\nfind_package(catkin REQUIRED COMPONENTS\n  agvs_description\n  gazebo_ros\n  roscpp\n  std_msgs\n  std_srvs\n  tf\n  joint_state_controller\n  velocity_controllers\n  effort_controllers\n)\n\n## System dependencies are found with CMake's conventions\n# find_package(Boost REQUIRED COMPONENTS system)\n\n\n## Uncomment this if the package has a setup.py. This macro ensures\n## modules and global scripts declared therein get installed\n## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html\n# catkin_python_setup()\n\n################################################\n## Declare ROS messages, services and actions ##\n################################################\n\n## To declare and build messages, services or actions from within this\n## package, follow these steps:\n## * Let MSG_DEP_SET be the set of packages whose message types you use in\n##   your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).\n## * In the file package.xml:\n##   * add a build_depend and a run_depend tag for each package in MSG_DEP_SET\n##   * If MSG_DEP_SET isn't empty the following dependencies might have been\n##     pulled in transitively but can be declared for certainty nonetheless:\n##     * add a build_depend tag for \"message_generation\"\n##     * add a run_depend tag for \"message_runtime\"\n## * In this file (CMakeLists.txt):\n##   * add \"message_generation\" and every package in MSG_DEP_SET to\n##     find_package(catkin REQUIRED COMPONENTS ...)\n##   * add \"message_runtime\" and every package in MSG_DEP_SET to\n##     catkin_package(CATKIN_DEPENDS ...)\n##   * uncomment the add_*_files sections below as needed\n##     and list every .msg/.srv/.action file to be processed\n##   * uncomment the generate_messages entry below\n##   * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)\n\n## Generate messages in the 'msg' folder\n# add_message_files(\n#   FILES\n#   Message1.msg\n#   Message2.msg\n# )\n\n## Generate services in the 'srv' folder\n# add_service_files(\n#   FILES\n#   Service1.srv\n#   Service2.srv\n# )\n\n## Generate actions in the 'action' folder\n# add_action_files(\n#   FILES\n#   Action1.action\n#   Action2.action\n# )\n\n## Generate added messages and services with any dependencies listed here\n# generate_messages(\n#   DEPENDENCIES\n#   std_msgs\n# )\n\n###################################\n## catkin specific configuration ##\n###################################\n## The catkin_package macro generates cmake config files for your package\n## Declare things to be passed to dependent projects\n## INCLUDE_DIRS: uncomment this if you package contains header files\n## LIBRARIES: libraries you create in this project that dependent projects also need\n## CATKIN_DEPENDS: catkin_packages dependent projects also need\n## DEPENDS: system dependencies of this project that dependent projects also need\ncatkin_package(\n#  INCLUDE_DIRS include\n#  LIBRARIES agvs_gazebo\n#  CATKIN_DEPENDS agvs_description gazebo_ros roscpp std_msgs std_srvs tf\n#  DEPENDS system_lib\n)\n\n###########\n## Build ##\n###########\n\n## Specify additional locations of header files\n## Your package locations should be listed before other locations\n# include_directories(include)\ninclude_directories(\n  ${catkin_INCLUDE_DIRS}\n)\n\n## Declare a cpp library\n# add_library(agvs_gazebo\n#   src/${PROJECT_NAME}/agvs_gazebo.cpp\n# )\n\n## Declare a cpp executable\n# add_executable(agvs_gazebo_node src/agvs_gazebo_node.cpp)\n\n## Add cmake target dependencies of the executable/library\n## as an example, message headers may need to be generated before nodes\n# add_dependencies(agvs_gazebo_node agvs_gazebo_generate_messages_cpp)\n\n## Specify libraries to link a library or executable target against\n# target_link_libraries(agvs_gazebo_node\n#   ${catkin_LIBRARIES}\n# )\n\n#############\n## Install ##\n#############\n\n# all install targets should use catkin DESTINATION variables\n# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html\n\n## Mark executable scripts (Python etc.) for installation\n## in contrast to setup.py, you can choose the destination\n# install(PROGRAMS\n#   scripts/my_python_script\n#   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}\n# )\n\n## Mark executables and/or libraries for installation\n# install(TARGETS agvs_gazebo agvs_gazebo_node\n#   ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}\n#   LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}\n#   RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}\n# )\n\n## Mark cpp header files for installation\n# install(DIRECTORY include/${PROJECT_NAME}/\n#   DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}\n#   FILES_MATCHING PATTERN \"*.h\"\n#   PATTERN \".svn\" EXCLUDE\n# )\n\n## Mark other files for installation (e.g. launch and bag files, etc.)\n# install(FILES\n#   # myfile1\n#   # myfile2\n#   DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}\n# )\n\n#############\n## Testing ##\n#############\n\n## Add gtest based cpp test target and link libraries\n# catkin_add_gtest(${PROJECT_NAME}-test test/test_agvs_gazebo.cpp)\n# if(TARGET ${PROJECT_NAME}-test)\n#   target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})\n# endif()\n\n## Add folders to be run by python nosetests\n# catkin_add_nosetests(test)\n"
  },
  {
    "path": "agvs_gazebo/launch/agvs.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n\n  <!-- We resume the logic in empty_world.launch, changing only the name of the world to be launched -->\n  <!-- include file=\"$(find gazebo_ros)/launch/empty_world.launch\">\n    <arg name=\"world_name\" value=\"$(find agvs_gazebo)/worlds/agvs.world\"/>\n  </include -->\n\n  <!-- roslaunch arguments -->\n  <arg name=\"debug\" default=\"false\"/>\n  <arg name=\"gui\" default=\"true\"/>\n\n  <!-- We resume the logic in empty_world.launch, changing only the name of the world to be launched -->\n  <include file=\"$(find gazebo_ros)/launch/empty_world.launch\">\n    <arg name=\"world_name\" value=\"$(find agvs_gazebo)/worlds/agvs.world\"/>\n    <arg name=\"debug\" value=\"$(arg debug)\" />\n    <arg name=\"gui\" value=\"$(arg gui)\" />\n    <arg name=\"paused\" value=\"false\"/>\n    <arg name=\"use_sim_time\" value=\"true\"/>\n    <arg name=\"headless\" value=\"false\"/>\n  </include>\n\n  <!-- Load the URDF into the ROS Parameter Server -->\n  <param name=\"robot_description\"\n         command=\"$(find xacro)/xacro.py '$(find agvs_description)/urdf/agvs.urdf.xacro'\" />\n         \n  <!-- Call a python script to the run a service call to gazebo_ros to spawn a URDF robot -->\n  <node name=\"urdf_spawner\" pkg=\"gazebo_ros\" type=\"spawn_model\" respawn=\"false\" output=\"screen\"\n        args=\"-urdf -model agvs -param robot_description -z 0.35\"/>\n\n  <!-- ros_control agvs launch file -->\n  <include file=\"$(find agvs_control)/launch/agvs_control.launch\" />\n\n</launch>\n"
  },
  {
    "path": "agvs_gazebo/launch/agvs_office.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n\n  <!-- We resume the logic in empty_world.launch, changing only the name of the world to be launched -->\n  <!-- include file=\"$(find gazebo_ros)/launch/empty_world.launch\">\n    <arg name=\"world_name\" value=\"$(find agvs_gazebo)/worlds/agvs.world\"/>\n  </include -->\n\n  <!-- roslaunch arguments -->\n  <arg name=\"debug\" default=\"false\"/>\n  <arg name=\"gui\" default=\"true\"/>\n\n  <!-- We resume the logic in empty_world.launch, changing only the name of the world to be launched -->\n  <include file=\"$(find gazebo_ros)/launch/empty_world.launch\">\n    <arg name=\"world_name\" value=\"$(find agvs_gazebo)/worlds/agvs_office.world\"/>\n    <arg name=\"debug\" value=\"$(arg debug)\" />\n    <arg name=\"gui\" value=\"$(arg gui)\" />\n    <arg name=\"paused\" value=\"false\"/>\n    <arg name=\"use_sim_time\" value=\"true\"/>\n    <arg name=\"headless\" value=\"false\"/>\n  </include>\n\n  <!-- Load the URDF into the ROS Parameter Server -->\n  <param name=\"robot_description\"\n         command=\"$(find xacro)/xacro.py '$(find agvs_description)/urdf/agvs.urdf.xacro'\" />\n         \n  <!-- Call a python script to the run a service call to gazebo_ros to spawn a URDF robot -->\n  <node name=\"urdf_spawner\" pkg=\"gazebo_ros\" type=\"spawn_model\" respawn=\"false\" output=\"screen\"\n        args=\"-urdf -model agvs -param robot_description\"/>\n\n  <!-- ros_control agvs launch file -->\n  <include file=\"$(find agvs_control)/launch/agvs_control.launch\" />\n\n</launch>\n"
  },
  {
    "path": "agvs_gazebo/launch/agvs_sim_complete.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n\n  <include file=\"$(find agvs_gazebo)/launch/agvs.launch\" />\n  \n  <include file=\"$(find agvs_robot_control)/launch/agvs_robot_control.launch\" />\n  \n  <include file=\"$(find agvs_pad)/launch/agvs_pad.launch\" />\n  \n</launch>\n"
  },
  {
    "path": "agvs_gazebo/package.xml",
    "content": "<?xml version=\"1.0\"?>\n<package>\n  <name>agvs_gazebo</name>\n  <version>0.1.0</version>\n  <description>The agvs_gazebo package. Launch files and worlds to run Gazebo.</description>\n\n \n  <maintainer email=\"rguzman@robotnik.es\">Roberto Guzmán</maintainer>\n  <maintainer email=\"rnavarro@robotnik.es\">Román Navarro</maintainer>\n\n  <license>BSD</license>\n \n  <url type=\"website\">http://wiki.ros.org/agvs_gazebo</url>\n  <url type=\"repository\">https://github.com/RobotnikAutomation/agvs</url>\n  <url type=\"bugtracker\">https://github.com/RobotnikAutomation/agvs/issues</url>\n\n  <author email=\"rguzman@robotnik.es\">Roberto Guzmán</author>\n\n\n \n  <buildtool_depend>catkin</buildtool_depend>\n  <build_depend>agvs_description</build_depend>\n  <build_depend>gazebo_ros</build_depend>\n  <build_depend>roscpp</build_depend>\n  <build_depend>std_msgs</build_depend>\n  <build_depend>std_srvs</build_depend>\n  <build_depend>tf</build_depend>\n  <build_depend>joint_state_controller</build_depend>\n  <build_depend>velocity_controllers</build_depend>\n  <build_depend>effort_controllers</build_depend>\n  <run_depend>agvs_description</run_depend>\n  <run_depend>gazebo_ros</run_depend>\n  <run_depend>roscpp</run_depend>\n  <run_depend>std_msgs</run_depend>\n  <run_depend>std_srvs</run_depend>\n  <run_depend>tf</run_depend>\n  <run_depend>joint_state_controller</run_depend>\n  <run_depend>velocity_controllers</run_depend>\n  <run_depend>effort_controllers</run_depend>\n\n\n  <export>\n\n  </export>\n</package>\n"
  },
  {
    "path": "agvs_gazebo/worlds/agvs.world",
    "content": "<?xml version=\"1.0\" ?>\n<sdf version=\"1.3\">\n  <world name=\"default\">\n    <physics type=\"ode\">\n      <gravity>0 0 -9.8</gravity>\n      <ode>\n        <solver>\n          <type>quick</type>\n          <dt>0.001</dt>\n          <iters>20</iters>\n          <sor>1.0</sor>\n        </solver>\n        <constraints>\n          <cfm>0.0</cfm>\n          <erp>0.2</erp>\n          <contact_max_correcting_vel>100.0</contact_max_correcting_vel>\n          <contact_surface_layer>0.001</contact_surface_layer>\n        </constraints>\n      </ode>\n    </physics>\n    \n    <model name=\"gplane\">\n      <pose>0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000</pose>\n      <link name=\"plane\">\n        <pose>0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000</pose>\n        <collision name=\"plane\">\n          <pose>0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000</pose>\n          <geometry>\n            <plane>\n              <normal>0.000000 0.000000 1.000000</normal>\n              <size>200 200</size>\n            </plane>\n          </geometry>\n          <surface>\n            <friction>\n              <ode>\n                <mu>50.000000</mu>\n                <mu2>50.000000</mu2>\n                <fdir1>0.000000 0.000000 0.000000</fdir1>\n                <slip1>0.000000</slip1>\n                <slip2>0.000000</slip2>\n              </ode>\n            </friction>\n            <bounce>\n              <restitution_coefficient>0.000000</restitution_coefficient>\n              <threshold>100000.000000</threshold>\n            </bounce>\n            <contact>\n              <ode>\n                <soft_cfm>0.000000</soft_cfm>\n                <soft_erp>0.200000</soft_erp>\n                <kp>1000000000.000000</kp>\n                <kd>1.000000</kd>\n                <max_vel>100.000000</max_vel>\n                <min_depth>0.001000</min_depth>\n              </ode>\n            </contact>\n          </surface>\n          <laser_retro>0.000000</laser_retro>\n        </collision>\n        <gravity>1</gravity>\n        <self_collide>0</self_collide>\n        <kinematic>0</kinematic>\n      </link>\n      <static>1</static>\n    </model>    \n    \n    <!-- A global light source -->\n    <include>\n      <uri>model://sun</uri>\n    </include>\n    <!-- A ground plane -->\n    <!-- include>\n      <uri>model://ground_plane</uri>\n    </include -->\n    <!-- include>\n      <uri>model://willowgarage</uri>\n      <pose>-16 -18 0 0 0 0</pose>\n    </include -->\n  </world>\n</sdf>\n"
  },
  {
    "path": "agvs_gazebo/worlds/agvs_office.world",
    "content": "<?xml version=\"1.0\" ?>\n<sdf version=\"1.3\">\n  <world name=\"default\">\n    <physics type=\"ode\">\n      <gravity>0 0 -9.8</gravity>\n      <ode>\n        <solver>\n          <type>quick</type>\n          <dt>0.001</dt>\n          <iters>20</iters>\n          <sor>1.0</sor>\n        </solver>\n        <constraints>\n          <cfm>0.0</cfm>\n          <erp>0.2</erp>\n          <contact_max_correcting_vel>100.0</contact_max_correcting_vel>\n          <contact_surface_layer>0.001</contact_surface_layer>\n        </constraints>\n      </ode>\n    </physics>\n\n    <model name=\"gplane\">\n      <pose>0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000</pose>\n      <link name=\"plane\">\n        <pose>0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000</pose>\n        <collision name=\"plane\">\n          <pose>0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000</pose>\n          <geometry>\n            <plane>\n              <normal>0 0 1</normal>\n              <size>400 400</size>\n            </plane>\n          </geometry>\n          <surface>\n            <friction>\n              <ode>\n                <mu>50.000000</mu>\n                <mu2>50.000000</mu2>\n                <fdir1>0.000000 0.000000 0.000000</fdir1>\n                <slip1>0.000000</slip1>\n                <slip2>0.000000</slip2>\n              </ode>\n            </friction>\n            <bounce>\n              <restitution_coefficient>0.000000</restitution_coefficient>\n              <threshold>100000.000000</threshold>\n            </bounce>\n            <contact>\n              <ode>\n                <soft_cfm>0.000000</soft_cfm>\n                <soft_erp>0.200000</soft_erp>\n                <kp>1000000000.000000</kp>\n                <kd>1.000000</kd>\n                <max_vel>100.000000</max_vel>\n                <min_depth>0.001000</min_depth>\n              </ode>\n            </contact>\n          </surface>\n          <laser_retro>0.000000</laser_retro>\n        </collision>\n\t<visual name=\"visual\">\n\t\t<cast_shadows>false</cast_shadows>\n\t\t<geometry>\n\t\t  <plane>\n\t\t    <normal>0 0 1</normal>\n\t\t    <size>400 400</size>\n\t\t  </plane>\n\t\t</geometry>\n\t\t<material>\n\t\t  <script>\n\t\t    <uri>file://media/materials/scripts/gazebo.material</uri>\n\t\t    <name>Gazebo/Grey</name>\n\t\t  </script>\n\t\t</material>\n      \t</visual>\n        <gravity>1</gravity>\n        <self_collide>0</self_collide>\n        <kinematic>0</kinematic>\n      </link>\n      <static>1</static>\n    </model>    \n    <!-- A global light source -->\n    <include>\n      <uri>model://sun</uri>\n    </include>\n    <!-- A ground plane -->\n    <include>\n      <uri>model://willowgarage</uri>\n      <pose>-16 -24 -0.05 0 0 0</pose>\n    </include>\n  </world>\n</sdf>\n"
  },
  {
    "path": "agvs_pad/.rosinstall",
    "content": "# Robotnik stacks\n\n- git: {local-name: robotnik_msgs, version: master, uri: 'https://github.com/RobotnikAutomation/robotnik_msgs.git'}\n"
  },
  {
    "path": "agvs_pad/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 2.8.3)\nproject(agvs_pad)\n\n## Find catkin macros and libraries\n## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)\n## is used, also find other catkin packages\nfind_package(catkin REQUIRED COMPONENTS\n  geometry_msgs\n  std_msgs\n  sensor_msgs\n  \n  #agvs_controller\n  agvs_robot_control\n  \n  diagnostic_msgs\n  diagnostic_updater\n  robotnik_msgs\n  ackermann_msgs\n  std_srvs\n)\n\n## System dependencies are found with CMake's conventions\n# find_package(Boost REQUIRED COMPONENTS system)\n\n\n## Uncomment this if the package has a setup.py. This macro ensures\n## modules and global scripts declared therein get installed\n## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html\n# catkin_python_setup()\n\n################################################\n## Declare ROS messages, services and actions ##\n################################################\n\n## To declare and build messages, services or actions from within this\n## package, follow these steps:\n## * Let MSG_DEP_SET be the set of packages whose message types you use in\n##   your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).\n## * In the file package.xml:\n##   * add a build_depend and a run_depend tag for each package in MSG_DEP_SET\n##   * If MSG_DEP_SET isn't empty the following dependencies might have been\n##     pulled in transitively but can be declared for certainty nonetheless:\n##     * add a build_depend tag for \"message_generation\"\n##     * add a run_depend tag for \"message_runtime\"\n## * In this file (CMakeLists.txt):\n##   * add \"message_generation\" and every package in MSG_DEP_SET to\n##     find_package(catkin REQUIRED COMPONENTS ...)\n##   * add \"message_runtime\" and every package in MSG_DEP_SET to\n##     catkin_package(CATKIN_DEPENDS ...)\n##   * uncomment the add_*_files sections below as needed\n##     and list every .msg/.srv/.action file to be processed\n##   * uncomment the generate_messages entry below\n##   * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)\n\n## Generate messages in the 'msg' folder\n# add_message_files(\n#   FILES\n#   Message1.msg\n#   Message2.msg\n# )\n\n## Generate services in the 'srv' folder\n# add_service_files(\n#   FILES\n#   Service1.srv\n#   Service2.srv\n# )\n\n## Generate actions in the 'action' folder\n# add_action_files(\n#   FILES\n#   Action1.action\n#   Action2.action\n# )\n\n## Generate added messages and services with any dependencies listed here\n# generate_messages(\n#   DEPENDENCIES\n#   geometry_msgs#   std_msgs\n# )\n\n###################################\n## catkin specific configuration ##\n###################################\n## The catkin_package macro generates cmake config files for your package\n## Declare things to be passed to dependent projects\n## INCLUDE_DIRS: uncomment this if you package contains header files\n## LIBRARIES: libraries you create in this project that dependent projects also need\n## CATKIN_DEPENDS: catkin_packages dependent projects also need\n## DEPENDS: system dependencies of this project that dependent projects also need\ncatkin_package(\n#  INCLUDE_DIRS include\n#  LIBRARIES agvs_pad\n  CATKIN_DEPENDS robotnik_msgs ackermann_msgs\n#  DEPENDS system_lib\n)\n\n###########\n## Build ##\n###########\n\n## Specify additional locations of header files\n## Your package locations should be listed before other locations\n# include_directories(include)\ninclude_directories(\n  ${catkin_INCLUDE_DIRS}\n)\n\n## Declare a cpp library\n# add_library(agvs_pad\n#   src/${PROJECT_NAME}/agvs_pad.cpp\n# )\n\n## Declare a cpp executable\nadd_executable(agvs_pad_node src/agvs_pad_node.cpp)\n\n## Add cmake target dependencies of the executable/library\n## as an example, message headers may need to be generated before nodes\nadd_dependencies(agvs_pad_node agvs_pad_generate_messages_cpp)\n\n## Specify libraries to link a library or executable target against\ntarget_link_libraries(agvs_pad_node\n   ${catkin_LIBRARIES}\n )\n\n#############\n## Install ##\n#############\n\n# all install targets should use catkin DESTINATION variables\n# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html\n\n## Mark executable scripts (Python etc.) for installation\n## in contrast to setup.py, you can choose the destination\n# install(PROGRAMS\n#   scripts/my_python_script\n#   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}\n# )\n\n## Mark executables and/or libraries for installation\n# install(TARGETS agvs_pad agvs_pad_node\n#   ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}\n#   LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}\n#   RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}\n# )\n\n## Mark cpp header files for installation\n# install(DIRECTORY include/${PROJECT_NAME}/\n#   DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}\n#   FILES_MATCHING PATTERN \"*.h\"\n#   PATTERN \".svn\" EXCLUDE\n# )\n\n## Mark other files for installation (e.g. launch and bag files, etc.)\n# install(FILES\n#   # myfile1\n#   # myfile2\n#   DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}\n# )\n\n#############\n## Testing ##\n#############\n\n## Add gtest based cpp test target and link libraries\n# catkin_add_gtest(${PROJECT_NAME}-test test/test_agvs_pad.cpp)\n# if(TARGET ${PROJECT_NAME}-test)\n#   target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})\n# endif()\n\n## Add folders to be run by python nosetests\n# catkin_add_nosetests(test)\n"
  },
  {
    "path": "agvs_pad/launch/agvs_pad.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n\n <!-- joy node -->\n  <node name=\"joy\" pkg=\"joy\" type=\"joy_node\" respawn=\"true\">\n    <param name=\"dev\" type=\"string\" value=\"/dev/input/js0\" />\n    <param name=\"deadzone\" value=\"0.12\" />\n    <!-- param name=\"autorepeat_rate\" value=\"10.0\" type=\"double\"/ -->\n    <param name=\"autorepeat_rate\" value=\"10.0\" type=\"double\" />\n  </node>\n  \n  <node name=\"agvs_pad_node\" pkg=\"agvs_pad\" type=\"agvs_pad_node\" output=\"screen\">\n\t<!-- param name=\"cmd_topic_vel\" value=\"/agvs_controller/command\" type=\"string\"/ -->\n\t<param name=\"cmd_topic_vel\" value=\"/agvs_robot_control/command\" type=\"string\"/>\n  \t<param name=\"cmd_service_io\" value=\"/rly_08_node/set_digital_outputs\" type=\"string\"/>\n  \n  \t<rosparam command=\"load\" file=\"$(find agvs_pad)/launch/agvs_pad.yaml\" />\n  </node>\n  \n</launch>\n\n"
  },
  {
    "path": "agvs_pad/launch/agvs_pad.yaml",
    "content": "scale_linear: 2.25\nscale_angular: 2.0 \n\nbutton_output_1: -1\nbutton_output_2: -1\noutput_1: 1 \noutput_2: 2\ndesired_freq: 10.0\n\n# m/s\nmax_linear_speed: 10.0\n# rad/s\nmax_angular_position: 1.57\naxis_linear_speed: 1\naxis_angular_position: 2\n\n# GENERAL\n#button_dead_man: 11\n#button_speed_up: 12\n#button_speed_down: 14\n\nbutton_dead_man: 10\nbutton_speed_up: 11\nbutton_speed_down: 9\nbutton_up_car: 12\nbutton_down_car: 14\n\n\n"
  },
  {
    "path": "agvs_pad/package.xml",
    "content": "<?xml version=\"1.0\"?>\n<package>\n  <name>agvs_pad</name>\n  <version>0.1.0</version>\n  <description>The agvs_pad package.Component to control the robot by using a ps3 pad.</description>\n\n  <maintainer email=\"rnavarro@robotnik.es\">Román Navarro</maintainer>\n  \n\n  <license>BSD</license>\n\n  <url type=\"website\">http://wiki.ros.org/agvs_pad</url>\n  <url type=\"repository\">https://github.com/RobotnikAutomation/agvs</url>\n  <url type=\"bugtracker\">https://github.com/RobotnikAutomation/agvs/issues</url>\n\n\n  <author email=\"rnavarro@robotnik.es\">Román Navarro</author>\n\n\n\n  <buildtool_depend>catkin</buildtool_depend>\n  <build_depend>geometry_msgs</build_depend>\n  <build_depend>std_msgs</build_depend>\n  <build_depend>sensor_msgs</build_depend>\n\n  <build_depend>agvs_robot_control</build_depend> \n  <build_depend>diagnostic_msgs</build_depend>\n  <build_depend>diagnostic_updater</build_depend>\n  <build_depend>robotnik_msgs</build_depend>\n  <build_depend>ackermann_msgs</build_depend>\n  <build_depend>std_srvs</build_depend>\n\n  <run_depend>geometry_msgs</run_depend>\n  <run_depend>std_msgs</run_depend>\n  <run_depend>sensor_msgs</run_depend>\n  <run_depend>agvs_robot_control</run_depend>\n  <run_depend>diagnostic_msgs</run_depend>\n  <run_depend>diagnostic_updater</run_depend>\n  <run_depend>robotnik_msgs</run_depend>\n  <run_depend>ackermann_msgs</run_depend>\n  <run_depend>std_srvs</run_depend>\n\n  <export>\n\n  </export>\n</package>\n"
  },
  {
    "path": "agvs_pad/src/agvs_pad_node.cpp",
    "content": "/*\n * agvs_pad\n * Copyright (c) 2013, Robotnik Automation, SLL\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n *     * Redistributions of source code must retain the above copyright\n *       notice, this list of conditions and the following disclaimer.\n *     * Redistributions in binary form must reproduce the above copyright\n *       notice, this list of conditions and the following disclaimer in the\n *       documentation and/or other materials provided with the distribution.\n *     * Neither the name of the Robotnik Automation, SLL. nor the names of its\n *       contributors may be used to endorse or promote products derived from\n *       this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *\n * \\author Robotnik Automation, SLL\n * \\brief Allows to use a pad with the robot controller, sending the messages received from the joystick device\n */\n\n\n#include <ros/ros.h>\n#include <sensor_msgs/Joy.h>\n#include <geometry_msgs/Twist.h>\n#include <std_msgs/Int32.h>\n#include <unistd.h>\n#include <vector>\n#include <robotnik_msgs/enable_disable.h>\n#include <robotnik_msgs/set_digital_output.h>\n#include \"diagnostic_msgs/DiagnosticStatus.h\"\n#include \"diagnostic_updater/diagnostic_updater.h\"\n#include \"diagnostic_updater/update_functions.h\"\n#include \"diagnostic_updater/DiagnosticStatusWrapper.h\"\n#include \"diagnostic_updater/publisher.h\"\n// #include <agvs_controller/AckermannDriveStamped.h>\n//#include <agvs_robot_control/AckermannDriveStamped.h>\n#include \"ackermann_msgs/AckermannDriveStamped.h\"\n#include <std_srvs/Empty.h>\n\n#define DEFAULT_MAX_SKID_LINEAR_SPEED\t2.0 //m/s\n#define DEFAULT_MAX_ANGULAR_POSITION\t2.0 // rads/s\n\n#define MAX_NUM_OF_BUTTONS\t\t\t16\n#define MAX_NUM_OF_AXES\t\t\t\t8\n#define MAX_NUM_OF_BUTTONS_PS3\t\t19\n#define MAX_NUM_OF_AXES_PS3\t\t\t20\n\n#define DEFAULT_NUM_OF_BUTTONS\t\t16\n#define DEFAULT_NUM_OF_AXES\t\t\t8\n\n#define DEFAULT_AXIS_LINEAR_X\t\t1\n#define DEFAULT_AXIS_ANGULAR\t\t0\t\n#define DEFAULT_SCALE_LINEAR\t\t1.0\n#define DEFAULT_SCALE_ANGULAR\t\t1.0\n\n\n#define DEFAULT_JOY\t\t\t\"/joy\"\n\n#define DEFAULT_HZ\t\t\t50.0\n\n//! Class to save the state of the buttons\nclass Button{\n\tint iPressed;\n\tbool bReleased;\n\t\n\tpublic:\n\t\n\tButton(){\n\t\tiPressed = 0;\n\t\tbReleased = false;\n\t}\n\t//! Set the button as 'pressed'/'released'\n\tvoid Press(int value){\t\t\n\t\tif(iPressed and !value){\n\t\t\tbReleased = true;\n\t\t\t\n\t\t}else if(bReleased and value)\n\t\t\tbReleased = false;\n\t\t\t\n\t\tiPressed = value;\n\t\t\t\n\t}\n\t\n\tint IsPressed(){\n\t\treturn iPressed;\n\t}\n\t\n\tbool IsReleased(){\n\t\tbool b = bReleased;\n\t\tbReleased = false;\n\t\treturn b;\n\t}\n};\n\n////////////////////////////////////////////////////////////////////////\n//                               \t\t                                //\n////////////////////////////////////////////////////////////////////////\nclass AgvsPad\n{\n\tpublic:\n\t\n\tAgvsPad();\n\t\n\tvoid ControlLoop();\n\tint SetStateMode(int state, int arm_mode, int platform_mode);\n\t\n\tprivate:\n\t\n\tvoid joyCallback(const sensor_msgs::Joy::ConstPtr& joy);\n\t\n\tchar * StateToString(int state);\n\tint SwitchToState(int new_state);\n\t\n\tvoid PublishState();\n\t//! Enables/Disables the joystick\n\tbool EnableDisable(robotnik_msgs::enable_disable::Request &req, robotnik_msgs::enable_disable::Response &res );\n\tvoid Update();\n\t\nprivate:\t\n\t\n\tros::NodeHandle nh_;\n\t\n\tint axis_linear_speed_, axis_angular_position_;\n\tdouble l_scale_, a_scale_;\n\tdouble current_speed_lvl;\n\t//! Set the max speed sent to the robot\n\tdouble max_linear_speed_, max_angular_position_;\n\t//! Desired component's freq\n\tdouble desired_freq_;\n\t\n\t// TOPICS\n\t//! It will publish into command velocity (for the robot)\n\tros::Publisher vel_pub_;\n\t\n\t//! they will be suscribed to the joysticks\n\tros::Subscriber joy_sub_;\n\t//! // Name of the joystick's topic\n\tstd::string  joy_topic_;\t\n\t//! Name of the topic where it will be publishing the velocity\n\tstd::string cmd_topic_vel;\n\t//! Name of the service where it will be modifying the digital outputs\n\tstd::string cmd_service_io_;\n\t//! topic name for the state\n\tstd::string topic_state_;\n\t//! Topic to publish the state\n\tros::Publisher state_pub_;\n\n\t//! Name of the service called to raise the elevator\n\tstd::string service_raise_elevator_;\n\t//! Name of the service called to lower the elevator\n\tstd::string service_lower_elevator_;\n\n\t// SERVICES\n\t//! Service clients\n\tros::ServiceServer enable_disable_srv_;\t\n\tros::ServiceClient set_digital_outputs_client_;  \n\tros::ServiceClient raise_elevator_client_;  \n\tros::ServiceClient lower_elevator_client_;  \n\n\t\n\t// JOYSTICK\n\t//! Current number of buttons of the joystick\n\tint num_of_buttons_;\n\tint num_of_axes_;\n\t\n\t//! Vector to save the axis values\n\tstd::vector<float> fAxes;\n\t//! Vector to save and control the axis values\n\tstd::vector<Button> vButtons;\n\t//! Number of the DEADMAN button\n\tint button_dead_man_;\n\t//! Number of the button for increase or decrease the speed max of the joystick\t\n\tint button_speed_up_, button_speed_down_;\n\tint button_up_car_, button_down_car_;\n\tint output_1_, output_2_;\n\tbool bOutput1, bOutput2;\n\t\t\n\t// DIAGNOSTICS\n\t//! Diagnostic to control the frequency of the published command velocity topic\n\tdiagnostic_updater::HeaderlessTopicDiagnostic *pub_command_freq; \n\t//! Diagnostic to control the reception frequency of the subscribed joy topic \n\tdiagnostic_updater::HeaderlessTopicDiagnostic *sus_joy_freq; \n\t//! General status diagnostic updater\n\tdiagnostic_updater::Updater updater_pad;\t\n\t//! Diagnostics min freq\n\tdouble min_freq_command, min_freq_joy; \n\t//! Diagnostics max freq\n\tdouble max_freq_command, max_freq_joy; \t\n\t//! Flag to enable/disable the communication with the publishers topics\n\tbool bEnable;\n};\n\n\nAgvsPad::AgvsPad():\n  axis_linear_speed_(1),\n  axis_angular_position_(2), nh_(\"~\")\n{\n\t\n\tcurrent_speed_lvl = 0.1;\n\t// JOYSTICK CONFIG\n\tnh_.param(\"num_of_buttons\", num_of_buttons_, DEFAULT_NUM_OF_BUTTONS);\n\tnh_.param(\"num_of_axes\", num_of_axes_, DEFAULT_NUM_OF_AXES);\n\tnh_.param(\"desired_freq\", desired_freq_, DEFAULT_HZ);\n\t\n\tif(num_of_axes_ > MAX_NUM_OF_AXES){\n\t\tnum_of_axes_ = MAX_NUM_OF_AXES;\n\t\tROS_INFO(\"AgvsPad::AgvsPad: Limiting the max number of axes to %d\", MAX_NUM_OF_AXES);\n\t}\n\tif(num_of_buttons_ > MAX_NUM_OF_BUTTONS){\n\t\tnum_of_buttons_ = MAX_NUM_OF_BUTTONS;\n\t\tROS_INFO(\"AgvsPad::AgvsPad: Limiting the max number of buttons to %d\", MAX_NUM_OF_BUTTONS);\n\t}\n\t\n\tnh_.param(\"topic_joy\", joy_topic_, std::string(DEFAULT_JOY));\t\n\t\n\t// MOTION CONF\n\tnh_.param(\"cmd_topic_vel\", cmd_topic_vel, std::string(\"/agvs_controller/command\"));\n\t\n\tnh_.param(\"button_dead_man\", button_dead_man_, button_dead_man_);\n\tnh_.param(\"button_speed_up\", button_speed_up_, button_speed_up_);\n\tnh_.param(\"button_speed_down\", button_speed_down_, button_speed_down_); \n\t\n\tnh_.param(\"max_angular_position\", max_angular_position_, DEFAULT_MAX_ANGULAR_POSITION); \n\tnh_.param(\"max_linear_speed_\", max_linear_speed_, DEFAULT_MAX_SKID_LINEAR_SPEED); \n\tnh_.param(\"axis_linear_speed\", axis_linear_speed_, DEFAULT_AXIS_LINEAR_X); \n\tnh_.param(\"axis_angular_position\", axis_angular_position_, DEFAULT_AXIS_ANGULAR); \n\tROS_INFO(\"axis_linear_speed_ = %d, axis_angular = %d\", axis_linear_speed_, axis_angular_position_);\n\tROS_INFO(\"max_linear_speed = %lf, max_angular_speed = %lf\", max_linear_speed_, max_angular_position_);\n\t\n\t// DIGITAL OUTPUTS CONF\n\tnh_.param(\"cmd_service_io\", cmd_service_io_, cmd_service_io_);\n\tnh_.param(\"button_up_car\", button_up_car_, button_up_car_);\n\tnh_.param(\"button_down_car\", button_down_car_, button_down_car_);\n\tnh_.param(\"output_1\", output_1_, output_1_);\n\tnh_.param(\"output_2\", output_2_, output_2_);\n\t\n\tnh_.param(\"topic_state\", topic_state_, std::string(\"/agvs_pad/state\"));\n\t\n\tnh_.param(\"service_raise_elevator\", service_raise_elevator_, std::string(\"/agvs_robot_control/raise_elevator\"));\n\tnh_.param(\"service_lower_elevator\", service_lower_elevator_, std::string(\"/agvs_robot_control/lower_elevator\"));\n\t\n\tROS_INFO(\"AgvsPad num_of_buttons_ = %d, axes = %d, topic controller: %s, hz = %.2lf\", num_of_buttons_, num_of_axes_, cmd_topic_vel.c_str(), desired_freq_);\t\n\t\n\tfor(int i = 0; i < MAX_NUM_OF_BUTTONS_PS3; i++){\n\t\tButton b;\n\t\tvButtons.push_back(b);\n\t}\n\t\n\tfor(int i = 0; i < MAX_NUM_OF_AXES_PS3; i++){\n\t\tfAxes.push_back(0.0);\n\t}\n\t\n\t//\n  \t// Publish through the node handle Twist type messages to the guardian_controller/command topic\n  \t//this->vel_pub_ = nh_.advertise<agvs_controller::AckermannDriveStamped>(this->cmd_topic_vel, 1);\n  \tthis->vel_pub_ = nh_.advertise<ackermann_msgs::AckermannDriveStamped>(this->cmd_topic_vel, 1);\n\t\n\t//\n\t// Publishes the state\n\t//state_pub_ = nh_.advertise<agvs_pad::rescuer_pad_state>(topic_state_, 1);\n\t\n \t// Listen through the node handle sensor_msgs::Joy messages from joystick \n\t// (these are the references that we will sent to rescuer_controller/command)\n\tjoy_sub_ = nh_.subscribe<sensor_msgs::Joy>(joy_topic_, 1, &AgvsPad::joyCallback, this);\n\t\n \t// Request service to activate / deactivate digital I/O\n\tset_digital_outputs_client_ = nh_.serviceClient<robotnik_msgs::set_digital_output>(cmd_service_io_);\n\n    // Request raise or lower the elevator\t\n\traise_elevator_client_ = nh_.serviceClient<std_srvs::Empty>(service_raise_elevator_);\n\tlower_elevator_client_ = nh_.serviceClient<std_srvs::Empty>(service_lower_elevator_);\n\t\n\t\n\tbOutput1 = bOutput2 = false;\n\n   \n\t// Diagnostics\n\tupdater_pad.setHardwareID(\"AGVS-PAD\");\n\t// Topics freq control \n\tmin_freq_command = min_freq_joy = 5.0;\n\tmax_freq_command = max_freq_joy = 50.0;\n\tsus_joy_freq = new diagnostic_updater::HeaderlessTopicDiagnostic(\"/joy\", updater_pad,\n\t                    diagnostic_updater::FrequencyStatusParam(&min_freq_joy, &max_freq_joy, 0.1, 10));\n\n\tpub_command_freq = new diagnostic_updater::HeaderlessTopicDiagnostic(cmd_topic_vel.c_str(), updater_pad,\n\t                    diagnostic_updater::FrequencyStatusParam(&min_freq_command, &max_freq_command, 0.1, 10));\n\n\t// Advertises new service to enable/disable the pad\n\tenable_disable_srv_ = nh_.advertiseService(\"/agvs_pad/enable_disable\",  &AgvsPad::EnableDisable, this);\n\t//\n\tbEnable = true;\t// Communication flag enabled by default\n\t\n}\n\n\n/*\n *\t\\brief Updates the diagnostic component. Diagnostics\n * \t\t   Publishes the state\n *\n */\nvoid AgvsPad::Update(){\n\tPublishState();\n}\n\n//! \nvoid AgvsPad::PublishState(){\n\t/*agvs_pad::rescuer_pad_state pad_state;\n\t\n\t\n\tpad_state.state = StateToString(iState);\n\tpad_state.arm_mode = ModeToString(iArmMode);\n\tpad_state.platform_mode = ModeToString(iPlatformMode);\n\tpad_state.speed_level = current_speed_lvl;\n\tpad_state.deadman_active = (bool) vButtons[button_dead_man_].IsPressed();\n\t\n\tstate_pub_.publish(pad_state);*/\n\t\n}\n\n/*\n *\t\\brief Enables/Disables the pad\n *\n */\nbool AgvsPad::EnableDisable(robotnik_msgs::enable_disable::Request &req, robotnik_msgs::enable_disable::Response &res )\n{\n\tbEnable = req.value;\n\n\tROS_INFO(\"AgvsPad::EnablaDisable: Setting to %d\", req.value);\n\tres.ret = true;\n\treturn true;\n}\n\n\nvoid AgvsPad::joyCallback(const sensor_msgs::Joy::ConstPtr& joy)\n{\n\t\n\t// First joystick being saved\n\tfor(int i = 0; i < joy->axes.size(); i++){\n\t\tthis->fAxes[i] = joy->axes[i];\n\t}\n\tfor(int i = 0; i < joy->buttons.size(); i++){\n\t\tthis->vButtons[i].Press(joy->buttons[i]);\n\t}\n\t\n\t//ROS_INFO(\"AgvsPad::joyCallback: num_of_axes = %d, buttons = %d\", (int)(joy->axes.size()), (int)(joy->buttons.size()));\n}\n\n\n//! Controls the actions and states\nvoid AgvsPad::ControlLoop(){\n\tdouble desired_linear_speed = 0.0, desired_angular_position = 0.0;\n\t//agvs_controller::AckermannDriveStamped ref_msg;\n\tackermann_msgs::AckermannDriveStamped ref_msg;\n\t\n\t\n\tros::Rate r(desired_freq_);   \n\n    while(ros::ok()) {\n\t\t\n\t\tUpdate();\n\t\t\t\n\t\tif(bEnable){\n\t\t\t\t\t\t\n\t\t\tif(vButtons[button_dead_man_].IsPressed()){\n\t\t\t\tref_msg.header.stamp = ros::Time::now();\n\t\t\t\tref_msg.drive.jerk = 0.0; \n\t\t\t\tref_msg.drive.acceleration = 0.0; \n\t\t\t\tref_msg.drive.steering_angle_velocity = 0.0;\n\t\t\t\n\t\t\t\tdesired_linear_speed = max_linear_speed_ * current_speed_lvl * fAxes[axis_linear_speed_];\n\t\t\t\tdesired_angular_position = max_angular_position_ * fAxes[axis_angular_position_];\n\t\t\t\t\n\t\t\t\tref_msg.drive.steering_angle = desired_angular_position;\n\t\t\t\tref_msg.drive.speed = desired_linear_speed;\n\t\t\t\t\n\t\t\t\t// Publish into command_vel topic\n\t\t\t\tvel_pub_.publish(ref_msg);\n\t\t\t\n\t\t\t\tif(vButtons[button_speed_up_].IsReleased()){\n\t\t\t\t\tcurrent_speed_lvl += 0.1;\n\t\t\t\t\tif(current_speed_lvl > 1.0)\n\t\t\t\t\t\tcurrent_speed_lvl = 1.0;\n\t\t\t\t}\n\t\t\t\tif(vButtons[button_speed_down_].IsReleased()){\n\t\t\t\t\tcurrent_speed_lvl -= 0.1;\n\t\t\t\t\tif(current_speed_lvl < 0.0)\n\t\t\t\t\t\tcurrent_speed_lvl = 0.0;\n\t\t\t\t}\t\t\t\t\n\t\t\t\tif (vButtons[button_up_car_].IsReleased()){\n\t\t\t\t\tstd_srvs::Empty empty_srv;\n\t\t\t\t\traise_elevator_client_.call( empty_srv );\n\t\t\t\t\tROS_INFO(\"Raise elevator\");\n\t\t\t\t}\n\t\t\t\tif (vButtons[button_down_car_].IsReleased()){\n\t\t\t\t\tstd_srvs::Empty empty_srv;\n\t\t\t\t\tlower_elevator_client_.call( empty_srv );\n\t\t\t\t\tROS_INFO(\"Lower elevator\");\n\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t}else if(vButtons[button_dead_man_].IsReleased()){\n\t\t\t\tref_msg.header.stamp = ros::Time::now();\n\t\t\t\tref_msg.drive.jerk = 0.0; \n\t\t\t\tref_msg.drive.acceleration = 0.0; \n\t\t\t\tref_msg.drive.steering_angle_velocity = 0.0;\n\t\t\t\t\n\t\t\t\tref_msg.drive.steering_angle = 0.0;\n\t\t\t\tref_msg.drive.speed = 0.0;\n\t\t\t\t//ROS_INFO(\"AgvsPad::ControlLoop: Deadman released!\");\n\t\t\t\tvel_pub_.publish(ref_msg);// Publish into command_vel topic\n\t\t\t}\n\t\t}\n\t\t\n\t\tros::spinOnce();\n\t\tr.sleep();\n\t}\n    \t\n}\n\n\n///////////////////////// MAIN /////////////////////////////////\nint main(int argc, char** argv)\n{\n\tros::init(argc, argv, \"agvs_pad\");\n\tAgvsPad pad;\n\t\n\tpad.ControlLoop();\n\t\n}\n\n"
  },
  {
    "path": "agvs_robot_control/.rosinstall",
    "content": "# Robotnik stacks\n\n- git: {local-name: robotnik_msgs, version: master, uri: 'https://github.com/RobotnikAutomation/robotnik_msgs.git'}\n"
  },
  {
    "path": "agvs_robot_control/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 2.8.3)\nproject(agvs_robot_control)\n\n## Find catkin macros and libraries\n## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)\n## is used, also find other catkin packages\nfind_package(catkin REQUIRED COMPONENTS\n  message_generation\n  geometry_msgs\n  robotnik_msgs\n  roscpp\n  sensor_msgs\n  std_srvs\n  std_msgs\n  tf\n  ackermann_msgs\n)\n\n## Generate messages in the 'msg' folder\n#add_message_files(\n#   FILES\n#   AckermannDrive.msg\n#   AckermannDriveStamped.msg\n#)\n\n## Generate services in the 'srv' folder\n# add_service_files(\n#   FILES\n#   Service1.srv\n#   Service2.srv\n# )\n\n## Generate added messages and services with any dependencies listed here\n#generate_messages(DEPENDENCIES agvs_robot_control std_msgs)\n\n\ncatkin_package(\n  CATKIN_DEPENDS \n     roscpp\n     robotnik_msgs \n     sensor_msgs\n     std_srvs \n     std_msgs\n     tf\n     ackermann_msgs\n)\n\n## Specify additional locations of header files\ninclude_directories(\n  include\n  ${catkin_INCLUDE_DIRS}\n)\n\n## Declare a cpp executable\nadd_executable(agvs_robot_control src/agvs_robot_control.cpp)\n\n## Add cmake target dependencies of the executable/library\n## as an example, message headers may need to be generated before nodes\n#add_dependencies(agvs_robot_control agvs_robot_control_generate_messages_cpp)\n\n## Specify libraries to link a library or executable target against\ntarget_link_libraries(agvs_robot_control\n   ${catkin_LIBRARIES}\n)\n"
  },
  {
    "path": "agvs_robot_control/launch/agvs_robot_control.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n\n  <rosparam command=\"load\" file=\"$(find agvs_robot_control)/launch/agvs_robot_control.yaml\" />\n\n  <node name=\"agvs_robot_control\" pkg=\"agvs_robot_control\" type=\"agvs_robot_control\" output=\"screen\"/>\n  \n</launch>\n"
  },
  {
    "path": "agvs_robot_control/launch/agvs_robot_control.yaml",
    "content": "agvs_robot_control:\n\n     model: agvs\n\n      # kinematic parameters \n     agvs_wheel_diameter: 0.2195\n     agvs_dist_to_center: 0.479\n\n     publish_odom_tf: true\n     imu_topic: /agvs/imu_data\n"
  },
  {
    "path": "agvs_robot_control/msg/AckermannDrive.msg",
    "content": "## Driving command for a car-like vehicle using Ackermann steering.\n#  $Id: AckermannDrive.msg 1966 2012-02-11 17:52:11Z jack.oquin $\n\n# Assumes Ackermann front-wheel steering. The left and right front\n# wheels are generally at different angles. To simplify, the commanded\n# angle corresponds to the yaw of a virtual wheel located at the\n# center of the front axle, like on a tricycle.  Positive yaw is to\n# the left. (This is *not* the angle of the steering wheel inside the\n# passenger compartment.)\n#\n# Zero steering angle velocity means change the steering angle as\n# quickly as possible. Positive velocity indicates a desired absolute\n# rate of change either left or right. The controller tries not to\n# exceed this limit in either direction, but sometimes it might.\n#\nfloat32 steering_angle          # desired virtual angle (radians)\nfloat32 steering_angle_velocity # desired rate of change (radians/s)\n\n# Drive at requested speed, acceleration and jerk (the 1st, 2nd and\n# 3rd derivatives of position). All are measured at the vehicle's\n# center of rotation, typically the center of the rear axle. The\n# controller tries not to exceed these limits in either direction, but\n# sometimes it might.\n#\n# Speed is the desired scalar magnitude of the velocity vector.\n# Direction is forward unless the sign is negative, indicating reverse.\n#\n# Zero acceleration means change speed as quickly as\n# possible. Positive acceleration indicates a desired absolute\n# magnitude; that includes deceleration.\n#\n# Zero jerk means change acceleration as quickly as possible. Positive\n# jerk indicates a desired absolute rate of acceleration change in\n# either direction (increasing or decreasing).\n#\nfloat32 speed                   # desired forward speed (m/s)\nfloat32 acceleration            # desired acceleration (m/s^2)\nfloat32 jerk                    # desired jerk (m/s^3)\n"
  },
  {
    "path": "agvs_robot_control/msg/AckermannDriveStamped.msg",
    "content": "## Time stamped drive command for robots with Ackermann steering.\n#  $Id: AckermannDriveStamped.msg 1958 2012-02-11 02:35:54Z jack.oquin $\n\nHeader          header\nAckermannDrive  drive\n"
  },
  {
    "path": "agvs_robot_control/package.xml",
    "content": "<?xml version=\"1.0\"?>\n<package>\n  <name>agvs_robot_control</name>\n  <version>0.1.0</version>\n  <description>The agvs_robot_control package. Robot controller that interacts with Gazebo motor controllers.</description>\n\n  <maintainer email=\"rguzman@robotnik.es\">Roberto Guzmán</maintainer>\n  <maintainer email=\"rnavarro@robotnik.es\">Román Navarro</maintainer>\n\n  <license>BSD</license>\n\n  <url type=\"website\">http://wiki.ros.org/agvs_robot_control</url>\n  <url type=\"repository\">https://github.com/RobotnikAutomation/agvs</url>\n  <url type=\"bugtracker\">https://github.com/RobotnikAutomation/agvs/issues</url>\n\n\n  <author email=\"rguzman@robotnik.es\">Roberto Guzmán</author>\n\n\n  <buildtool_depend>catkin</buildtool_depend>\n  <build_depend>robotnik_msgs</build_depend>\n  <build_depend>roscpp</build_depend>\n  <build_depend>sensor_msgs</build_depend>\n  <build_depend>std_srvs</build_depend>\n  <build_depend>std_msgs</build_depend>\n  <build_depend>tf</build_depend>\n  <build_depend>message_generation</build_depend>\n  <build_depend>ackermann_msgs</build_depend>\n  <run_depend>robotnik_msgs</run_depend>\n  <run_depend>roscpp</run_depend>\n  <run_depend>sensor_msgs</run_depend>\n  <run_depend>std_srvs</run_depend>\n  <run_depend>std_msgs</run_depend>\n  <run_depend>tf</run_depend>\n  <run_depend>message_runtime</run_depend>\n  <run_depend>ackermann_msgs</run_depend>\n\n  <export>\n\n  </export>\n\n</package>\n"
  },
  {
    "path": "agvs_robot_control/src/agvs_robot_control.cpp",
    "content": "/*\n * agvs_robot_control\n * Copyright (c) 2014, Robotnik Automation, SLL\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n *     * Redistributions of source code must retain the above copyright\n *       notice, this list of conditions and the following disclaimer.\n *     * Redistributions in binary form must reproduce the above copyright\n *       notice, this list of conditions and the following disclaimer in the\n *       documentation and/or other materials provided with the distribution.\n *     * Neither the name of the Robotnik Automation, SLL. nor the names of its\n *       contributors may be used to endorse or promote products derived from\n *       this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *\n * \\author Robotnik\n * \\brief Controller for the AGVS robot Ackerman Drive\n * \\brief (will include dual odometry measurement)\n */\n\n#include <ros/ros.h>\n#include <sensor_msgs/JointState.h>\n#include <sensor_msgs/Imu.h>\n#include <geometry_msgs/Twist.h>\n#include <std_msgs/Float64.h>\n#include <tf/transform_broadcaster.h>\n#include <nav_msgs/Odometry.h>\n#include <robotnik_msgs/set_mode.h>\n#include <robotnik_msgs/get_mode.h>\n#include <robotnik_msgs/set_odometry.h>\n#include <robotnik_msgs/ptz.h>\n\n#include \"ackermann_msgs/AckermannDriveStamped.h\"\n\n#include \"diagnostic_msgs/DiagnosticStatus.h\"\n#include \"diagnostic_updater/diagnostic_updater.h\"\n#include \"diagnostic_updater/update_functions.h\"\n#include \"diagnostic_updater/DiagnosticStatusWrapper.h\"\n#include \"diagnostic_updater/publisher.h\"\n#include <std_srvs/Empty.h>\n\n\n#define PI 3.1415926535\n#define AGVS_MIN_COMMAND_REC_FREQ     5.0\n#define AGVS_MAX_COMMAND_REC_FREQ     150.0\n\n#define AGVS_WHEEL_DIAMETER\t          0.2195      // Default wheel diameter\n#define DEFAULT_DIST_CENTER_TO_WHEEL  0.479       // Default distance center to motorwheel\n    \n#define MAX_ELEVATOR_POSITION\t0.05\t\t// meters\n\nusing namespace std;\n\nclass AGVSControllerClass {\n\npublic:\n\n  ros::NodeHandle node_handle_;\n  ros::NodeHandle private_node_handle_;\n  double desired_freq_;\n\n  // Diagnostics\n  diagnostic_updater::Updater diagnostic_;\t\t\t// General status diagnostic updater\n  diagnostic_updater::FrequencyStatus freq_diag_;\t\t         // Component frequency diagnostics\n  diagnostic_updater::HeaderlessTopicDiagnostic *subs_command_freq; // Topic reception frequency diagnostics\n  ros::Time last_command_time_;\t\t\t\t\t// Last moment when the component received a command\n  diagnostic_updater::FunctionDiagnosticTask command_freq_;\n\n  // Robot model \n  std::string robot_model_;\n  \n  // Velocity and position references to low level controllers\n  ros::Publisher ref_vel_fwd_;\n  ros::Publisher ref_vel_bwd_;\n  ros::Publisher ref_pos_fwd_;\n  ros::Publisher ref_pos_bwd_;\n  ros::Publisher ref_pos_elevator_;\n\n  // Joint states published by the joint_state_controller of the Controller Manager\n  ros::Subscriber joint_state_sub_;\n\n  // High level robot command\n  ros::Subscriber cmd_sub_;\n\t\n  // Services\n  ros::ServiceServer srv_SetOdometry_;\n  ros::ServiceServer srv_SetMode_;\n  ros::ServiceServer srv_GetMode_;\n  ros::ServiceServer srv_RaiseElevator_;\n  ros::ServiceServer srv_LowerElevator_;\n  \n  // Topics - Ackerman - velocity\n  std::string fwd_vel_topic_;\n  std::string bwd_vel_topic_;\n  \n  // Joint names - Ackerman - velocity \n  std::string joint_front_wheel;\n  std::string joint_back_wheel;\n\n  // Topics - Ackerman - position\n  std::string fwd_pos_topic_;\n  std::string bwd_pos_topic_;\n  std::string elevator_pos_topic_;\n  \n  std::string imu_topic_;\n    \n  // Joint names - Ackerman - position\n  std::string joint_front_motor_wheel;\n  std::string joint_back_motor_wheel;\n    \n  // Indexes to joint_states\n  int fwd_vel_, bwd_vel_;\n  int fwd_pos_, bwd_pos_;\n\n  // Robot Speeds\n  double linearSpeedXMps_;\n  double linearSpeedYMps_;\n  double angularSpeedRads_;\n\n  // Robot Positions\n  double robot_pose_px_;\n  double robot_pose_py_;\n  double robot_pose_pa_;\n  double robot_pose_vx_;\n  double robot_pose_vy_;\n  \n  // Robot Joint States\n  sensor_msgs::JointState joint_state_;\n  \n  // Command reference\n  // geometry_msgs::Twist base_vel_msg_;\n  ackermann_msgs::AckermannDriveStamped base_vel_msg_;\n\n  // External references\n  double v_ref_;\n  double a_ref_;\n\n  double v_mps_;  // Measured real robot speed traction wheel speed\n  \n  // Flag to indicate if joint_state has been read\n  bool read_state_; \n  \n  // Robot configuration parameters \n  double agvs_wheel_diameter_; \n  double agvs_dist_to_center_;\n\n  // IMU values\n  double ang_vel_x_;\n  double ang_vel_y_;\n  double ang_vel_z_;\n\n  double lin_acc_x_;\n  double lin_acc_y_;\n  double lin_acc_z_;\n\n  double orientation_diff_x_;\n  double orientation_diff_y_;\n  double orientation_diff_z_;\n  double orientation_diff_w_;\n\n  // Parameter that defines if odom tf is published or not\n  bool publish_odom_tf_;\n\n  ros::Subscriber imu_sub_; \n  \n  // Publisher for odom topic\n  ros::Publisher odom_pub_; \n\n  // Broadcaster for odom tf  \n  tf::TransformBroadcaster odom_broadcaster;\n\n\n/*!\t\\fn AGVSControllerClass::AGVSControllerClass()\n * \t\\brief Public constructor\n*/\nAGVSControllerClass(ros::NodeHandle h) : diagnostic_(),\n  node_handle_(h), private_node_handle_(\"~\"), \n  desired_freq_(100.0),\n  freq_diag_(diagnostic_updater::FrequencyStatusParam(&desired_freq_, &desired_freq_, 0.05)   ),\n  command_freq_(\"Command frequency check\", boost::bind(&AGVSControllerClass::check_command_subscriber, this, _1))\n  {\n\n  ROS_INFO(\"agvs_robot_control_node - Init \");\n  \n  ros::NodeHandle agvs_robot_control_node_handle(node_handle_, \"agvs_robot_control\");\n\n  // Get robot model from the parameters\n  if (!private_node_handle_.getParam(\"model\", robot_model_)) {\n\t  ROS_ERROR(\"Robot model not defined.\");\n\t  exit(-1);\n\t  }\n  else ROS_INFO(\"Robot Model : %s\", robot_model_.c_str());\n\n  // Ackerman configuration - topics (control actions)\n  private_node_handle_.param<std::string>(\"fwd_vel_topic\", fwd_vel_topic_, \"/agvs/joint_front_wheel_controller/command\");\n  private_node_handle_.param<std::string>(\"bwd_vel_topic\", bwd_vel_topic_, \"/agvs/joint_back_wheel_controller/command\");\n  private_node_handle_.param<std::string>(\"fwd_pos_topic\", fwd_pos_topic_, \"/agvs/joint_front_motor_wheel_controller/command\");\n  private_node_handle_.param<std::string>(\"bwd_pos_topic\", bwd_pos_topic_, \"/agvs/joint_back_motor_wheel_controller/command\");\n  private_node_handle_.param<std::string>(\"elevator_pos_topic\", elevator_pos_topic_, \"/agvs/joint_elevator_controller/command\");\n  private_node_handle_.param<std::string>(\"imu_topic\", imu_topic_, \"/agvs/imu_data\");\n\n  // Ackerman configuration - joint names \n  private_node_handle_.param<std::string>(\"joint_front_wheel\", joint_front_wheel, \"joint_front_wheel\");\n  private_node_handle_.param<std::string>(\"joint_back_wheel\", joint_back_wheel, \"joint_back_wheel\");\n  private_node_handle_.param<std::string>(\"joint_front_motor_wheel\", joint_front_motor_wheel, \"joint_front_motor_wheel\");\n  private_node_handle_.param<std::string>(\"joint_back_motor_wheel\", joint_back_motor_wheel, \"joint_back_motor_wheel\");\n\n  // Robot kinematic parameters \n  if (!private_node_handle_.getParam(\"agvs_wheel_diameter\", agvs_wheel_diameter_))\n\t\tagvs_wheel_diameter_ = AGVS_WHEEL_DIAMETER; \n  if (!private_node_handle_.getParam(\"agvs_dist_to_center\", agvs_dist_to_center_))\n\t\tagvs_dist_to_center_ = DEFAULT_DIST_CENTER_TO_WHEEL;\n  //ROS_INFO(\"agvs_wheel_diameter_ = %5.2f\", agvs_wheel_diameter_);\n  //ROS_INFO(\"agvs_dist_to_center_ = %5.2f\", agvs_dist_to_center_);\n\n  private_node_handle_.param(\"publish_odom_tf\", publish_odom_tf_, true);\n  if (publish_odom_tf_) ROS_INFO(\"PUBLISHING odom->base_footprint tf\");\n  else ROS_INFO(\"NOT PUBLISHING odom->base_footprint tf\");\n  \n  // Robot Speeds\n  linearSpeedXMps_   = 0.0;\n  linearSpeedYMps_   = 0.0;\n  angularSpeedRads_  = 0.0;\n\n  // Robot Positions\n  robot_pose_px_ = 0.0;\n  robot_pose_py_ = 0.0;\n  robot_pose_pa_ = 0.0;\n  robot_pose_vx_ = 0.0;\n  robot_pose_vy_ = 0.0;\n\n  // External speed references\n  v_ref_ = 0.0;\n  a_ref_ = 0.0;\n\n  // Imu variables\n  ang_vel_x_ = 0.0; ang_vel_y_ = 0.0; ang_vel_z_ = 0.0;\n  lin_acc_x_ = 0.0; lin_acc_y_ = 0.0; lin_acc_z_ = 0.0;\n  orientation_diff_x_ = 0.0; orientation_diff_y_ = 0.0; orientation_diff_z_ = 0.0; orientation_diff_w_ = 1.0;\n\n  // Advertise services\n  srv_SetOdometry_ = private_node_handle_.advertiseService(\"set_odometry\",  &AGVSControllerClass::srvCallback_SetOdometry, this);\n  srv_RaiseElevator_ = private_node_handle_.advertiseService(\"raise_elevator\",  &AGVSControllerClass::srvCallback_RaiseElevator, this);\n  srv_LowerElevator_ = private_node_handle_.advertiseService(\"lower_elevator\",  &AGVSControllerClass::srvCallback_LowerElevator, this);\n\n  // Subscribe to joint states topic\n  joint_state_sub_ = agvs_robot_control_node_handle.subscribe<sensor_msgs::JointState>(\"/agvs/joint_states\", 1, &AGVSControllerClass::jointStateCallback, this);\n  //joint_state_sub_ = private_node_handle_.subscribe<sensor_msgs::JointState>(\"joint_states\", 1, &AGVSControllerClass::jointStateCallback, this);\n  //joint_state_sub_ = summit_xl_robot_control_node_handle.subscribe<sensor_msgs::JointState>(\"/summit_xl/joint_states\", 1, &SummitXLControllerClass::jointStateCallback, this);\n\n\n  // Subscribe to imu data\n  // imu_sub_ = agvs_robot_control_node_handle.subscribe(\"/agvs/imu_data\", 1, &AGVSControllerClass::imuCallback, this);\n  imu_sub_ = private_node_handle_.subscribe(imu_topic_, 1, &AGVSControllerClass::imuCallback, this);\n\n  // Adevertise reference topics for the controllers \n  ref_vel_fwd_ = private_node_handle_.advertise<std_msgs::Float64>( fwd_vel_topic_, 50);\n  ref_vel_bwd_ = private_node_handle_.advertise<std_msgs::Float64>( bwd_vel_topic_, 50);\n  ref_pos_fwd_ = private_node_handle_.advertise<std_msgs::Float64>( fwd_pos_topic_, 50);\n  ref_pos_bwd_ = private_node_handle_.advertise<std_msgs::Float64>( bwd_pos_topic_, 50);\t  \n  ref_pos_elevator_ = private_node_handle_.advertise<std_msgs::Float64>( elevator_pos_topic_, 50);\t  \n  \t  \n  // Subscribe to command topic\n  cmd_sub_ = private_node_handle_.subscribe<ackermann_msgs::AckermannDriveStamped>(\"command\", 1, &AGVSControllerClass::commandCallback, this ); \n    \n  // TODO odom topic as parameter\n  // Publish odometry \n  odom_pub_ = private_node_handle_.advertise<nav_msgs::Odometry>(\"odom\", 1000);\n\n  // Component frequency diagnostics\n  diagnostic_.setHardwareID(\"agvs_robot_control - simulation\");\n  diagnostic_.add( freq_diag_ );\n  diagnostic_.add( command_freq_ );\n    \n  // Topics freq control \n  // For /agvs_robot_control/command\n  double min_freq = AGVS_MIN_COMMAND_REC_FREQ; // If you update these values, the\n  double max_freq = AGVS_MAX_COMMAND_REC_FREQ; // HeaderlessTopicDiagnostic will use the new values.\n  subs_command_freq = new diagnostic_updater::HeaderlessTopicDiagnostic(\"/agvs_robot_control/command\", diagnostic_,\n\t                    diagnostic_updater::FrequencyStatusParam(&min_freq, &max_freq, 0.1, 10));\n  subs_command_freq->addTask(&command_freq_); // Adding an additional task to the control\n  \n  // Flag to indicate joint_state has been read\n  read_state_ = false;\n  \n  // Robot ackermann measured speed.\n  v_mps_ = 0;\n}\n\n/// Controller startup in realtime\nint starting()\n{\n\n  ROS_INFO(\"AGVSControllerClass::starting\");\n\n// name: ['joint_back_motor_wheel', 'joint_back_wheel', 'joint_front_motor_wheel', 'joint_front_wheel']\n// position: [6.283185307179586, -3.14159, 6.283185307179586, -3.14159]\n// velocity: [nan, nan, nan, nan]\n\n  // Initialize joint indexes according to joint names \n  if (read_state_) {\n    vector<string> joint_names = joint_state_.name;\n    fwd_vel_ = find (joint_names.begin(),joint_names.end(), string(joint_front_wheel)) - joint_names.begin();\n    bwd_vel_ = find (joint_names.begin(),joint_names.end(), string(joint_back_wheel)) - joint_names.begin();\n    fwd_pos_ = find (joint_names.begin(),joint_names.end(), string(joint_front_motor_wheel)) - joint_names.begin();\n    bwd_pos_ = find (joint_names.begin(),joint_names.end(), string(joint_back_motor_wheel)) - joint_names.begin();\n    return 0;\n    }\n  else return -1;\n}\n\n/*!\t\\fn void UpdateOdometry()\n *\t\\brief Updates the values of the odometry\n *  Ackerman's odometry calculation (using motor speed and position of the motor direction)\n*/\nvoid UpdateOdometry(){\n\n    // TODO UpdateOdometry differential drive\n\t\n   // double v_left_mps, v_right_mps;\n   // Calculate its own velocities for realize the motor control \n   // v_left_mps = ((joint_state_.velocity[blw_vel_] + joint_state_.velocity[flw_vel_]) / 2.0) * (summit_xl_wheel_diameter_ / 2.0);\n   // v_right_mps = -((joint_state_.velocity[brw_vel_] + joint_state_.velocity[frw_vel_]) / 2.0) * (summit_xl_wheel_diameter_ / 2.0); \n   // sign according to urdf (if wheel model is not symetric, should be inverted)\n   // angularSpeedRads_ = (v_right_mps - v_left_mps) / summit_xl_d_tracks_m_;    // rad/s\n\n\n\tdouble fBetaRads = 0.0;\n\tdouble v_mps = 0.0;\n\n\t// Compute Position\n\tdouble fSamplePeriod = 1.0 / desired_freq_;\n\n\t// Linear speed of each wheel\n\tdouble v_fwd, v_bwd; \n\tv_fwd = joint_state_.velocity[fwd_vel_] * (agvs_wheel_diameter_ / 2.0);\n\tv_bwd = joint_state_.velocity[bwd_vel_] * (agvs_wheel_diameter_ / 2.0);\n\t//ROS_INFO(\"v_fwd = %.3lf, v_bwd = %.3lf\", v_fwd, v_bwd);\n\tv_mps = -(v_fwd + v_bwd) / 2.0;\n\n\t// Angle of fwd and bwd motorwheels\n\tdouble a_fwd, a_bwd;\n\ta_fwd = radnorm2( joint_state_.position[fwd_pos_] );\n\ta_bwd = radnorm2( joint_state_.position[bwd_pos_] );\n\tfBetaRads = a_fwd; // consider to get a mean, but both angles are antisimetric\n\t\n\t// Filter noise\n\tif(fabs(v_mps) < 0.00001) v_mps = 0.0;\n\n\t// Compute Odometry\n\tdouble w = (v_mps / agvs_dist_to_center_) * sin(fBetaRads);\n\trobot_pose_pa_ += w * fSamplePeriod;\n\n\t// normalize\n\tradnorm(&robot_pose_pa_);\n\t//ROS_INFO(\"Orientation = %.3lf\", robot_pose_pa_);\n\t// Velocities\n\trobot_pose_vx_ = v_mps * cos(fBetaRads) * cos(robot_pose_pa_);\n\trobot_pose_vy_ = v_mps * cos(fBetaRads) * sin(robot_pose_pa_);\n\t\n\t// Positions\n\trobot_pose_px_ += robot_pose_vx_ * fSamplePeriod;\n\trobot_pose_py_ += robot_pose_vy_ * fSamplePeriod;\n}\n\n// Publish robot odometry tf and topic depending \nvoid PublishOdometry()\n{\n\tros::Time current_time = ros::Time::now();\n\t\n    //first, we'll publish the transform over tf\n    geometry_msgs::TransformStamped odom_trans;\n    odom_trans.header.stamp = current_time;\n    odom_trans.header.frame_id = \"odom\";\n    odom_trans.child_frame_id = \"base_footprint\";\n\n    odom_trans.transform.translation.x = robot_pose_px_;\n    odom_trans.transform.translation.y = robot_pose_py_;\n    odom_trans.transform.translation.z = 0.0;\n\n\t// Convert theta from yaw (rads) to quaternion. note that this is only 2D !!!\n    double theta = robot_pose_pa_;\n    geometry_msgs::Quaternion quat = tf::createQuaternionMsgFromYaw( theta );\n    odom_trans.transform.rotation.x = quat.x;\n\todom_trans.transform.rotation.y = quat.y;\n\todom_trans.transform.rotation.z = quat.z;\n\todom_trans.transform.rotation.w = quat.w;\n\n\t\n    // send the transform over /tf\n\t// activate / deactivate with param\n\t// this tf in needed when not using robot_pose_ekf\n    if (publish_odom_tf_) odom_broadcaster.sendTransform(odom_trans);  \n        \n    //next, we'll publish the odometry message over ROS\n    nav_msgs::Odometry odom;\n    odom.header.stamp = current_time;\n    odom.header.frame_id = \"odom\";\n\n    //set the position\n\t// Position\n    odom.pose.pose.position.x = robot_pose_px_;\n    odom.pose.pose.position.y = robot_pose_py_;\n    odom.pose.pose.position.z = 0.0;\n\t// Orientation\n    odom.pose.pose.orientation.x = orientation_diff_x_;\n\todom.pose.pose.orientation.y = orientation_diff_y_;\n\todom.pose.pose.orientation.z = orientation_diff_z_;\n\todom.pose.pose.orientation.w = orientation_diff_w_;\n\t\n    // Pose covariance\n    for(int i = 0; i < 6; i++)\n      \t\todom.pose.covariance[i*6+i] = 0.1;  // test 0.001\n\n    //set the velocity\n    odom.child_frame_id = \"base_footprint\";\n\t// Linear velocities\n    odom.twist.twist.linear.x = robot_pose_vx_;\n    odom.twist.twist.linear.y = robot_pose_vy_;\n\todom.twist.twist.linear.z = 0.0;\n\t// Angular velocities\n\todom.twist.twist.angular.x = ang_vel_x_;\n\todom.twist.twist.angular.y = ang_vel_y_;\n    odom.twist.twist.angular.z = ang_vel_z_;\n\t// Twist covariance\n\tfor(int i = 0; i < 6; i++)\n     \t\todom.twist.covariance[6*i+i] = 0.1;  // test 0.001\n\n    //publish the message\n    odom_pub_.publish(odom);\n}\n\nvoid UpdateControl()\n{\n  // Ackerman reference messages\n  std_msgs::Float64 vel_ref_msg; \n  std_msgs::Float64 pos_ref_msg;\n  static double ev_ant = 0.0;\n\n  // Note that the controllers are not in speed mode, but in effort. Therefore the speed ref will be Nm.\n  // Open loop - works well but there is some inertia in the whole system and just setting torque to 0 does not stop the robot.\n  // vel_ref_msg.data = -v_ref_ * 20.0;\n  \n  // If using a JointEffortController Try a velocity control loop\n  // After 1.9.2 VelocityControllers in agvs_control should work \n  /*\n  double ev = v_mps_ - v_ref_;\n  double Kp = 30.0;\n  double Kd = 30.0;\n  vel_ref_msg.data = Kp * ev;  //+ Kd * (ev - ev_ant);\n  ev_ant = ev;\n  */\n\n  // Reference for velocity controllers\n  double Kp = 10.0;  // ref is in [m/s] while VelocityController expects ?\n  vel_ref_msg.data = -v_ref_ * Kp;\n\n  pos_ref_msg.data = a_ref_;\n\t   \t  \n  // Publish references \n  ref_vel_fwd_.publish( vel_ref_msg );\n  ref_vel_bwd_.publish( vel_ref_msg );\n  \n  ref_pos_fwd_.publish( pos_ref_msg );\n  pos_ref_msg.data = -a_ref_; // symetric angle\n  ref_pos_bwd_.publish( pos_ref_msg );\n}\n\n// Sets the motor position to the desired value\nvoid SetElevatorPosition(double val){\n\t\n\tstd_msgs::Float64 ref_msg; \n\t\n\tref_msg.data = val;\n\t\n\tref_pos_elevator_.publish( ref_msg );\n}\n\n/// Controller stopping\nvoid stopping()\n{}\n\n/*\n *\t\\brief Checks that the robot is receiving at a correct frequency the command messages. Diagnostics\n *\n */\nvoid check_command_subscriber(diagnostic_updater::DiagnosticStatusWrapper &stat)\n{\n\tros::Time current_time = ros::Time::now();\n\n\tdouble diff = (current_time - last_command_time_).toSec();\n\n\tif(diff > 1.0){\n\t\tstat.summary(diagnostic_msgs::DiagnosticStatus::WARN, \"Topic is not receiving commands\");\n\t\t//ROS_INFO(\"check_command_subscriber: %lf seconds without commands\", diff);\n\t\t// TODO: Set Speed References to 0\n\t}else{\n\t\tstat.summary(diagnostic_msgs::DiagnosticStatus::OK, \"Topic receiving commands\");\n\t}\n}\n\n// Service SetOdometry \nbool srvCallback_SetOdometry(robotnik_msgs::set_odometry::Request &request, robotnik_msgs::set_odometry::Response &response )\n{\n\t// ROS_INFO(\"summit_xl_odometry::set_odometry: request -> x = %f, y = %f, a = %f\", req.x, req.y, req.orientation);\n\trobot_pose_px_ = request.x;\n\trobot_pose_py_ = request.y;\n\trobot_pose_pa_ = request.orientation;\n\n\tresponse.ret = true;\n\treturn true;\n}\n\n// Service Raise Elevator \nbool srvCallback_RaiseElevator(std_srvs::Empty::Request &request, std_srvs::Empty::Response &response )\n{\n\t\n\tSetElevatorPosition(MAX_ELEVATOR_POSITION);\n\t\n\treturn true;\n}\n\n// Service Lower Elevator \nbool srvCallback_LowerElevator(std_srvs::Empty::Request &request, std_srvs::Empty::Response &response )\n{\n\tSetElevatorPosition(0.0);\n\t\n\treturn true;\n}\n\n\n// Topic command\nvoid jointStateCallback(const sensor_msgs::JointStateConstPtr& msg)\n{\t\n  joint_state_ = *msg;\n  read_state_ = true;\n}\n\n// Topic command\nvoid commandCallback(const ackermann_msgs::AckermannDriveStamped::ConstPtr& msg)\n{\n  // Safety check\n  last_command_time_ = ros::Time::now();\n  subs_command_freq->tick();\t\t\t// For diagnostics\n\n  double speed_limit = 2.0;  // m/s\n  double angle_limit = PI;   \n  v_ref_ = saturation(msg->drive.speed, -speed_limit, speed_limit);  \n  a_ref_ = saturation(msg->drive.steering_angle, -angle_limit, angle_limit);\n}\n\n// Imu callback\nvoid imuCallback( const sensor_msgs::Imu& imu_msg){\n\n\torientation_diff_x_ = imu_msg.orientation.x;\n\torientation_diff_y_ = imu_msg.orientation.y;\n\torientation_diff_z_ = imu_msg.orientation.z;\n\torientation_diff_w_ = imu_msg.orientation.w;\n\n\tang_vel_x_ = imu_msg.angular_velocity.x;\n\tang_vel_y_ = imu_msg.angular_velocity.y;\n\tang_vel_z_ = imu_msg.angular_velocity.z;\n\n\tlin_acc_x_ = imu_msg.linear_acceleration.x;\n\tlin_acc_y_ = imu_msg.linear_acceleration.y;\n    lin_acc_z_ = imu_msg.linear_acceleration.z;\n}\n\ndouble saturation(double u, double min, double max)\n{\n if (u>max) u=max;\n if (u<min) u=min;\n return u; \n}\n\n\n\n//! Normalize in rad \nstatic inline void radnorm(double* radians)\n{\n\twhile (*radians >= (PI)) {\n\t\t*radians -= 2.0 * PI;\n\t\t}\n\twhile (*radians <= (-PI)) {\n\t\t*radians += 2.0 * PI;\n\t\t}\n}\n\nstatic inline double radnorm2( double value ) \n{\n  while (value > 2.0*PI) value -= 2.0*PI;\n  while (value < -2.0*PI) value += 2.0*PI;\n  return value;\n}\n\nbool spin()\n{\n    ROS_INFO(\"agvs_robot_control::spin()\");\n    ros::Rate r(desired_freq_);  // 50.0 \n\n    while (!ros::isShuttingDown()) // Using ros::isShuttingDown to avoid restarting the node during a shutdown.\n    {\n      if (starting() == 0)\n      {\n\t    while(ros::ok() && node_handle_.ok()) {\n          UpdateControl();\n          UpdateOdometry();\n          PublishOdometry();\n          diagnostic_.update();\n          ros::spinOnce();\n\t      r.sleep();\n          }\n\t      ROS_INFO(\"END OF ros::ok() !!!\");\n      } else {\n       // No need for diagnostic here since a broadcast occurs in start\n       // when there is an error.\n       usleep(1000000);\n       ros::spinOnce();\n      }\n   }\n\n   ROS_INFO(\"agvs_robot_control::spin() - end\");\n   return true;\n}\n\n}; // Class AGVSControllerClass\n\nint main(int argc, char** argv)\n{\n\tros::init(argc, argv, \"agvs_robot_control\");\n\n\tros::NodeHandle n;\t\t\n  \tAGVSControllerClass sxlrc(n);\n\n    sxlrc.spin();\n\n\treturn (0);\n\n\t\n}\n\n"
  },
  {
    "path": "planner_msgs/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 2.8.3)\nproject(planner_msgs)\n\n## Find catkin macros and libraries\n## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)\n## is used, also find other catkin packages\nfind_package(catkin REQUIRED COMPONENTS\n  message_generation\n  actionlib\n  actionlib_msgs\n  geometry_msgs\n  nav_msgs\n  roscpp\n  std_msgs\n)\n\n## System dependencies are found with CMake's conventions\n# find_package(Boost REQUIRED COMPONENTS system)\n\n\n## Uncomment this if the package has a setup.py. This macro ensures\n## modules and global scripts declared therein get installed\n## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html\n# catkin_python_setup()\n\n################################################\n## Declare ROS messages, services and actions ##\n################################################\n## Generate messages in the 'msg' folder\nadd_message_files(\n   FILES\n   goal.msg\n)\n\n## Generate services in the 'srv' folder\n# add_service_files(\n#   FILES\n#   Service1.srv\n#   Service2.srv\n# )\n\n## Generate actions in the 'action' folder\n# add_action_files(\n#   FILES\n#   Action1.action\n#   Action2.action\n# )\nadd_action_files(DIRECTORY action FILES GoTo.action)\n\n## Generate added messages and services with any dependencies listed here\ngenerate_messages(DEPENDENCIES std_msgs actionlib_msgs geometry_msgs planner_msgs)\n\n\n###################################\n## catkin specific configuration ##\n###################################\n## The catkin_package macro generates cmake config files for your package\n## Declare things to be passed to dependent projects\n## INCLUDE_DIRS: uncomment this if you package contains header files\n## LIBRARIES: libraries you create in this project that dependent projects also need\n## CATKIN_DEPENDS: catkin_packages dependent projects also need\n## DEPENDS: system dependencies of this project that dependent projects also need\ncatkin_package(\n#  LIBRARIES purepursuit_planner\n  CATKIN_DEPENDS roscpp actionlib nav_msgs roscpp std_msgs actionlib_msgs geometry_msgs\n#  DEPENDS system_lib\n)\n###########\n## Build ##\n###########\n\n## Specify additional locations of header files\n## Your package locations should be listed before other locations\n# include_directories(include)\ninclude_directories(\n  ${catkin_INCLUDE_DIRS}\n)\n\n## Declare a cpp library\n# add_library(planner_msgs\n#   src/${PROJECT_NAME}/planner_msgs.cpp\n# )\n\n## Declare a cpp executable\n# add_executable(planner_msgs_node src/planner_msgs_node.cpp)\n\n## Add cmake target dependencies of the executable/library\n## as an example, message headers may need to be generated before nodes\n# add_dependencies(planner_msgs_node planner_msgs_generate_messages_cpp)\n\n## Specify libraries to link a library or executable target against\n# target_link_libraries(planner_msgs_node\n#   ${catkin_LIBRARIES}\n# )\n\n#############\n## Install ##\n#############\n\n# all install targets should use catkin DESTINATION variables\n# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html\n\n## Mark executable scripts (Python etc.) for installation\n## in contrast to setup.py, you can choose the destination\n# install(PROGRAMS\n#   scripts/my_python_script\n#   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}\n# )\n\n## Mark executables and/or libraries for installation\n# install(TARGETS planner_msgs planner_msgs_node\n#   ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}\n#   LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}\n#   RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}\n# )\n\n## Mark cpp header files for installation\n# install(DIRECTORY include/${PROJECT_NAME}/\n#   DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}\n#   FILES_MATCHING PATTERN \"*.h\"\n#   PATTERN \".svn\" EXCLUDE\n# )\n\n## Mark other files for installation (e.g. launch and bag files, etc.)\n# install(FILES\n#   # myfile1\n#   # myfile2\n#   DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}\n# )\n\n#############\n## Testing ##\n#############\n\n## Add gtest based cpp test target and link libraries\n# catkin_add_gtest(${PROJECT_NAME}-test test/test_planner_msgs.cpp)\n# if(TARGET ${PROJECT_NAME}-test)\n#   target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})\n# endif()\n\n## Add folders to be run by python nosetests\n# catkin_add_nosetests(test)\n"
  },
  {
    "path": "planner_msgs/action/GoTo.action",
    "content": "# Define the goal\ngoal[] target\n---\n# Define the result\nint32 route_result\n---\n# Define a feedback message\nfloat32 percent_complete\n"
  },
  {
    "path": "planner_msgs/generate_msgs.sh",
    "content": "#!/bin/sh\nrosrun actionlib_msgs genaction.py -o msg/ action/GoTo.action\n"
  },
  {
    "path": "planner_msgs/msg/GoToAction.msg",
    "content": "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\nGoToActionGoal action_goal\nGoToActionResult action_result\nGoToActionFeedback action_feedback\n"
  },
  {
    "path": "planner_msgs/msg/GoToActionFeedback.msg",
    "content": "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\nHeader header\nactionlib_msgs/GoalStatus status\nGoToFeedback feedback\n"
  },
  {
    "path": "planner_msgs/msg/GoToActionGoal.msg",
    "content": "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\nHeader header\nactionlib_msgs/GoalID goal_id\nGoToGoal goal\n"
  },
  {
    "path": "planner_msgs/msg/GoToActionResult.msg",
    "content": "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\nHeader header\nactionlib_msgs/GoalStatus status\nGoToResult result\n"
  },
  {
    "path": "planner_msgs/msg/GoToFeedback.msg",
    "content": "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n# Define a feedback message\nfloat32 percent_complete\n\n"
  },
  {
    "path": "planner_msgs/msg/GoToGoal.msg",
    "content": "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n# Define the goal\ngoal[] target\n"
  },
  {
    "path": "planner_msgs/msg/GoToResult.msg",
    "content": "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n# Define the result\nint32 route_result\n"
  },
  {
    "path": "planner_msgs/msg/goal.msg",
    "content": "# Position \ngeometry_msgs/Pose2D pose\n# Desired speed\nfloat32 speed\n"
  },
  {
    "path": "planner_msgs/package.xml",
    "content": "<?xml version=\"1.0\"?>\n<package>\n  <name>planner_msgs</name>\n  <version>0.1.0</version>\n  <description>The planner_msgs package. Messages and actions for planning the autonomous movement of the robot.</description>\n\n  <maintainer email=\"rnavarro@robotnik.es\">Román Navarro</maintainer>\n\n\n  <license>BSD</license>\n\n\n  <url type=\"website\">http://wiki.ros.org/planner_msgs</url> \n  <url type=\"repository\">https://github.com/RobotnikAutomation/agvs</url>\n  <url type=\"bugtracker\">https://github.com/RobotnikAutomation/agvs/issues</url>\n\n  \n  <author email=\"rnavarro@robotnik.es\">Román Navarro</author>\n\n\n  <buildtool_depend>catkin</buildtool_depend>\n   <build_depend>message_generation</build_depend>\n  <build_depend>actionlib</build_depend>\n  <build_depend>actionlib_msgs</build_depend>\n  <build_depend>geometry_msgs</build_depend>\n  <build_depend>nav_msgs</build_depend>\n  <build_depend>roscpp</build_depend>\n  <build_depend>std_msgs</build_depend>\n\n  <run_depend>actionlib</run_depend>\n  <run_depend>actionlib_msgs</run_depend>\n  <run_depend>geometry_msgs</run_depend>\n  <run_depend>nav_msgs</run_depend>\n  <run_depend>roscpp</run_depend>\n  <run_depend>std_msgs</run_depend>\n  \n\n  <!-- The export tag contains other, unspecified, tags -->\n  <export>\n   \n\n  </export>\n</package>\n"
  },
  {
    "path": "purepursuit_planner/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 2.8.3)\nproject(purepursuit_planner)\n\n## Find catkin macros and libraries\n## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)\n## is used, also find other catkin packages\nfind_package(catkin REQUIRED COMPONENTS\n  message_generation\n  actionlib\n  actionlib_msgs\n  geometry_msgs\n  nav_msgs\n  roscpp\n  std_msgs\n  tf\n  diagnostic_updater\n  planner_msgs\n  ackermann_msgs\n  interactive_markers\n  visualization_msgs\n  std_srvs\n)\n\n## System dependencies are found with CMake's conventions\n# find_package(Boost REQUIRED COMPONENTS system)\n\n\n## Uncomment this if the package has a setup.py. This macro ensures\n## modules and global scripts declared therein get installed\n## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html\ncatkin_python_setup()\n\n################################################\n## Declare ROS messages, services and actions ##\n################################################\n\n## To declare and build messages, services or actions from within this\n## package, follow these steps:\n## * Let MSG_DEP_SET be the set of packages whose message types you use in\n##   your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).\n## * In the file package.xml:\n##   * add a build_depend and a run_depend tag for each package in MSG_DEP_SET\n##   * If MSG_DEP_SET isn't empty the following dependencies might have been\n##     pulled in transitively but can be declared for certainty nonetheless:\n##     * add a build_depend tag for \"message_generation\"\n##     * add a run_depend tag for \"message_runtime\"\n## * In this file (CMakeLists.txt):\n##   * add \"message_generation\" and every package in MSG_DEP_SET to\n##     find_package(catkin REQUIRED COMPONENTS ...)\n##   * add \"message_runtime\" and every package in MSG_DEP_SET to\n##     catkin_package(CATKIN_DEPENDS ...)\n##   * uncomment the add_*_files sections below as needed\n##     and list every .msg/.srv/.action file to be processed\n##   * uncomment the generate_messages entry below\n##   * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)\n\n## Generate messages in the 'msg' folder\n#add_message_files(\n#   FILES\n#   goal.msg\n#)\n\n## Generate services in the 'srv' folder\n# add_service_files(\n#   FILES\n#   Service1.srv\n#   Service2.srv\n# )\n\n## Generate actions in the 'action' folder\n# add_action_files(\n#   FILES\n#   Action1.action\n#   Action2.action\n# )\n#add_action_files(DIRECTORY action FILES GoTo.action)\n\n## Generate added messages and services with any dependencies listed here\n#generate_messages(DEPENDENCIES std_msgs actionlib_msgs geometry_msgs purepursuit_planner)\n\n###################################\n## catkin specific configuration ##\n###################################\n## The catkin_package macro generates cmake config files for your package\n## Declare things to be passed to dependent projects\n## INCLUDE_DIRS: uncomment this if you package contains header files\n## LIBRARIES: libraries you create in this project that dependent projects also need\n## CATKIN_DEPENDS: catkin_packages dependent projects also need\n## DEPENDS: system dependencies of this project that dependent projects also need\ncatkin_package(\n  INCLUDE_DIRS include\n#  LIBRARIES purepursuit_planner\n  CATKIN_DEPENDS roscpp actionlib nav_msgs roscpp std_msgs tf actionlib_msgs geometry_msgs planner_msgs ackermann_msgs\n#  DEPENDS system_lib\n)\n\n###########\n## Build ##\n###########\n\n## Specify additional locations of header files\n## Your package locations should be listed before other locations\n# include_directories(include)\ninclude_directories(\n  include\n  ${catkin_INCLUDE_DIRS}\n)\n\n## Declare a cpp library\n# add_library(purepursuit_planner\n#   src/${PROJECT_NAME}/purepursuit_planner.cpp\n# )\n\n## Declare a cpp executable\nadd_executable(purepursuit_planner_node src/purepursuit_planner.cpp src/Component.cc)\n\n## Add cmake target dependencies of the executable/library\n## as an example, message headers may need to be generated before nodes\nadd_dependencies(purepursuit_planner_node purepursuit_planner_generate_messages_cpp)\n\n## Specify libraries to link a library or executable target against\ntarget_link_libraries(purepursuit_planner_node\n   ${catkin_LIBRARIES}\n)\n\n#############\n## Install ##\n#############\n\n# all install targets should use catkin DESTINATION variables\n# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html\n\n## Mark executable scripts (Python etc.) for installation\n## in contrast to setup.py, you can choose the destination\ninstall(PROGRAMS\n   scripts/purepursuit_planner/path_marker_2.py\n   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}\n )\n\n## Mark executables and/or libraries for installation\n# install(TARGETS purepursuit_planner purepursuit_planner_node\n#   ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}\n#   LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}\n#   RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}\n# )\n\n## Mark cpp header files for installation\n# install(DIRECTORY include/${PROJECT_NAME}/\n#   DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}\n#   FILES_MATCHING PATTERN \"*.h\"\n#   PATTERN \".svn\" EXCLUDE\n# )\n\n## Mark other files for installation (e.g. launch and bag files, etc.)\n# install(FILES\n#   # myfile1\n#   # myfile2\n#   DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}\n# )\n\n#############\n## Testing ##\n#############\n\n## Add gtest based cpp test target and link libraries\n# catkin_add_gtest(${PROJECT_NAME}-test test/test_purepursuit_planner.cpp)\n# if(TARGET ${PROJECT_NAME}-test)\n#   target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})\n# endif()\n\n## Add folders to be run by python nosetests\n# catkin_add_nosetests(test)\n"
  },
  {
    "path": "purepursuit_planner/action/GoTo.action",
    "content": "# Define the goal\ngoal[] target\n---\n# Define the result\nint32 route_result\n---\n# Define a feedback message\nfloat32 percent_complete\n"
  },
  {
    "path": "purepursuit_planner/generate_msgs.sh",
    "content": "#!/bin/sh\nrosrun actionlib_msgs genaction.py -o msg/ action/GoTo.action\n"
  },
  {
    "path": "purepursuit_planner/include/purepursuit_planner/Component.h",
    "content": "/*! \\class Component\n *  \\file Component.h\n *\t\\author Robotnik Automation S.L.L\n *\t\\version 1.1.1\n *\t\\date 2014\n *  \\brief Clase que definirá la estructura básica una serie de componentes. Adaptado para ROS\n * \tDefine e implementa una serie de métodos y estructuras básicas que seguirán todos los componentes desarrollados por Robotnik\n * (C) 2013 Robotnik Automation, SLL\n *  All rights reserved.\n */\n\n#ifndef __COMPONENT_H\n\t#define __COMPONENT_H\n\n#include <ros/ros.h>\n#include <pthread.h>\n#include <string>\n#include <vector>\n#include <signal.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n\n//! Size of string for logging\n#define DEFAULT_THREAD_DESIRED_HZ\t40.0\n#define DEFAULT_THREAD_PRIORITY     25\n\n#define USEC_PER_SEC\t\t\t1000000\n#define NSEC_PER_SEC\t\t\t1000000000\n#define Pi                      3.141592654\n\n//! Defines return values for methods and functions\nenum ReturnValue{\n        OK = 0,\n        INITIALIZED,\n        THREAD_RUNNING,\n        ERROR = -1,\n        NOT_INITIALIZED = -2,\n        THREAD_NOT_RUNNING = -3,\n        COM_ERROR = -4,\n        NOT_ERROR = -5\n};\n//! Defines standard states of a component\nenum States{\n        INIT_STATE,\n        STANDBY_STATE,\n        READY_STATE,\n        EMERGENCY_STATE,\n        FAILURE_STATE,\n        SHUTDOWN_STATE,\n        UNKNOWN_STATE\n};\n\n//! Global functions\n//! Use of real time nanosleep\nextern int clock_nanosleep(clockid_t __clock_id, int __flags,\n\t\t\t__const struct timespec *__req,\n\t\t\tstruct timespec *__rem);\n\n//! Common functions to all components\n//! Normalize in sec.ns\nstatic inline void tsnorm(struct timespec *ts)\n{\n\twhile (ts->tv_nsec >= NSEC_PER_SEC) {\n\t\tts->tv_nsec -= NSEC_PER_SEC;\n\t\tts->tv_sec++;\n\t}\n}\n//! Normalize in rad \nstatic inline void radnorm(double* radians)\n{\n\twhile (*radians >= (Pi)) {\n\t\t*radians -= 2.0 * Pi;\n\t\t}\n\twhile (*radians <= (-Pi)) {\n\t\t*radians += 2.0 * Pi;\n\t\t}\n}\n//! Normalize in rad\n//! Normalize between -PI and PI\nstatic inline void radnorm2(double* radians)\n{\n\twhile (*radians >= (Pi)) {\n\t\t*radians -= 2.0 * Pi;\n\t\t}\n\twhile (*radians <= (-Pi)) {\n\t\t*radians += 2.0 * Pi;\n\t\t}\n}\n//! Returns time difference in uS\nstatic inline long calcdiff(struct timespec t1, struct timespec t2)\n{\n\tlong diff;\n\tdiff = USEC_PER_SEC * ((int) t1.tv_sec - (int) t2.tv_sec);\n\tdiff += ((int) t1.tv_nsec - (int) t2.tv_nsec) / 1000;\n\treturn diff;\n}\n//! Struct used for real time thread\nstruct thread_param{\n\tint prio;\t\t\t// Thread priority level 0[min]-80[max]\n\tint clock;  \t\t// CLOCK_MONOTONIC or CLOCK_REALTIME\n};\n//! struct to store main data for a thread\ntypedef struct thread_data{\n    //! Priority and clock\n    struct thread_param pthreadPar;\n    //! Contains the desired frequency of the thread\n    double dDesiredHz;\n    //! Contains the real frequency of the thread\n    double dRealHz;\n    //! Contains the id of the control thread\n    pthread_t pthreadId;\n}thread_data;\n\n//! Main function to execute into the thread\nvoid *AuxControlThread(void *threadParam);\n\nusing namespace std;\n\n//! Class component\nclass Component{\n    friend void *AuxControlThread(void *threadParam);\n\tprotected:\n\t\t//! Controls if has been initialized succesfully\n\t\tbool bInitialized;\n\t\t//! Controls the execution of the Component's thread\n\t\tbool bRunning;\n\t\t//! Contains data for the main thread\n\t\tthread_data threadData;\n\t\t//! Contains data for the secondary threads\n\t\tvector<thread_data> vThreadData;\n\t\t//! State of the Component\n\t\tStates iState;\n\t\t//! State before\n\t\tStates iOldState;\n\t\t//!\tAlmacenaremos el nombre del componente para personalizar el log a de cada una de las clases derivadas\n\t\tstring sComponentName;\n    private:\n        //! Mutex to manage the access to the thread's vector\n        pthread_mutex_t mutexThread;\n\tpublic:\n\t\t//! Public constructor\n\t\tComponent(double desired_hz);\n\t\t//! Public destructor\n\t\tvirtual ~Component();\n\t\t//! Configures and initializes the component\n\t\t//! @return OK\n\t\t//! @return INITIALIZED if the component is already intialized\n\t\t//! @return ERROR\n\t\tvirtual ReturnValue Setup();\n\t\t//! Closes and frees the reserved resources\n\t\t//! @return OK\n\t\t//! @return ERROR if fails when closes the devices\n\t\t//! @return RUNNING if the component is running\n\t\t//! @return NOT_INITIALIZED if the component is not initialized\n\t\tvirtual ReturnValue ShutDown();\n\t\t//! Starts the control thread of the component and its subcomponents\n\t\t//! @return OK\n\t\t//! @return ERROR starting the thread\n\t\t//! @return RUNNING if it's already running\n\t\t//! @return NOT_INITIALIZED if it's not initialized\n\t\tvirtual ReturnValue Start();\n\t\t//! Stops the main control thread of the component and its subcomponents\n\t\t//! @return OK\n\t\t//! @return ERROR if any error has been produced\n\t\t//! @return NOT_RUNNING if the main thread isn't running\n\t\tvirtual ReturnValue Stop();\n\t\t//! Returns the general state of the Component\n\t\tStates GetState();\n\t\t//! Returns the general state of the Component as string\n\t\tvirtual char *GetStateString();\n\t\t//! Returns the general state as string\n\t\tchar *GetStateString(States state);\n\t\t//! Method to get current update rate of the thread\n\t\t//! @return pthread_hz\n\t\tdouble GetUpdateRate();\n\t\t\n\tprotected:\n\t\t//! All core component functionality is contained in this thread.\n\t\t//!\tAll of the Component component state machine code can be found here.\n\t\tvirtual void ControlThread();\n\t\t//! Opens used devices\n\t\t//! @return OK\n\t\t//! @return ERROR\n\t\tvirtual ReturnValue Open();\n\t\t//! Closes used devices\n\t\t//! @return OK\n\t\t//! @return ERROR\n\t\tvirtual ReturnValue Close();\n\t\t//! Allocates virtual memory if it's necessary\n\t\t//! @return OK\n\t\tvirtual ReturnValue Allocate();\n\t\t//! Frees allocated memory previously\n\t\t//! @return OK\n\t\tvirtual ReturnValue Free();\n\t\t//! Configures devices and performance of the component\n\t\t//! @return OK\n\t\t//! @return ERROR, if the configuration process fails\n\t\tvirtual ReturnValue Configure();\n\t\t//! Actions performed on initial state\n\t\tvirtual void InitState();\n\t\t//! Actions performed on standby state\n\t\tvirtual void StandbyState();\n\t\t//! Actions performed on ready state\n\t\tvirtual void ReadyState();\n\t\t//! Actions performed on the emergency state\n\t\tvirtual void EmergencyState();\n\t\t//! Actions performed on Failure state\n\t\tvirtual void FailureState();\n\t\t//! Actions performed in all states\n\t\tvirtual void AllState();\n\t\t//! Switches between states\n\t\tvirtual void SwitchToState(States new_state);\n        //! Gets the data of the current thread\n\t\tReturnValue GetThreadData(thread_data *data);\n    public:\n\t\t//! Creates new tasks\n\t\tReturnValue CreateTask(int prio, double frec, void *(*start_routine)(void*));\n\n\n};\n\n#endif\n"
  },
  {
    "path": "purepursuit_planner/launch/purepursuit.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n\n  <!-- start purepursuit node -->\n  <node pkg=\"purepursuit_planner\" type=\"purepursuit_planner_node\" name=\"purepursuit_planner\" output=\"screen\">\n\t<param name=\"position_source\" value=\"MAP\" type=\"string\"/>\n\t<param name=\"d_lookahear_min\" value=\"0.4\"/>\n  \t<param name=\"kr\" value=\"0.2\"/>\n        <param name=\"desired_freq\" value=\"50.0\"/>\n \t<param name=\"odom_topic\" value=\"/agvs_robot_control/odom\"/>\n        <param name=\"cmd_topic_vel\" value=\"/agvs_robot_control/command\"/>\n  </node>\n\n</launch>\n\n"
  },
  {
    "path": "purepursuit_planner/launch/purepursuit_marker.launch",
    "content": "<?xml version=\"1.0\"?>\n<launch>\n\n  <!-- start purepursuit node -->\n  <node pkg=\"purepursuit_planner\" type=\"path_marker_2.py\" name=\"path_marker\" output=\"screen\">\n\t<param name=\"frame_id\" value=\"/map\" type=\"string\"/>\n        <param name=\"planner\" value=\"purepursuit_planner\" type=\"string\"/>\n  </node>\n\n</launch>\n\n"
  },
  {
    "path": "purepursuit_planner/msg/GoToAction.msg",
    "content": "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\nGoToActionGoal action_goal\nGoToActionResult action_result\nGoToActionFeedback action_feedback\n"
  },
  {
    "path": "purepursuit_planner/msg/GoToActionFeedback.msg",
    "content": "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\nHeader header\nactionlib_msgs/GoalStatus status\nGoToFeedback feedback\n"
  },
  {
    "path": "purepursuit_planner/msg/GoToActionGoal.msg",
    "content": "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\nHeader header\nactionlib_msgs/GoalID goal_id\nGoToGoal goal\n"
  },
  {
    "path": "purepursuit_planner/msg/GoToActionResult.msg",
    "content": "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\nHeader header\nactionlib_msgs/GoalStatus status\nGoToResult result\n"
  },
  {
    "path": "purepursuit_planner/msg/GoToFeedback.msg",
    "content": "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n# Define a feedback message\nfloat32 percent_complete\n\n"
  },
  {
    "path": "purepursuit_planner/msg/GoToGoal.msg",
    "content": "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n# Define the goal\ngoal[] target\n"
  },
  {
    "path": "purepursuit_planner/msg/GoToResult.msg",
    "content": "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n# Define the result\nint32 route_result\n"
  },
  {
    "path": "purepursuit_planner/msg/goal.msg",
    "content": "# Position \ngeometry_msgs/Pose2D pose\n# Desired speed\nfloat32 speed\n"
  },
  {
    "path": "purepursuit_planner/package.xml",
    "content": "<?xml version=\"1.0\"?>\n<package>\n  <name>purepursuit_planner</name>\n  <version>0.1.0</version>\n  <description>The purepursuit_planner package. Planner to follow a list of waypoints implementing the Pure Pursuit algorithm.</description>\n\n \n  <maintainer email=\"rnavarro@robotnik.es\">Román Navarro</maintainer>\n\n  <license>BSD</license>\n\n  <url type=\"website\">http://wiki.ros.org/purepursuit_planner</url>\n  <url type=\"repository\">https://github.com/RobotnikAutomation/agvs</url>\n  <url type=\"bugtracker\">https://github.com/RobotnikAutomation/agvs/issues</url>\n\n  <author email=\"rnavarro@robotnik.es\">Román Navarro</author>\n\n  \n  <buildtool_depend>catkin</buildtool_depend>\n  <build_depend>message_generation</build_depend>\n  <build_depend>actionlib</build_depend>\n  <build_depend>actionlib_msgs</build_depend>\n  <build_depend>geometry_msgs</build_depend>\n  <build_depend>nav_msgs</build_depend>\n  <build_depend>roscpp</build_depend>\n  <build_depend>std_msgs</build_depend>\n  <build_depend>tf</build_depend>\n  <build_depend>diagnostic_updater</build_depend>\n  <build_depend>planner_msgs</build_depend> \n  <build_depend>ackermann_msgs</build_depend>\n  <build_depend>interactive_markers</build_depend>\n  <build_depend>visualization_msgs</build_depend>\n  <build_depend>std_srvs</build_depend>\n\n  <run_depend>actionlib</run_depend>\n  <run_depend>actionlib_msgs</run_depend>\n  <run_depend>geometry_msgs</run_depend>\n  <run_depend>nav_msgs</run_depend>\n  <run_depend>roscpp</run_depend>\n  <run_depend>std_msgs</run_depend>\n  <run_depend>tf</run_depend>\n  <run_depend>diagnostic_updater</run_depend>\n  <run_depend>message_runtime</run_depend>\n  <run_depend>planner_msgs</run_depend>\n  <run_depend>ackermann_msgs</run_depend>\n  <run_depend>interactive_markers</run_depend>\n  <run_depend>visualization_msgs</run_depend>\n  <run_depend>std_srvs</run_depend>\n\n  <!-- The export tag contains other, unspecified, tags -->\n  <export>\n    \n  </export>\n</package>\n"
  },
  {
    "path": "purepursuit_planner/scripts/purepursuit_planner/__init__.py",
    "content": ""
  },
  {
    "path": "purepursuit_planner/scripts/purepursuit_planner/path_marker_1.py",
    "content": "#!/usr/bin/env python\n\n\"\"\"\nCopyright (c) 2014, Robotnik Automation\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright\n      notice, this list of conditions and the following disclaimer in the\n      documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\nLIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\nCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\nSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\nARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n\"\"\"\n\n\nimport roslib; roslib.load_manifest(\"interactive_markers\")\nimport rospy\nimport copy\n\nfrom interactive_markers.interactive_marker_server import *\nfrom visualization_msgs.msg import InteractiveMarker\nfrom interactive_markers.menu_handler import *\n\nimport actionlib\nfrom geometry_msgs.msg import Pose2D\nfrom purepursuit_planner.msg import goal, GoToGoal, GoToAction\n\n# Client based on ActionServer to send goals to the purepursuit node\nclass PurepursuitClient():\n\t\n\tdef __init__(self, planner_name):\n\t\tself.planner_name = planner_name\n\t\t# Creates the SimpleActionClient, passing the type of the action\n\t\t# (GoTo) to the constructor.\n\t\tself.client = actionlib.SimpleActionClient(planner_name, GoToAction)\n\n\t## @brief Sends the goal to \n\t## @return 0 if OK, -1 if no server, -2 if it's tracking a goal at the moment\n\tdef goTo(self, goal_list):\n\t\t# Waits until the action server has started up and started\n\t\t# listening for goals.\n\t\tif self.client.wait_for_server(timeout = rospy.Duration(3.0) ):\n\t\t\t#if self.getState() != GoalStatus.LOST:\n\t\t\t#\trospy.loginfo('PurepursuitClient: planner is tracking a goal')\n\t\t\t#\treturn -2\n\t\t\t\t\n\t\t\tg = GoToGoal(target = goal_list)\n\t\t\trospy.loginfo('PurepursuitClient: Sendig %d waypoints'%(len(goal_list)))\n\t\t\tself.client.send_goal(g)\n\t\t\treturn 0\n\t\telse:\n\t\t\trospy.logerr('PurepursuitClient: Error waiting for server')\n\t\t\treturn -1\n\t\n\t## @brief cancel the current goal\n\tdef cancel(self):\t\t\n\t\trospy.loginfo('PurepursuitClient: cancelling the goal')\n\t\tself.client.cancel_goal()\n\t\n\t## @brief Get the state information for this goal\n    ##\n    ## Possible States Are: PENDING, ACTIVE, RECALLED, REJECTED,\n    ## PREEMPTED, ABORTED, SUCCEEDED, LOST.\n    ##\n    ## @return The goal's state. Returns LOST if this\n    ## SimpleActionClient isn't tracking a goal.\n\tdef getState(self):\n\t\treturn self.client.get_state()\n\t\n\t## @brief Returns ret if OK, otherwise -1\n\tdef getResult(self):\n\t\tret = self.client.get_result()\n\t\tif not ret:\n\t\t\treturn -1\n\t\t\n\t\telse:\n\t\t\treturn ret\n\n## @brief Class to manage  the creation of a Waypoint base on InteractiveMarker\nclass PointPath(InteractiveMarker):\n\t\n\tdef __init__(self, frame_id, name, description, is_manager = False):\n\t\tInteractiveMarker.__init__(self)\n\t\t\n\t\tself.header.frame_id = frame_id\n\t\tself.name = name\n\t\tself.description = description\n\t\t\n\t\tself.marker = Marker()\n\t\tself.marker.type = Marker.CYLINDER\n\t\tself.marker.scale.x = 0.1\n\t\tself.marker.scale.y = 0.1\n\t\tself.marker.scale.z = 0.4\n\t\tself.marker.pose.position.z = 0.20\n\t\tif is_manager:\n\t\t\tself.marker.color.r = 0.8\n\t\t\tself.marker.color.g = 0.0\n\t\t\tself.marker.color.b = 0.0\n\t\t\tself.marker.color.a = 0.5\n\t\telse:\n\t\t\tself.marker.color.r = 0.0\n\t\t\tself.marker.color.g = 0.8\n\t\t\tself.marker.color.b = 0.0\n\t\t\tself.marker.color.a = 0.5\n\t\t\t\n\t\tself.marker_control = InteractiveMarkerControl()\n\t\tself.marker_control.always_visible = True\n\t\tself.marker_control.orientation.w = 1\n\t\tself.marker_control.orientation.x = 0\n\t\tself.marker_control.orientation.y = 1\n\t\tself.marker_control.orientation.z = 0\n\t\tself.marker_control.markers.append( self.marker )\n\t\tself.marker_control.interaction_mode = InteractiveMarkerControl.MOVE_PLANE\n\t\t\n\t\tself.controls.append( self.marker_control )\n\t\t\n\t## @brief method called every time that an interaction is received\t\n\tdef processFeedback(self, feedback):\n\t\t#p = feedback.pose.position\n\t\tself.pose = feedback.pose\n\t\t#print feedback.marker_name + \" is now at \" + str(p.x) + \", \" + str(p.y) + \", \" + str(p.z)\n\t\t\n\n## @brief Manages the creation of waypoints and how to send them to Purepursuit\nclass PointPathManager(InteractiveMarkerServer):\n\t\n\tdef __init__(self, name, frame_id, planner):\n\t\tInteractiveMarkerServer.__init__(self, name)\n\t\tself.list_of_points = []\n\t\tself.frame_id = frame_id\n\t\tself.counter_points = 0\n\t\t\n\t\t# Menu handler to create a menu\n\t\tself.menu_handler = MenuHandler()\n\t\th_first_entry = self.menu_handler.insert( \"Waypoints\" )\n\t\tentry = self.menu_handler.insert( \"Create New\", parent=h_first_entry, callback=self.newPointCB)\n\t\tentry = self.menu_handler.insert( \"Delete last\", parent=h_first_entry, callback=self.deletePointCB );\n\t\tentry = self.menu_handler.insert( \"Delete all\", parent=h_first_entry, callback=self.deleteAllPointsCB );\n\t\th_second_entry = self.menu_handler.insert( \"Path\" )\n\t\tentry = self.menu_handler.insert( \"Go\", parent=h_second_entry, callback=self.startRouteCB)\t# Send the path from the first point to the last one\n\t\tentry = self.menu_handler.insert( \"Stop\", parent=h_second_entry, callback=self.stopRouteCB)\t# Stops the current path \n\t\tentry = self.menu_handler.insert( \"Go back\", parent=h_second_entry, callback=self.reverseRouteCB) # Sends the path from the last point to the first one\n\t\t\n\t\t# Creates the first point\n\t\t#self.list_of_points.append(PointPath(frame_id, 'p1', 'p1'))\n\t\tself.initial_point = PointPath(frame_id, 'PointManager', 'PointManager', True)\n\t\tself.insert(self.initial_point, self.initial_point.processFeedback)\n\t\t\n\t\tself.menu_handler.apply( self, self.initial_point.name )\n\t\tself.applyChanges()\n\t\t\n\t\tself.planner_client = PurepursuitClient(planner)\n\t\t\n\t\t#rospy.Timer(rospy.Duration(5), self.createNewPoint)\n\t\t\n\t\n\t## @brief Creates a new PointPath and save it a list\n\tdef createNewPoint(self):\n\t\t\t\t\t\n\t\t##print 'Creating new point %d'%(self.counter_points)\n\t\tnew_point = PointPath(self.frame_id, 'p%d'%(self.counter_points), 'p%d'%(self.counter_points))\n\t\t#new_point = PointPath(self.frame_id, '1', '1')\n\t\t\n\t\tif len(self.list_of_points) > 1:\n\t\t\tnew_point.pose.position.x = self.list_of_points[self.counter_points-1].pose.position.x\n\t\t\tnew_point.pose.position.y = self.list_of_points[self.counter_points-1].pose.position.y\n\t\telif len(self.list_of_points) == 1:\n\t\t\tnew_point.pose.position.x = self.list_of_points[0].pose.position.x\n\t\t\tnew_point.pose.position.y = self.list_of_points[0].pose.position.y\n\t\n\t\tnew_point.pose.position.x = new_point.pose.position.x  + 1.0\n\t\t\t\n\t\t\n\t\t#print 'Creating new point at position %.2lf, %.2lf, %.2lf'%(new_point.pose.position.x, new_point.pose.position.y, new_point.pose.position.z)\n\t\t\n\t\tself.list_of_points.append(new_point)\n\t\tself.insert(new_point, new_point.processFeedback)\n\t\tself.menu_handler.apply( self, 'p%d'%(self.counter_points) )\n\t\tself.applyChanges()\n\t\tself.counter_points = self.counter_points + 1\n\t\t\n\t\t#for i in self.list_of_points:\n\t\t#\tprint 'Point %s: %.2lf, %.2lf, %.2lf'%(i.name, i.pose.position.x, i.pose.position.y, i.pose.position.z)\n\t\t\t\n\t\treturn\n\t\n\t## @brief Callback called to create a new poing\t\n\tdef newPointCB(self, feedback):\n\t\t#print 'newPointCB'\n\t\tself.createNewPoint()\n\t\t\n\t## @brief Callback called to create a new poing\t\n\tdef deletePointCB(self, feedback):\n\t\tif self.counter_points > 0:\n\t\t\t p = self.list_of_points.pop()\n\t\t\t self.counter_points = self.counter_points - 1\n\t\t\t self.erase(p.name)\n\t\t\t self.applyChanges()\n\t\t\t \n\t\t #print 'deletePointCB'\t\n\t\n\t## @brief Callback called to create a new poing\t\n\tdef deleteAllPointsCB(self, feedback):\n\t\tfor i in range(len(self.list_of_points)):\n\t\t\tp = self.list_of_points.pop()\n\t\t\tself.counter_points = self.counter_points - 1\n\t\t\tself.erase(p.name)\n\t\t\t \n\t\tself.applyChanges()\n\t\t\t \n\t\t#print 'deleteAllPointsCB'\t\n\t\n\t## @brief Starts the route\n\tdef startRouteCB(self, feedback):\n\t\tgoals = self.convertListOfPointPathIntoGoal()\n\t\tprint 'goals: %s'%(goals)\n\t\tself.planner_client.goTo(goals)\n\t\treturn\n\t\n\t## @brief Starts the route on the inverse direction\n\tdef reverseRouteCB(self, feedback):\n\t\tgoals = self.convertListOfPointPathIntoGoal(inverse = True)\n\t\t#print 'goals: %s'%(goals)\n\t\tself.planner_client.goTo(goals)\n\t\treturn\n\t\t\n\t## @brief Stops the current route if it's started\n\tdef stopRouteCB(self, feedback):\n\t\tself.planner_client.cancel()\n\t\treturn\n\t\n\t## @brief Starts the route (inverse order of waypoints)\n\tdef convertListOfPointPathIntoGoal(self, inverse = False):\n\t\tconverted_list = []\n\t\tif inverse:\n\t\t\tfor i in reversed(self.list_of_points):\n\t\t\t\tconverted_list.append(goal(pose = Pose2D(i.pose.position.x, i.pose.position.y, 0.0), speed = 0.4)) # For now speed constant\n\t\telse:\n\t\t\tfor i in self.list_of_points:\n\t\t\t\t#print 'convertListOfPointPathIntoGoal: %.2lf, %.2lf'%(i.pose.position.x, i.pose.position.y)\n\t\t\t\tconverted_list.append(goal(pose = Pose2D(i.pose.position.x, i.pose.position.y, 0.0), speed = 0.4)) # For now speed constant\n\t\t\n\t\treturn converted_list\n\t\t\nif __name__==\"__main__\":\n\trospy.init_node(\"agvs_path_maker\")\n\t\n\tserver = PointPathManager('agvs_path_maker', frame_id = '/map', planner = 'purepursuit_planner')\n\t\n\trospy.spin()\n\n"
  },
  {
    "path": "purepursuit_planner/scripts/purepursuit_planner/path_marker_2.py",
    "content": "#!/usr/bin/env python\n\n\"\"\"\nCopyright (c) 2014, Robotnik Automation\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright\n      notice, this list of conditions and the following disclaimer in the\n      documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\nLIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\nCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\nSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\nARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n\"\"\"\n\nimport roslib; roslib.load_manifest(\"interactive_markers\")\nimport rospy, rospkg\nimport copy\nimport os\n\nfrom interactive_markers.interactive_marker_server import *\nfrom visualization_msgs.msg import InteractiveMarker, Marker, InteractiveMarkerControl\nfrom interactive_markers.menu_handler import *\n\nimport actionlib\nfrom geometry_msgs.msg import Pose2D\nfrom planner_msgs.msg import goal, GoToGoal, GoToAction\nfrom std_srvs.srv import Empty\n\n# Client based on ActionServer to send goals to the purepursuit node\nclass PurepursuitClient():\n\t\n\tdef __init__(self, planner_name):\n\t\tself.planner_name = planner_name\n\t\t# Creates the SimpleActionClient, passing the type of the action\n\t\t# (GoTo) to the constructor.\n\t\tself.client = actionlib.SimpleActionClient(planner_name, GoToAction)\n\n\t## @brief Sends the goal to \n\t## @return 0 if OK, -1 if no server, -2 if it's tracking a goal at the moment\n\tdef goTo(self, goal_list):\n\t\t# Waits until the action server has started up and started\n\t\t# listening for goals.\n\t\tif self.client.wait_for_server(timeout = rospy.Duration(3.0) ):\n\t\t\t#if self.getState() != GoalStatus.LOST:\n\t\t\t#\trospy.loginfo('PurepursuitClient: planner is tracking a goal')\n\t\t\t#\treturn -2\n\t\t\t\t\n\t\t\tg = GoToGoal(target = goal_list)\n\t\t\trospy.loginfo('PurepursuitClient: Sendig %d waypoints'%(len(goal_list)))\n\t\t\tself.client.send_goal(g)\n\t\t\treturn 0\n\t\telse:\n\t\t\trospy.logerr('PurepursuitClient: Error waiting for server')\n\t\t\treturn -1\n\t\n\t## @brief cancel the current goal\n\tdef cancel(self):\t\t\n\t\trospy.loginfo('PurepursuitClient: cancelling the goal')\n\t\tself.client.cancel_goal()\n\t\n\t## @brief Get the state information for this goal\n    ##\n    ## Possible States Are: PENDING, ACTIVE, RECALLED, REJECTED,\n    ## PREEMPTED, ABORTED, SUCCEEDED, LOST.\n    ##\n    ## @return The goal's state. Returns LOST if this\n    ## SimpleActionClient isn't tracking a goal.\n\tdef getState(self):\n\t\treturn self.client.get_state()\n\t\n\t## @brief Returns ret if OK, otherwise -1\n\tdef getResult(self):\n\t\tret = self.client.get_result()\n\t\tif not ret:\n\t\t\treturn -1\n\t\t\n\t\telse:\n\t\t\treturn ret\n\n## @brief Class to manage  the creation of a Waypoint base on InteractiveMarker\nclass PointPath(InteractiveMarker):\n\t\n\tdef __init__(self, frame_id, name, description, is_manager = False, speed = 0.2):\n\t\tInteractiveMarker.__init__(self)\n\t\t\n\t\tself.header.frame_id = frame_id\n\t\tself.name = name\n\t\tself.description = description\n\t\tself.speed = speed\n\t\tself.marker = Marker()\n\t\tself.marker.type = Marker.CYLINDER\n\t\tself.marker.scale.x = 0.1\n\t\tself.marker.scale.y = 0.1\n\t\tself.marker.scale.z = 0.4\n\t\tself.marker.pose.position.z = 0.20\n\t\tif is_manager:\n\t\t\tself.marker.color.r = 0.8\n\t\t\tself.marker.color.g = 0.0\n\t\t\tself.marker.color.b = 0.0\n\t\t\tself.marker.color.a = 0.5\n\t\telse:\n\t\t\tself.marker.color.r = 0.0\n\t\t\tself.marker.color.g = 0.8\n\t\t\tself.marker.color.b = 0.0\n\t\t\tself.marker.color.a = 0.5\n\t\t\t\n\t\tself.marker_control = InteractiveMarkerControl()\n\t\tself.marker_control.always_visible = True\n\t\tself.marker_control.orientation.w = 1\n\t\tself.marker_control.orientation.x = 0\n\t\tself.marker_control.orientation.y = 1\n\t\tself.marker_control.orientation.z = 0\n\t\tself.marker_control.markers.append( self.marker )\n\t\tself.marker_control.interaction_mode = InteractiveMarkerControl.MOVE_PLANE\n\t\t\n\t\tself.controls.append( self.marker_control )\n\t\t\n\t## @brief method called every time that an interaction is received\t\n\tdef processFeedback(self, feedback):\n\t\t#p = feedback.pose.position\n\t\tself.pose = feedback.pose\n\t\t#print feedback.marker_name + \" is now at \" + str(p.x) + \", \" + str(p.y) + \", \" + str(p.z)\n\t\t\n\n## @brief Manages the creation of waypoints and how to send them to Purepursuit\nclass PointPathManager(InteractiveMarkerServer):\n\t\n\tdef __init__(self, name, frame_id, planner):\n\t\tInteractiveMarkerServer.__init__(self, name)\n\t\tself.list_of_points = []\n\t\tself.frame_id = frame_id\n\t\tself.counter_points = 0\n\t\t\n\t\t# Menu handler to create a menu\n\t\tself.menu_handler = MenuHandler()\n\t\th_first_entry = self.menu_handler.insert( \"Waypoints\" )\n\t\t#entry = self.menu_handler.insert( \"Create New\", parent=h_first_entry, callback=self.newPointCB)\n\t\tentry_new = self.menu_handler.insert( \"Create New\", parent=h_first_entry)\n\t\tentry = self.menu_handler.insert( \"Delete last\", parent=h_first_entry, callback=self.deletePointCB );\n\t\tentry = self.menu_handler.insert( \"Delete all\", parent=h_first_entry, callback=self.deleteAllPointsCB );\n\t\tentry = self.menu_handler.insert( \"Save\", parent=h_first_entry, callback=self.savePointsCB );\n\t\tentry = self.menu_handler.insert( \"Load\", parent=h_first_entry, callback=self.loadPointsCB );\n\t\tentry = self.menu_handler.insert( \"0.2 m/s\", parent=entry_new, callback=self.newPointCB_02)\n\t\tentry = self.menu_handler.insert( \"0.4 m/s\", parent=entry_new, callback=self.newPointCB_04)\n\t\tentry = self.menu_handler.insert( \"0.6 m/s\", parent=entry_new, callback=self.newPointCB_06)\n\t\th_second_entry = self.menu_handler.insert( \"Path\" )\n\t\tentry = self.menu_handler.insert( \"Go\", parent=h_second_entry, callback=self.startRouteCB)\t# Send the path from the first point to the last one\n\t\tentry = self.menu_handler.insert( \"Stop\", parent=h_second_entry, callback=self.stopRouteCB)\t# Stops the current path \n\t\tentry = self.menu_handler.insert( \"Go back\", parent=h_second_entry, callback=self.reverseRouteCB) # Sends the path from the last point to the first one\n\t\t\n\t\t# Creates the first point\n\t\t#self.list_of_points.append(PointPath(frame_id, 'p1', 'p1'))\n\t\tself.initial_point = PointPath(frame_id, 'PointManager', 'PointManager', True)\n\t\tself.insert(self.initial_point, self.initial_point.processFeedback)\n\t\t\n\t\tself.menu_handler.apply( self, self.initial_point.name )\n\t\tself.applyChanges()\n\t\t\n\t\tself.planner_client = PurepursuitClient(planner)\n\t\t\n\t\t# Locates and loads the UI file into the widget\n\t\trp = rospkg.RosPack()\t\t\n\t\t# loads a ui file for the dialog\n\t\tself.points_file_path = os.path.join(rp.get_path('purepursuit_planner'), 'scripts', 'waypoints.txt')\n\t\t\n\t\t#rospy.Timer(rospy.Duration(5), self.createNewPoint)\n\t\tself._go_service = rospy.Service('%s/go'%rospy.get_name(), Empty, self.goService)\n\t\tself._go_back_service = rospy.Service('%s/go_back'%rospy.get_name(), Empty, self.goBackService)\n\t\tself._cancel_service = rospy.Service('%s/cancel'%rospy.get_name(), Empty, self.cancelService)\n\t\t\n\t\n\t## @brief Creates a new PointPath and save it a list\n\tdef createNewPoint(self, speed = 0.2):\n\t\t\t\t\t\n\t\t##print 'Creating new point %d'%(self.counter_points)\n\t\tnew_point = PointPath(self.frame_id, 'p%d'%(self.counter_points), 'p%d->%.1f'%(self.counter_points, speed), speed = speed)\n\t\t#new_point = PointPath(self.frame_id, '1', '1')\n\t\t\n\t\tif len(self.list_of_points) > 1:\n\t\t\tnew_point.pose.position.x = self.list_of_points[self.counter_points-1].pose.position.x\n\t\t\tnew_point.pose.position.y = self.list_of_points[self.counter_points-1].pose.position.y\n\t\telif len(self.list_of_points) == 1:\n\t\t\tnew_point.pose.position.x = self.list_of_points[0].pose.position.x\n\t\t\tnew_point.pose.position.y = self.list_of_points[0].pose.position.y\n\t\n\t\tnew_point.pose.position.x = new_point.pose.position.x  + 1.0\n\t\t\t\n\t\t\n\t\t#print 'Creating new point at position %.2lf, %.2lf, %.2lf'%(new_point.pose.position.x, new_point.pose.position.y, new_point.pose.position.z)\n\t\t\n\t\tself.list_of_points.append(new_point)\n\t\tself.insert(new_point, new_point.processFeedback)\n\t\tself.menu_handler.apply( self, 'p%d'%(self.counter_points) )\n\t\tself.applyChanges()\n\t\tself.counter_points = self.counter_points + 1\n\t\t\n\t\t#for i in self.list_of_points:\n\t\t#\tprint 'Point %s: %.2lf, %.2lf, %.2lf'%(i.name, i.pose.position.x, i.pose.position.y, i.pose.position.z)\n\t\t\t\n\t\treturn\n\t\n\t## @brief Callback called to create a new poing\t\n\tdef newPointCB(self, feedback):\n\t\t#print 'newPointCB'\n\t\tself.createNewPoint()\n\t## @brief Callback called to create a new poing\t\n\tdef newPointCB_02(self, feedback):\n\t\t#print 'newPointCB'\n\t\tself.createNewPoint(0.2)\n\t## @brief Callback called to create a new poing\t\n\tdef newPointCB_04(self, feedback):\n\t\t#print 'newPointCB'\n\t\tself.createNewPoint(0.4)\n\t## @brief Callback called to create a new poing\t\n\tdef newPointCB_06(self, feedback):\n\t\t#print 'newPointCB'\n\t\tself.createNewPoint(0.6)\n\t\t\n\t## @brief Callback called to create a new poing\t\n\tdef deletePointCB(self, feedback):\n\t\tif self.counter_points > 0:\n\t\t\t p = self.list_of_points.pop()\n\t\t\t self.counter_points = self.counter_points - 1\n\t\t\t self.erase(p.name)\n\t\t\t self.applyChanges()\n\t\t\t \n\t\t #print 'deletePointCB'\t\n\t\n\t## @brief Function called to delete all the waypoints\n\tdef deleteAllPoints(self):\n\t\tfor i in range(len(self.list_of_points)):\n\t\t\tp = self.list_of_points.pop()\n\t\t\tself.counter_points = self.counter_points - 1\n\t\t\tself.erase(p.name)\n\t\t\t \n\t\tself.applyChanges()\n\t\t\n\t## @brief Callback called to delete all the waypoints\n\tdef deleteAllPointsCB(self, feedback):\n\t\tself.deleteAllPoints()\n\t\n\t## @brief Callback called to save the current points\n\tdef savePointsCB(self, feedback):\n\t\t\n\t\ttry:\n\t\t\tfile_points = open(self.points_file_path, 'w')\n\t\texcept IOError, e:\n\t\t\trospy.logerr( 'agvs_path_marker::savePointsCB: File %s not found: %s'%(self.points_file_path, e))\n\t\t\treturn\n\t\t\n\t\tfor i in self.list_of_points:\n\t\t\t# line format = 'p1;p1->0.4;0.5;5.2;0.4' (ID, description, x, y, speed)\n\t\t\tline = '%s;%s;%.3f;%.3f;%.3f\\n'%(i.name, i.description, i.pose.position.x, i.pose.position.y, i.speed)\n\t\t\tfile_points.write(line) \n\t\t\n\t\trospy.loginfo('agvs_path_marker:savePointsCB: saved %d points'%(len(self.list_of_points)))\n\t\tfile_points.close()\n\t\t\n\t\t\n\t## @brief Callback called to load previous saved points\n\tdef loadPointsCB(self, feedback):\n\t\t# Deletes all the loaded points\n\t\tif len(self.list_of_points) > 0:\n\t\t\tself.deleteAllPoints()\n\t\t\n\t\ttry:\n\t\t\tfile_points = open(self.points_file_path, 'r')\n\t\texcept IOError, e:\n\t\t\trospy.logerr( 'agvs_path_marker::loadPointsCB: File %s not found: %s'%(self.points_file_path, e))\n\t\t\treturn\n\t\t\n\t\tnum_of_loaded_points = 0\n\t\t# Reads and extracts the information of every line\n\t\tline = file_points.readline().replace('\\n', '')\n\t\twhile line != '':\n\t\t\t# line format = 'p1;p1->0.4;0.5;5.2;0.4'\n\t\t\ta = line.split(';')\n\t\t\t# a = ['p1', 'p1->0.4', '0.5', '0.4', '0.4'] // [ ID, DESCRIPTION, X, Y, SPEED]\n\t\t\tif len(a) == 5:\n\t\t\t\t\n\t\t\t\tnew_point = PointPath(self.frame_id, a[0], a[1], speed = float(a[4]))\n\t\t\t\tnew_point.pose.position.x = float(a[2])\n\t\t\t\tnew_point.pose.position.y = float(a[3])\n\t\t\t\t\n\t\t\t\trospy.loginfo('agvs_path_marker::loadPointsCB: Loading point %s at position %.2lf, %.2lf. speed =  %.2lf'%(a[0], new_point.pose.position.x, new_point.pose.position.y, new_point.speed))\n\t\t\t\t\n\t\t\t\tself.list_of_points.append(new_point)\n\t\t\t\tself.insert(new_point, new_point.processFeedback)\n\t\t\t\tself.menu_handler.apply( self, a[0])\n\t\t\t\tself.applyChanges()\n\t\t\t\tself.counter_points = self.counter_points + 1\n\t\t\t\tnum_of_loaded_points = num_of_loaded_points + 1\n\t\t\telse:\n\t\t\t\trospy.logerr('agvs_path_marker::loadPointsCB: Error processing line %s'%(line))\t\t\n\t\t\t\t\n\t\t\t\n\t\t\tline = file_points.readline().replace('\\n', '')\n\t\t\n\t\tfile_points.close()\n\t\t\n\t\trospy.loginfo('agvs_path_marker::loadPointsCB: Loaded %d points'%(num_of_loaded_points))\t\n\t\t\n\t\t\n\t## @brief Starts the route\n\tdef startRouteCB(self, feedback):\n\t\tgoals = self.convertListOfPointPathIntoGoal()\n\t\tprint 'goals: %s'%(goals)\n\t\tself.planner_client.goTo(goals)\n\t\treturn\n\t\n\t## @brief Starts the route on the inverse direction\n\tdef reverseRouteCB(self, feedback):\n\t\tgoals = self.convertListOfPointPathIntoGoal(inverse = True)\n\t\t#print 'goals: %s'%(goals)\n\t\tself.planner_client.goTo(goals)\n\t\treturn\n\t\t\n\t## @brief Stops the current route if it's started\n\tdef stopRouteCB(self, feedback):\n\t\tself.planner_client.cancel()\n\t\treturn\n\t\n\t## @brief Starts the route (inverse order of waypoints)\n\tdef convertListOfPointPathIntoGoal(self, inverse = False):\n\t\tconverted_list = []\n\t\tif inverse:\n\t\t\tfor i in reversed(self.list_of_points):\n\t\t\t\tconverted_list.append(goal(pose = Pose2D(i.pose.position.x, i.pose.position.y, 0.0), speed = i.speed)) # For now speed constant\n\t\telse:\n\t\t\tfor i in self.list_of_points:\n\t\t\t\t#print 'convertListOfPointPathIntoGoal: %.2lf, %.2lf'%(i.pose.position.x, i.pose.position.y)\n\t\t\t\tconverted_list.append(goal(pose = Pose2D(i.pose.position.x, i.pose.position.y, 0.0), speed = i.speed)) # For now speed constant\n\t\t\n\t\treturn converted_list\n\t\n\t## @brief Fake service to emulate the event start route\n\tdef goService(self, param):\n\t\trospy.loginfo('%s::goService'%(rospy.get_name()))\n\t\t\n\t\tself.startRouteCB(None)\n\t\t\n\t\treturn []\n\t\n\t## @brief Fake service to emulate the event reverse route\n\tdef goBackService(self, param):\n\t\trospy.loginfo('%s::goBackService'%(rospy.get_name()))\n\t\t\n\t\tself.reverseRouteCB(None)\n\t\t\n\t\treturn []\n\t\t\n\t## @brief Fake service to emulate the event cancel route\n\tdef cancelService(self, param):\n\t\trospy.loginfo('%s::cancelService'%(rospy.get_name()))\n\t\tself.stopRouteCB(None)\n\t\t\n\t\treturn []\n\t\t\n\t\t\nif __name__==\"__main__\":\n\trospy.init_node(\"agvs_path_marker2\")\n\t\n\t_name = rospy.get_name().replace('/','')\n\t\n\targ_defaults = {\n\t  'frame_id': '/map',\n\t  'planner': 'purepursuit_planner'\n\t}\n\t\n\targs = {}\n\t\n\tfor name in arg_defaults:\n\t\ttry:\n\t\t\tif rospy.search_param(name): \n\t\t\t\targs[name] = rospy.get_param('%s/%s'%(_name, name)) # Adding the name of the node, because the para has the namespace of the node\n\t\t\telse:\n\t\t\t\targs[name] = arg_defaults[name]\n\t\t\t#print name\n\t\texcept rospy.ROSException, e:\n\t\t\trospy.logerror('%s: %s'%(e, _name))\n\t\n\tserver = PointPathManager(_name, frame_id = args['frame_id'], planner = args['planner'])\n\t\n\trospy.spin()\n\n"
  },
  {
    "path": "purepursuit_planner/scripts/purepursuit_planner/planner_test_client.py",
    "content": "#! /usr/bin/env python\n\nimport roslib; roslib.load_manifest('planner_msgs')\nimport rospy\nimport time\n# Brings in the SimpleActionClient\nimport actionlib\nfrom geometry_msgs.msg import Pose2D\nfrom planner_msgs.msg import goal, GoToGoal, GoToAction\n\n\n\ndef purepursuit_client():\n\t# Creates the SimpleActionClient, passing the type of the action\n\t# (GoTo) to the constructor.\n\tclient = actionlib.SimpleActionClient('purepursuit_planner', GoToAction)\n\n\t# Waits until the action server has started up and started listening for goals.\n\tclient.wait_for_server()\n\t\n\tg = GoToGoal(target = [goal(pose = Pose2D(-2.0, 0.86, 0.0), speed = 0.2), goal(pose = Pose2D(-1.0, 0.46, 0.0), speed = 0.2), \n\tgoal(pose = Pose2D(0.0, 0.0, 0.0), speed = 0.2), goal(pose = Pose2D(1.0, 0.0, 0.0), speed = 0.2), goal(pose = Pose2D(2.54, 1.0, 0.0), speed = 0.2),\n\tgoal(pose = Pose2D(4.96, 2.18, 0.0), speed = 0.2), goal(pose = Pose2D(8.54, 2.22, 0.0), speed = 0.2)])\n\t\n\trospy.loginfo('Sending goal')\n\t# Sends the goal to the action server.\n\tclient.send_goal(g)\n\t#print 'Sleeping'\n\t#time.sleep(4)\n\t#print 'Canceling goal'\n\t#client.cancel_goal()\n\t# Waits for the server to finish performing the action.\n\tclient.wait_for_result()\n\n\t# Prints out the result of executing the action\n\treturn client.get_result() \n\nif __name__ == '__main__':\n\ttry:\n\t\t# Initializes a rospy node so that the SimpleActionClient can\n\t\t# publish and subscribe over ROS.\n\t\trospy.init_node('planner_test_client')\n\t\tresult = purepursuit_client()\n\t\trospy.loginfo( 'Result: %d'%(result.route_result))\n\texcept rospy.ROSInterruptException:\n\t\tprint \"program interrupted before completion\"\n"
  },
  {
    "path": "purepursuit_planner/scripts/purepursuit_planner/purepursuit_client.py",
    "content": "#! /usr/bin/env python\n\nimport roslib; roslib.load_manifest('purepursuit_planner')\nimport rospy\nimport time\n# Brings in the SimpleActionClient\nimport actionlib\nfrom geometry_msgs.msg import Pose2D\nfrom purepursuit_planner.msg import goal, GoToGoal\n\n# Brings in the messages used by the purepursuit action, including the\n# goal message and the result message.\nimport purepursuit_planner.msg\n\ndef purepursuit_client():\n\t# Creates the SimpleActionClient, passing the type of the action\n\t# (GoTo) to the constructor.\n\tclient = actionlib.SimpleActionClient('purepursuit_planner', purepursuit_planner.msg.GoToAction)\n\n\t# Waits until the action server has started up and started\n\t# listening for goals.\n\tclient.wait_for_server()\n\t#g = GoToGoal(target = [goal(pose = Pose2D(0.0, 0.0, 0.0), speed = 0.2), goal(pose = Pose2D(2.0, 0.0, 0.0), speed = 0.2), goal(pose = Pose2D(3.0, -1.0, 0.0), speed = 0.2), goal(pose = Pose2D(4.0, -1.0, 0.0), speed = 0.2)])\n\tg = GoToGoal(target = [goal(pose = Pose2D(-2.0, 0.86, 0.0), speed = 0.2), goal(pose = Pose2D(-1.0, 0.46, 0.0), speed = 0.2), \n\tgoal(pose = Pose2D(0.0, 0.0, 0.0), speed = 0.2), goal(pose = Pose2D(1.0, 0.0, 0.0), speed = 0.2), goal(pose = Pose2D(2.54, 1.0, 0.0), speed = 0.2),\n\tgoal(pose = Pose2D(4.96, 2.18, 0.0), speed = 0.2), goal(pose = Pose2D(8.54, 2.22, 0.0), speed = 0.2)])\n\t# Creates a goal to send to the action server.\n\t#goal = purepursuit_planner.msg.GoToGoal(target=g)\n\tprint 'Sending goal'\n\t# Sends the goal to the action server.\n\tclient.send_goal(g)\n\t#print 'Sleeping'\n\t#time.sleep(4)\n\t#print 'Canceling goal'\n\t#client.cancel_goal()\n\t# Waits for the server to finish performing the action.\n\tclient.wait_for_result()\n\n\t# Prints out the result of executing the action\n\treturn client.get_result()  # A FibonacciResult\n\nif __name__ == '__main__':\n\ttry:\n\t\t# Initializes a rospy node so that the SimpleActionClient can\n\t\t# publish and subscribe over ROS.\n\t\trospy.init_node('purepursuit_client_py')\n\t\tresult = purepursuit_client()\n\t\tprint 'Result: %d'%(result.route_result)\n\texcept rospy.ROSInterruptException:\n\t\tprint \"program interrupted before completion\"\n"
  },
  {
    "path": "purepursuit_planner/scripts/purepursuit_planner/waypoints.txt",
    "content": "p0;p0->1.0;1.772;-0.059;1.0\np1;p1->1.0;7.787;-0.287;1.0\np2;p2->1.0;15.862;-0.495;1.0\np3;p3->1.0;23.407;-0.809;1.0\np4;p4->1.0;23.727;5.374;1.0\np5;p5->1.0;24.158;17.887;1.0\n"
  },
  {
    "path": "purepursuit_planner/setup.py",
    "content": "from distutils.core import setup\nfrom catkin_pkg.python_setup import generate_distutils_setup\n\n# fetch values from package.xml\nsetup_args = generate_distutils_setup(\n    packages=['purepursuit_planner'],\n    package_dir={'': 'scripts'},\n)\n\nsetup(**setup_args)\n"
  },
  {
    "path": "purepursuit_planner/src/Component.cc",
    "content": "/*! \\class Component\n *  \\file Component.cc\n *\t\\author Robotnik Automation S.L.L\n *\t\\version 1.0\n *\t\\date 2009\n *  \\brief Clase que definirá la estructura básica de todos los componentes\n * \tDefine e implementa una serie de métodos y estructuras básicas que seguirán todos los componentes desarrollados por Robotnik\n * (C) 2009 Robotnik Automation, SLL\n *  All rights reserved.\n */\n\n#include <pthread.h>\n#include <purepursuit_planner/Component.h>\n\n\n/*! \\fn void *AuxControlThread(void *threadParam)\n * \\param threadParam as void *, parameters of thread\n * Function executing in the thread\n*/\nvoid *AuxControlThread(void *threadParam){\n\tComponent *ComponentThread = (Component *)threadParam;\n\tComponentThread->ControlThread();\n    pthread_detach(pthread_self());\n\treturn NULL;\n}\n\n/*! \\fn Component::Component()\n *  \\brief Constructor by default\n *\t\\param desired_hz as double, sets the desired frequency of the controlthread\n*/\nComponent::Component(double desired_hz){\n\t// Set main flags to false\n\tbInitialized = bRunning = false;\n\tthreadData.dRealHz = 0.0;\n\tif(desired_hz <= 0.0)\n\t\tdesired_hz = DEFAULT_THREAD_DESIRED_HZ;\n\tthreadData.dDesiredHz = desired_hz;\n\tiState = SHUTDOWN_STATE;\n\t// Realizar para cada una de las clases derivadas\n\tsComponentName.assign(\"Component\");\n\t\n\t// mutex intitialization\n\tpthread_mutex_init(&mutexThread, NULL);\n\t// Real-Time parameters\n\tthreadData.pthreadPar.prio = 25;\t\t\t\t// Priority level 0[min]-80[max]\n\tthreadData.pthreadPar.clock= CLOCK_REALTIME; \t// 0-CLOCK_MONOTONIC 1-CLOCK_REALTIME\n}\n\n/*! \\fn Component::~Component()\n * Destructor by default\n*/\nComponent::~Component(){\n\t\n\tpthread_mutex_destroy(&mutexThread);\n}\n\n/*! \\fn ReturnValue Component::Setup()\n * Configures and initializes the component\n * \\return OK\n * \\return INITIALIZED if the component is already intialized\n * \\return ERROR\n*/\nReturnValue Component::Setup(){\n\t// Checks if has been initialized\n\tif(bInitialized){\n\t\tROS_INFO(\"%s::Setup: Already initialized\",sComponentName.c_str());\n\t\t\n\t\treturn INITIALIZED;\n\t}\n\t\n\t//\n\t///////////////////////////////////////////////////\n\t// Setups another subcomponents if it's necessary //\n\t///////////////////////////////////////////////////\n\n\t/////////////////////////////////////////////////////\n\t// Allocates memory\n\tif(Allocate() != OK){\n\t\tROS_ERROR(\"%s::Setup: Error in Allocate\",sComponentName.c_str());\n\t\treturn ERROR;\n\t}\n\t// Opens devices used by the component\n\tif(Open() != OK){\n\t\tROS_ERROR(\"%s::Setup: Error in Open\",sComponentName.c_str());\n\t\t\n\t\treturn ERROR;\n\t}\t\n\t//\n\t// Configure the component\n\tif(Configure() != OK){\n\t\tROS_ERROR(\"%s::Setup: Error in Configure\",sComponentName.c_str());\n\t\treturn ERROR;\n\t}\n\n\tbInitialized = true;\n\n\treturn OK;\n}\n\n/*! \\fn ReturnValue Component::ShutDown()\n * Closes and frees the reserved resources\n * \\return OK\n * \\return ERROR if fails when closes the devices\n * \\return RUNNING if the component is running\n * \\return NOT_INITIALIZED if the component is not initialized\n*/\nReturnValue Component::ShutDown(){\n\t\n\tif(bRunning){\n\t\tROS_INFO(\"%s::ShutDown: Impossible while thread running, first must be stopped\",sComponentName.c_str());\n\t\treturn THREAD_RUNNING;\n\t}\n\tif(!bInitialized){\n\t\tROS_INFO(\"%s::ShutDown: Impossible because of it's not initialized\", sComponentName.c_str());\n\t\treturn NOT_INITIALIZED;\n\t}\n\n\t//\n\t///////////////////////////////////////////////////////\n\t// ShutDowns another subcomponents if it's necessary //\n\t///////////////////////////////////////////////////////\n\t\t\n\tif(Close() != OK){\n\t\tROS_ERROR(\"%s::ShutDown: Error Closing\", sComponentName.c_str());\n\t\treturn ERROR;\n\t}\n\tif(Free() != OK){\n\t\tROS_ERROR(\"%s::ShutDown: Error in Free\", sComponentName.c_str());\n\t\treturn ERROR;\n\t}\n\n\tbInitialized = false;\n\n\treturn OK;\n}\n\n/*! \\fn ReturnValue Component::Configure()\n * Configures devices and performance of the component\n * \\return OK\n * \\return ERROR if the configuration process fails\n*/\nReturnValue Component::Configure(){\n\n\treturn OK;\n}\n\n/*! \\fn ReturnValue Component::Allocate()\n * Allocates virtual memory if it's necessary\n * \\return OK\n*/\nReturnValue Component::Allocate(){\n\n\treturn OK;\n}\n\n/*! \\fn ReturnValue Component::Free()\n * Frees allocated memory previously\n * \\return OK\n*/\nReturnValue Component::Free(){\n\n\treturn OK;\n}\n\n/*! \\fn ReturnValue Component::Open()\n * Opens used devices\n * \\return OK\n * \\return ERROR\n*/\nReturnValue Component::Open(){\n\n\treturn OK;\n}\n\n/*! \\fn ReturnValue Component::Close()\n * Closes used devices\n * \\return OK\n * \\return ERROR\n*/\nReturnValue Component::Close(){\n\n\treturn OK;\n}\n\n/*! \\fn ReturnValue Component::Start()\n * Starts the control thread of the component and its subcomponents\n * \\return OK\n * \\return RUNNING if it's already running\n * \\return NOT_INITIALIZED if the component is not initialized\n*/\nReturnValue Component::Start(){\n\t\n\tpthread_attr_t attr;\t// Thread attributed for the component threads spawned in this function\n\n\t// If the component is not initialized, we can't start\n\tif(!bInitialized){\n\t\tROS_INFO(\"%s::Start: the component is not initialized\", sComponentName.c_str());\n\t\treturn NOT_INITIALIZED;\n\t}\n\t//\n\t///////////////////////////////////////////////////\n\t// Starts another subcomponents if it's necessary //\n\t///////////////////////////////////////////////////\n\t//\n\tif(!bRunning) {\n\t\tROS_INFO(\"%s::Start: launching the thread\", sComponentName.c_str());\n\t\t\n\n\t\tpthread_attr_init(&attr);\n\t\tpthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);\n\t\tbRunning = true;\n\t\t// Creation of the main thread\n\t\tif(pthread_create(&threadData.pthreadId, &attr, AuxControlThread, this) != 0)\t{\n\t\t\tROS_ERROR(\"%s::Start: Could not create ControlThread\", sComponentName.c_str());\n\t\t\t\n\t\t\tpthread_attr_destroy(&attr);\n\t\t\tbRunning = false;\n\t\t\treturn ERROR;\n\t\t}\n\n\t\tpthread_attr_destroy(&attr);\n\t\treturn OK;\n\n\t}else {\n\t\tROS_INFO(\"%s::Start: the component's thread is already running\", sComponentName.c_str());\n\t\treturn THREAD_RUNNING;\n\t}\n\n}\n\n/*! \\fn ReturnValue Component::Stop()\n * Stops the control thread of the Motors\n * \\return OK\n * \\return ERROR if it can't be stopped\n * \\return THREAD_NOT_RUNNING if the thread is not running\n*/\nReturnValue Component::Stop(){\n\t\n\tif(!bRunning){\n\t\tROS_INFO(\"%s::Stop: Thread not running\", sComponentName.c_str());\n\t\n\t\treturn THREAD_NOT_RUNNING;\n\t}\n\t//\n\t///////////////////////////////////////////////////\n\t// Stops another subcomponents, if it's necessary //\n\t///////////////////////////////////////////////////\n\t//\n\tROS_INFO(\"%s::Stop: Stopping the thread\", sComponentName.c_str());\n\t\n\tbRunning = false;\n\n\tusleep(100000);\n\n\treturn OK;\n}\n\n/*!\t\\fn void Component::ControlThread()\n *\t\\brief All core component functionality is contained in this thread.\n*/\nvoid Component::ControlThread(){\n\tstruct sched_param schedp;\n\tint policy = threadData.pthreadPar.prio? SCHED_FIFO : SCHED_OTHER;\n\tstruct timespec now, next, interval;\n\tstruct timespec last_time;  // Necesarry to calculates real frec\n\tlong diff;\n\tunsigned long sampling_period_us;\n\t\n\t// Robotnik thread priority and timing management\n\tmemset(&schedp, 0, sizeof(schedp));\n\tschedp.sched_priority = threadData.pthreadPar.prio;\n\tsched_setscheduler(0, policy, &schedp);\n\tclock_gettime(threadData.pthreadPar.clock, &now);\n \tlast_time = next = now;\n\tnext.tv_sec++;  // start in next second?\n\tsampling_period_us =  (long unsigned int) (1.0 / threadData.dDesiredHz * 1000000.0);\n\tinterval.tv_sec = sampling_period_us / USEC_PER_SEC;  // interval parameter in uS\n\tinterval.tv_nsec = (sampling_period_us % USEC_PER_SEC)*1000;\n\n\t//sprintf(cAux, \"%s::ControlThread: Starting the thread\", sComponentName.c_str());\n\t//rlcLog->AddEvent((char *)cAux);\n\t// Begin thread execution on init state\n\tSwitchToState(INIT_STATE);\n\n\twhile(bRunning) { // Executes state machine code while bRunning flag is active\n\t\tclock_nanosleep(threadData.pthreadPar.clock, TIMER_ABSTIME, &next, NULL);\n\t\tclock_gettime(threadData.pthreadPar.clock, &now);\n\t\tnext.tv_sec += interval.tv_sec;\n\t\tnext.tv_nsec += interval.tv_nsec;\n\t\ttsnorm(&next);\n\n\t\tdiff = calcdiff(now, last_time);\n\t\tlast_time = now;\n\t\t// Thread frequency update\n\t\tthreadData.dRealHz = 1.0/(diff / 1000000.0); // Compute the update rate of this thread\n\t\t// Test: controlamos que la frecuencia real no difiera de la teórica\n\t\tif(threadData.dRealHz < (1.0/5.0)*threadData.dDesiredHz){\n\t\t\tROS_ERROR(\"%s:ControlThread: Delay on control loop. Desired Hz is %lf, but real is %lf\", sComponentName.c_str(), threadData.dDesiredHz, threadData.dRealHz);\n\t\t\t\n\t\t}\n\n\t\tswitch (iState){\n\t\t\tcase INIT_STATE:\n\t\t\t\tInitState();\n\t\t\tbreak;\n\t\t\tcase STANDBY_STATE:\n\t\t\t\tStandbyState();\n\t\t\tbreak;\n\t\t\tcase READY_STATE:\n\t\t\t\tReadyState();\n\t\t\tbreak;\n\t\t\tcase EMERGENCY_STATE:\n\t\t\t\tEmergencyState();\n\t\t\tbreak;\n\t\t\tcase FAILURE_STATE:\n\t\t\t\tFailureState();\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t\tAllState();\n\t}\n\tSwitchToState(SHUTDOWN_STATE);\n\t\n\tROS_INFO(\"%s:ControlThread: Exiting main Thread\", sComponentName.c_str());\n\t\n\tusleep(100000);\t// Sleep for 100 milliseconds and then exit\n\n}\n\n/*!\t\\fn void Component::InitState()\n *\t\\brief Actions performed on initial state\n*/\nvoid Component::InitState(){\n\n}\n\n/*!\t\\fn void Component::StandbyState()\n *\t\\brief Actions performed on Standby state\n*/\nvoid Component::StandbyState(){\n\n}\n\n/*!\t\\fn void Component::ReadyState()\n *\t\\brief Actions performed on ready state\n*/\nvoid Component::ReadyState(){\n\n}\n\n/*!\t\\fn void Component::EmergencyState()\n *\t\\brief Actions performed on emergency state\n*/\nvoid Component::EmergencyState(){\n\n}\n\n/*!\t\\fn void Component::FailureState()\n *\t\\brief Actions performed on failure state\n*/\nvoid Component::FailureState(){\n\n}\n\n/*!\t\\fn void Component::AllState()\n *\t\\brief Actions performed on all states\n*/\nvoid Component::AllState(){\n\n}\n\n/*!\t\\fn double Component::GetUpdateRate()\n * \t\\brief Gets current update rate of the thread\n * \t\\return real frequency of the thread\n*/\ndouble Component::GetUpdateRate(){\n\treturn threadData.dRealHz;\n}\n\n/*!\t\\fn States Component::GetState()\n * \t\\brief returns the state of the component\n*/\nStates Component::GetState(){\n\treturn iState;\n}\n\n/*!\t\\fn char *Component::GetStateString()\n *\t\\brief Gets the state of the component as string\n*/\nchar *Component::GetStateString(){\n\tswitch(iState){\n\t\tcase INIT_STATE:\n\t\t\treturn (char *)\"INIT\";\n\t\tbreak;\n\t\tcase STANDBY_STATE:\n\t\t\treturn (char *)\"STANDBY\";\n\t\tbreak;\n\t\tcase READY_STATE:\n\t\t\treturn (char *)\"READY\";\n\t\tbreak;\n\t\tcase EMERGENCY_STATE:\n\t\t\treturn (char *)\"EMERGENCY\";\n\t\tbreak;\n\t\tcase FAILURE_STATE:\n\t\t\treturn (char *)\"FAILURE\";\n\t\tbreak;\n\t\tcase SHUTDOWN_STATE:\n\t\t\treturn (char *)\"SHUTDOWN\";\n\t\tbreak;\n\t\tdefault:\n\t\t\treturn (char *)\"UNKNOWN\";\n\t\tbreak;\n\t}\n}\n\n/*!\t\\fn char *Component::GetStateString(States state)\n *\t\\brief Gets the state as a string\n*/\nchar *Component::GetStateString(States state){\n\tswitch(state){\n\t\tcase INIT_STATE:\n\t\t\treturn (char *)\"INIT\";\n\t\tbreak;\n\t\tcase STANDBY_STATE:\n\t\t\treturn (char *)\"STANDBY\";\n\t\tbreak;\n\t\tcase READY_STATE:\n\t\t\treturn (char *)\"READY\";\n\t\tbreak;\n\t\tcase EMERGENCY_STATE:\n\t\t\treturn (char *)\"EMERGENCY\";\n\t\tbreak;\n\t\tcase FAILURE_STATE:\n\t\t\treturn (char *)\"FAILURE\";\n\t\tbreak;\n\t\tcase SHUTDOWN_STATE:\n\t\t\treturn (char *)\"SHUTDOWN\";\n\t\tbreak;\n\t\tdefault:\n\t\t\treturn (char *)\"UNKNOWN\";\n\t\tbreak;\n\t}\n}\n\n\n/*!\t\\fn void Component::SwitchToState(States new_state)\n * \tfunction that switches the state of the component into the desired state\n * \t\\param new_state as an integer, the new state of the component\n*/\nvoid Component::SwitchToState(States new_state){\n\t\n\tif(new_state == iState)\n\t\treturn;\n\n\n\tROS_INFO(\"%s::SwitchToState: %s -> %s\", sComponentName.c_str(), GetStateString(iState), GetStateString(new_state));\t\n\tiState = new_state;\n\n}\n\n/*!\t\\fn ReturnValue Component::GetThreadData(thread_data *data)\n * \tGets the data of the current thread\n *  \\return OK if the id is OK\n *  \\return ERROR if the id doesn't exist\n*/\nReturnValue Component::GetThreadData(thread_data *data){\n    pthread_t auxId = pthread_self();\n    ReturnValue ret = ERROR;\n    // Main thread\n    if(auxId == threadData.pthreadId){\n        *data = threadData;\n        ROS_INFO(\"Component::GetThreadData: Main thread\");\n        return OK;\n    }\n    // Search the Id in the list\n    pthread_mutex_lock(&mutexThread);\n        for(unsigned int i = 0; i < vThreadData.size(); i++){\n            \n            if(auxId == vThreadData[i].pthreadId){  // Encontrado\n                *data = vThreadData[i];\n                ret = OK;\n                break;\n            }\n        }\n    pthread_mutex_unlock(&mutexThread);\n\n    return ret;\n}\n\n/*!\t\\fn ReturnValue Component::CreateTask(int prio, double frec, void *(*start_routine)(void*))\n * \tCreates new thread executing specific tasks\n *  \\param prio as int, Thread priority level ( 0[min]-80[max] )\n *  \\param frec as double, thread frequency\n *  \\param start_routine as void*(*)(void*), function wich will execute the task\n * \t\\return THREAD_NOT_RUNNING if the component is not running\n *  \\return OK if waits successfully\n *  \\return ERROR if an error is produced creating the thread\n*/\nReturnValue Component::CreateTask(int prio, double frec, void *(*start_routine)(void*)){\n\tpthread_attr_t attr;\t// Thread attributed for the component threads spawned in this function\n    thread_data new_thread;\n    if(frec <= 0.0)\n        frec = DEFAULT_THREAD_DESIRED_HZ;\n    if(prio < 0)\n        prio = DEFAULT_THREAD_PRIORITY;\n    //\n\t// If the component is not initialized, we can't start\n\tif(!bRunning){\n\t\tROS_INFO(\"%s::CreateTask: the component is not running\", sComponentName.c_str());\n\t\treturn THREAD_NOT_RUNNING;\n\t}\n\n    pthread_attr_init(&attr);\n    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);\n    // Protect the creation and modification of threads with a mutex\n    pthread_mutex_lock(&mutexThread);\n\n        // Creation of the main thread\n        if(pthread_create(&new_thread.pthreadId, &attr, start_routine, this) != 0)\t{\n            ROS_ERROR(\"%s::CreateTask: Could not create new thread\", sComponentName.c_str());\n            pthread_attr_destroy(&attr);\n            pthread_mutex_unlock(&mutexThread);\n            return ERROR;\n        }\n        pthread_attr_destroy(&attr);\n        new_thread.dDesiredHz = frec;\n        new_thread.dRealHz = 0.0;\n        new_thread.pthreadPar.prio = prio;\n        new_thread.pthreadPar.clock = CLOCK_REALTIME;\n        // Adds information for the new thread\n        vThreadData.push_back(new_thread);\n        \n    pthread_mutex_unlock(&mutexThread);\n\n    return OK;\n}\n"
  },
  {
    "path": "purepursuit_planner/src/purepursuit_planner.cpp",
    "content": "/** \\file purepursuit_planner.cc\n * \\author Robotnik Automation S.L.L.\n * \\version 1.0\n * \\date    2014\n *\n * \\brief purepursuit_planner class motorsDev\n * Component to manage the Agvs controller\n * (C) 2014 Robotnik Automation, SLL\n*/\n#include <string.h>\n#include <vector>\n#include <queue>\n#include <stdint.h>\n#include <ros/ros.h>\n#include <math.h>\n#include <cstdlib>\n\n#include <purepursuit_planner/Component.h>\n#include <ackermann_msgs/AckermannDriveStamped.h>\n#include <nav_msgs/Odometry.h>\n#include <tf/transform_broadcaster.h>\n#include <tf/transform_listener.h>\n#include \"diagnostic_msgs/DiagnosticStatus.h\"\n#include \"diagnostic_updater/diagnostic_updater.h\"\n#include \"diagnostic_updater/update_functions.h\"\n#include \"diagnostic_updater/DiagnosticStatusWrapper.h\"\n#include \"diagnostic_updater/publisher.h\"\n#include <actionlib/server/simple_action_server.h>\n#include <planner_msgs/GoToAction.h>\n#include <planner_msgs/goal.h>\n#include <geometry_msgs/Pose2D.h>\n//#include <s3000_laser/enable_disable.h>\n\n\n#define ODOM_TIMEOUT_ERROR\t\t\t0.2\t\t\t\t// max num. of seconds without receiving odom values\n#define MAP_TIMEOUT_ERROR\t\t\t0.2\t\t\t\t// max num. of seconds without receiving map transformations\n#define AGVS_TURN_RADIUS\t\t\t0.20\t\t\t// distancia en la que empieza a girar el robot cuando llega a una esquina\n#define MIN_ANGLE_BEZIER\t\t\t0.261799388\t\t// ángulo (radianes) mínimo entre segmentos de la recta para los que ajustaremos a una curva de BEZIER\n#define BEZIER_CONTROL_POINTS\t\t5\n\n#define D_LOOKAHEAD_MIN\t\t\t\t0.3\t\t// Minima distancia del punto objetivo en m (PurePursuit con lookahead dinámico)\n#define D_LOOKAHEAD_MAX\t\t\t\t1.1\t\t// Maxima distancia del punto objetivo\n#define D_WHEEL_ROBOT_CENTER    \t0.478   // Distance from the motor wheel to the robot center\n\n#define MAX_SPEED_LVL1\t\t\t\t0.5\n#define MAX_SPEED_LVL2\t\t\t\t0.3\n#define MAX_SPEED\t\t\t\t\t1.2\n\n#define WAYPOINT_POP_DISTANCE_M\t\t0.10\t\t//Distancia mínima para alcanzar punto objetivo m (PurePursuit)\n\n#define AGVS_FIRST_DECELERATION_DISTANCE \t0.5 \t// meters -> when the vehicle is arriving to the goal, it has to decelarate at this distance\n#define AGVS_FIRST_DECELERATION_MAXSPEED\t0.15\t// m/s\n#define AGVS_SECOND_DECELERATION_DISTANCE   0.25 \t// meters -> when the vehicle is arriving to the goal, it has to decelarate another time at this distance\n#define AGVS_SECOND_DECELERATION_MAXSPEED\t0.1 \t// m/s\n#define AGVS_DEFAULT_KR\t0.20\t\t\t\t// \n\nenum{\n\tODOM_SOURCE = 1,\n\tMAP_SOURCE = 2\n};\n\nusing namespace std;\n\n//! Data structure for a Magnet\ntypedef struct MagnetStruct{\n    //! Id of the magnet\n    int iID;\n    //! X position\n    double dX;\n    //! Y position\n    double dY;\n}MagnetStruct;\n\n//! Data structure for a Waypoint\ntypedef struct Waypoint{\n    //! Id of the magnet\n    int iID;\n    //! X position\n    double dX;\n    //! Y position\n    double dY;\n    //! Orientation\n    double dA;\n    //! Speed to arrive to the point\n    double dSpeed;\n}Waypoint;\n\n//! class to manage the waypoints and magnets of the current path\nclass Path{\n\tpublic:\n\t//! Current waypoint\n\tint iCurrentWaypoint;\n\t//! Current magnet\n\tint iCurrentMagnet;\n\n\tprivate:\n\t//! Mutex to control the access\n\tpthread_mutex_t mutexPath;\n\t//! Vector to store all the Waypoints\n\tvector <Waypoint> vPoints;\n\t//! Vector to store all the magnets\n\tvector <MagnetStruct> vMagnets;\n\t//! Flag to control the optimization\n\tbool bOptimized;\n\n\tpublic:\n\n\t//! public constructor\n\tPath(){\n\t\tiCurrentWaypoint = iCurrentMagnet = -1;\n\t\tpthread_mutex_init(&mutexPath, NULL);//Initialization for WaypointRoutes' mutex\n\t\tbOptimized = false;\n\t}\n\n\t//! Destructor\n\t~Path(){\n\t\tpthread_mutex_destroy(&mutexPath);\n\t}\n\n\t//! Adds a new waypoint\n\tReturnValue AddWaypoint(Waypoint point){\n\t\tWaypoint aux;\n\n\t\tpthread_mutex_lock(&mutexPath);\n\t\t\tif(vPoints.size() > 0){\n\t\t\t\taux = vPoints.back();\n\t\t\t\t// Only adds the waypoint if it's different from waypoint before\n\t\t\t\tif( (aux.dX != point.dX) || (aux.dY != point.dY) )\n\t\t\t\t\tvPoints.push_back(point);\n\t\t\t} else { // First point\n\t\t\t\tif(iCurrentWaypoint < 0){ //First point\n\t\t\t\t\tiCurrentWaypoint = 0;\n\t\t\t\t}\n\n\t\t\t\tvPoints.push_back(point);\n\t\t\t}\n\n\t\tpthread_mutex_unlock(&mutexPath);\n\n\t\treturn OK;\n\t}\n\n\t//! Adds a vector of waypoints\n\tReturnValue AddWaypoint(vector <Waypoint> po){\n\t\tpthread_mutex_lock(&mutexPath);\n\t\t\tif(iCurrentWaypoint < 0){ //First point\n\t\t\t\tiCurrentWaypoint = 0;\n\t\t\t}\n\t\t\tfor(int i = 0; i < po.size(); i++){\n\t\t\t\tvPoints.push_back(po[i]);\n\t\t\t}\n\t\tpthread_mutex_unlock(&mutexPath);\n\t}\n\n\t//! Adds a new magnet\n\tReturnValue AddMagnet(MagnetStruct magnet){\n\t\tpthread_mutex_lock(&mutexPath);\n\t\t\tif(iCurrentMagnet < 0){ //First point\n\t\t\t\tiCurrentMagnet = 0;\n\t\t\t}\n\t\t\tvMagnets.push_back(magnet);\n\t\tpthread_mutex_unlock(&mutexPath);\n\n\t\treturn OK;\n\t}\n\n\t//! Adds a vector of magnets\n\tReturnValue AddMagnet(vector <MagnetStruct> po){\n\t\tpthread_mutex_lock(&mutexPath);\n\t\t\tif(iCurrentMagnet < 0){ //First point\n\t\t\t\tiCurrentMagnet = 0;\n\t\t\t}\n\t\t\tfor(int i = 0; i < po.size(); i++){\n\t\t\t\tvMagnets.push_back(po[i]);\n\t\t\t}\n\t\tpthread_mutex_unlock(&mutexPath);\n\t}\n\n\t//! Clears the waypoints and magnets\n\tvoid Clear(){\n\t\tpthread_mutex_lock(&mutexPath);\n\t\t\tiCurrentWaypoint = -1;\n\t\t\tiCurrentMagnet = -1;\n\t\t\tbOptimized = false;\n\t\t\tvPoints.clear();\n\t\t\tvMagnets.clear();\n\t\tpthread_mutex_unlock(&mutexPath);\n\t}\n\t\n\t//! Returns the size of the vector points\n\tunsigned int Size(){\n\t\treturn vPoints.size();\n\t}\n\n\t//! Returns the next waypoint\n\tReturnValue GetNextWaypoint(Waypoint *wp){\n\t\tReturnValue ret = ERROR;\n\n\t\tpthread_mutex_lock(&mutexPath);\n\n\t\t\tif( (iCurrentWaypoint >= 0) && (iCurrentWaypoint < (vPoints.size() - 1)) ){\n\t\t\t\t*wp = vPoints[iCurrentWaypoint + 1];\n\t\t\t\tret = OK;\n\t\t\t}\n\n\t\tpthread_mutex_unlock(&mutexPath);\n\n\t\treturn ret;\n\t}\n\n\t//! Returns the last waypoint\n\tReturnValue BackWaypoint(Waypoint *wp){\n\t\tReturnValue ret = ERROR;\n\n\t\tpthread_mutex_lock(&mutexPath);\n\t\t\tif( vPoints.size() > 0){\n\t\t\t\t*wp = vPoints.back();\n\t\t\t\tret = OK;\n\t\t\t}\n\t\tpthread_mutex_unlock(&mutexPath);\n\n\t\treturn ret;\n\t}\n\n\t//! Gets the current waypoint\n\tReturnValue GetCurrentWaypoint(Waypoint *wp){\n\t\tReturnValue ret = ERROR;\n\n\t\tpthread_mutex_lock(&mutexPath);\n\t\t\tif( (iCurrentWaypoint >= 0) && (iCurrentWaypoint < vPoints.size()) ){\n\t\t\t\t*wp = vPoints[iCurrentWaypoint];\n\t\t\t\tret = OK;\n\t\t\t}\n\t\tpthread_mutex_unlock(&mutexPath);\n\n\t\treturn ret;\n\t}\n\n\t//! Gets selected waypoint\n\tReturnValue GetWaypoint(int index, Waypoint *wp){\n\t\tReturnValue ret = ERROR;\n\n\t\tpthread_mutex_lock(&mutexPath);\n\t\t\tif( (index >= 0) && ( index< vPoints.size() ) ){\n\t\t\t\t*wp = vPoints[index];\n\t\t\t\tret = OK;\n\t\t\t}\n\t\tpthread_mutex_unlock(&mutexPath);\n\n\t\treturn ret;\n\t}\n\n\t//! Gets the current Waypoint in the path\n\tint GetCurrentWaypointIndex(){\n\t\treturn iCurrentWaypoint;\n\t}\n\n\t//!\tSets the current Waypoint to index\n\tReturnValue SetCurrentWaypoint(int index){\n\t\tReturnValue ret = ERROR;\n\n\t\tif(index < (vPoints.size() - 1)){\n\t\t\tpthread_mutex_lock(&mutexPath);\n\t\t\t\tiCurrentWaypoint = index;\n\t\t\tpthread_mutex_unlock(&mutexPath);\n\t\t\tret = OK;\n\t\t}\n\n\t\treturn ret;\n\t}\n\n\t //! Increase waypoint's number\n\tvoid NextWaypoint(){\n\t\tpthread_mutex_lock(&mutexPath);\n\t\t\tiCurrentWaypoint++;\n\t\tpthread_mutex_unlock(&mutexPath);\n\t}\n\n\t//! Returns the number of waypoints\n\tint NumOfWaypoints(){\n\t\treturn vPoints.size();\n\t}\n\n\t//! Returns the next magnet\n\tReturnValue GetNextMagnet(MagnetStruct *mg){\n\t\tReturnValue ret = ERROR;\n\t\tpthread_mutex_lock(&mutexPath);\n\n\t\t\tif( (iCurrentMagnet >= 0) && (iCurrentMagnet < (vMagnets.size() - 1)) ){\n\t\t\t\t*mg = vMagnets[iCurrentMagnet + 1];\n\t\t\t\tret = OK;\n\t\t\t}\n\n\t\tpthread_mutex_unlock(&mutexPath);\n\n\n\t\treturn ret;\n\t}\n\n\t//! Returns the back magnet\n\tReturnValue BackMagnet(MagnetStruct * mg){\n\t\tReturnValue ret = ERROR;\n\n\t\t pthread_mutex_lock(&mutexPath);\n\t\t\tif( vMagnets.size() > 0){\n\t\t\t\t*mg = vMagnets.back();\n\t\t\t\tret = OK;\n\t\t\t}\n\t\tpthread_mutex_unlock(&mutexPath);\n\n\t\treturn ret;\n\t}\n\n\t//! Gets the current magnet\n\tReturnValue GetCurrentMagnet( MagnetStruct * mg ){\n\t\tReturnValue ret = ERROR;\n\n\t\tpthread_mutex_lock(&mutexPath);\n\t\t\tif( (iCurrentMagnet >= 0) && (iCurrentMagnet < vMagnets.size()) ){\n\t\t\t\t*mg = vMagnets[iCurrentMagnet];\n\t\t\t\tret = OK;\n\t\t\t}\n\t\tpthread_mutex_unlock(&mutexPath);\n\n\t\treturn ret;\n\t}\n\n\t//! Gets the previous magnet\n\tReturnValue GetPreviousMagnet( MagnetStruct * mg ){\n\t\tReturnValue ret = ERROR;\n\n\t\tpthread_mutex_lock(&mutexPath);\n\t\t\tif( (iCurrentMagnet > 0) && (iCurrentMagnet <= vMagnets.size()) ){\n\t\t\t\t*mg = vMagnets[iCurrentMagnet-1];\n\t\t\t\tret = OK;\n\t\t\t}\n\t\tpthread_mutex_unlock(&mutexPath);\n\n\t\treturn ret;\n\t}\n\n\t//! Gets the current MagnetStruct in the path\n\tint GetCurrentMagnetIndex(){\n\t\treturn iCurrentMagnet;\n\t}\n\n\t//!\tSets the current magnet to index\n\tReturnValue SetCurrentMagnet(int index){\n\t\tReturnValue ret = ERROR;\n\n\t\tif(index < (vMagnets.size() - 1)){\n\t\t\tpthread_mutex_lock(&mutexPath);\n\t\t\t\tiCurrentMagnet = index;\n\t\t\tpthread_mutex_unlock(&mutexPath);\n\t\t\tret = OK;\n\t\t}\n\t\treturn ret;\n\t}\n\n\t//! Increase magnet's number\n\tvoid NextMagnet(){\n\t\tpthread_mutex_lock(&mutexPath);\n\t\t\tiCurrentMagnet++;\n\t\tpthread_mutex_unlock(&mutexPath);\n\t}\n\n\t //! Gets the last magnet\n\tReturnValue GetLastMagnet( MagnetStruct * mg ){\n\t\tReturnValue ret = ERROR;\n\n\t\tpthread_mutex_lock(&mutexPath);\n\t\t\tif( (iCurrentMagnet > 0) && (iCurrentMagnet <= vMagnets.size() ) ){\n\t\t\t\t*mg = vMagnets[iCurrentMagnet - 1];\n\t\t\t\tret = OK;\n\t\t\t}\n\t\tpthread_mutex_unlock(&mutexPath);\n\n\t\treturn ret;\n\t}\n\n\t  //! Returns the number of magnets\n\tint NumOfMagnets(){\n\t\treturn vMagnets.size();\n\t}\n\n\t//! Overloaded operator +=\n\tPath &operator+=(const Path &a){\n\t\tAddWaypoint(a.vPoints);\n\t\tAddMagnet(a.vMagnets);\n\t\treturn *this;\n\t}\n\n\t//! Cross product\n\tdouble dot2( Waypoint w, Waypoint v) {\n\t\treturn (w.dX*v.dX + w.dY*v.dY);\n\t}\n\n\t//! Obtains the points for a quadratic Bezier's curve\n\t//! \\param cp0 as player_pose2d_t, control point 0\n\t//!\t\\param cp1 as player_pose2d_t, control point 1\n\t//!\t\\param cp2 as player_pose2d_t, control point 2\n\t//!\t\\param t as float, [0 ... 1]\n\t//!\t\\return Point over the curve\n\tWaypoint PosOnQuadraticBezier(Waypoint cp0, Waypoint cp1, Waypoint cp2, float t){\n\t\tWaypoint aux;\n\n\t\t//B(t)= (1-t)^2 * cp0 + 2*t*(1-t)*cp1 + t^2 * cp2;\n\t\t//Bx(t)\n\t\taux.dX = (1.0-t)*(1.0-t)*cp0.dX + 2*t*(1.0-t)*cp1.dX + t*t*cp2.dX;\n\t\t//By(t)\n\t\taux.dY = (1.0-t)*(1.0-t)*cp0.dY + 2*t*(1.0-t)*cp1.dY + t*t*cp2.dY;\n\n\t\treturn aux;\n\t}\n\n\t//! Function that calculate the distance to deccelerate from target speed\n\t//! \\param target_speed as double, speed on m/s\n\t//! \\return distance on meters\n\tdouble DistForSpeed(double target_speed){\n\t\tif(target_speed > 1.0)\n\t\t\treturn 2.0;\n\t\telse if(target_speed > 0.8)\n\t\t\treturn 1.5;\n\t\telse return\n\t\t\t1.0;\n\n\t}\n\n\t//! Modifies and adds new waypoints to the route for improving the path\n\t//! \\param distance as double, used for the calculation of the new points\n\t//! \\return ERROR if Size is lower than 3, distance <= 0 or the waypoints has already been optimized\n\t//! \\return OK\n\tReturnValue Optimize(double distance){\n\t\tint i, j=0;\n\t\tint a, b, c;\n\t\tint x = 0, y = 1, speed = 2;\n\t\tdouble mod_ab, mod_bc;\n\t\tdouble dAngle;\n\t\tWaypoint ab, bc, ba;\n\t\tdouble K= 0.0;\n\t\tvector <Waypoint> new_points;\n\t\tWaypoint aux;\n\t\tdouble Ax = 0.0, Ay = 0.0, Bx = 0.0, By = 0.0, Cx = 0.0, Cy = 0.0;\n\t\tWaypoint A, B, C;\n\t\tdouble Kt = 1.0 / BEZIER_CONTROL_POINTS;\n\t\tdouble dAuxSpeed = 0.0;\n\t\tdouble dMinDist = 0.0;\t// Minica distancia a la que hay q frenar en funcion de la velocidad\n\n\t\tif(bOptimized){\t//Already optimized\n\t\t\treturn OK;\n\t\t}\n\n\t\tif((vPoints.size() < 2) || (distance <= 0.0)){\t//Minimo 3 puntos en la ruta\n\t\t\t//printf(\"WaypointRoute::Optimize: Error: not enought points (%d)\\n\",Size());\n\t\t\treturn ERROR;\n\t\t}\n\t\tpthread_mutex_lock(&mutexPath);\n\t\t\t//\n\t\t\t// Si solo hay dos puntos, interpolamos y creamos un punto intermedio\n\t\t\tif(vPoints.size() == 2){\n\t\t\t\taux = vPoints[1];\n\t\t\t\tvPoints.push_back(aux); // Añadimos un punto al final y modificamos el del medio\n\t\t\t\tif((vPoints[0].dX - aux.dX) == 0.0){// Punto en el mismo eje X\n\t\t\t\t\tvPoints[1].dX = vPoints[0].dX;    // Mantenemos la coordenada en X\n\t\t\t\t\tvPoints[1].dY = vPoints[0].dY + (aux.dY - vPoints[0].dY) / 2.0; // La coordenada en Y será igual a la del primer punto más la mitada de distancia entre el punto final e inicial\n\t\t\t\t}else if((vPoints[0].dY - aux.dY) == 0.0){ // Punto en el mismo eje Y\n\t\t\t\t\tvPoints[1].dX = vPoints[0].dX + (aux.dX - vPoints[0].dX) / 2.0; // La coordenada en X será igual a la del primer punto más la mitada de distancia entre el punto final e inicial\n\t\t\t\t\tvPoints[1].dY = vPoints[0].dY;    // Mantenemos la coordenada en Y\n\t\t\t\t}else{ // Punto en eje X, Y distinto\n\t\t\t\t\tvPoints[1].dX = vPoints[0].dX + (aux.dX - vPoints[0].dX) / 2.0; // La coordenada en X será igual a la del primer punto más la mitada de distancia entre el punto final e inicial\n\t\t\t\t\tvPoints[1].dY = vPoints[0].dY + (aux.dY - vPoints[0].dY) / 2.0; // La coordenada en Y será igual a la del primer punto más la mitada de distancia entre el punto final e inicial\n\t\t\t\t}\n\t\t\t}\n\t\t\n\t\t\tnew_points.push_back(vPoints[0]);\n\t\t\tnew_points.push_back(vPoints[1]);\n\n\t\t\tfor(i=2; i < vPoints.size(); i++){\t// Primera pasada, añadimos puntos para los giros en curvas\n\t\t\t\t//cout << \" Partiendo de punto \" << i << endl;\n\t\t\t\ta = i-2;\n\t\t\t\tb = i-1;\n\t\t\t\tc = i;\n\n\t\t\t\tAx = vPoints[a].dX;\n\t\t\t\tAy = vPoints[a].dY;\n\t\t\t\tBx = vPoints[b].dX;\n\t\t\t\tBy = vPoints[b].dY;\n\t\t\t\tCx = vPoints[c].dX;\n\t\t\t\tCy = vPoints[c].dY;\n\n\t\t\t\tab.dX = Bx - Ax;\n\t\t\t\tab.dY = By - Ay;\n\t\t\t\tmod_ab = sqrt(ab.dX * ab.dX + ab.dY * ab.dY);\n\n\t\t\t\tbc.dX = Cx - Bx;\n\t\t\t\tbc.dY = Cy - By;\n\t\t\t\tmod_bc = sqrt(bc.dX * bc.dX + bc.dY * bc.dY);\n\n\t\t\t\tdAngle= acos(dot2(ab,bc)/(mod_ab*mod_bc));\n\t\t\t\t//cout <<  i << \" Angle =  \"<< dAngle << endl;\n\t\t\t\tif(fabs(dAngle) >= MIN_ANGLE_BEZIER){ // en caso del angulo que forman los segmentos sea menor, entonces generaremos puntos para aproximar mjor la curva\n\t\t\t\t\t// siendo ba vector director de b->a y bc el vector director b->c\n\t\t\t\t\t// Calculamos un punto a una distancia 'd' desde 'b' hacia 'a' y otro punto desde 'b' hacia 'c'\n\t\t\t\t\t// Estos puntos serán los que se añadirán a la lista de waypoints para poder trazar una curva de bezier\n\n\t\t\t\t\tnew_points.pop_back();\n\n\t\t\t\t\t// Calcula velocidad maxima en funcion del giro de la curva\n\t\t\t\t\tif(fabs(dAngle) >= (Pi/4)){\n\t\t\t\t\t\tdAuxSpeed = MAX_SPEED_LVL2;\n\t\t\t\t\t}else\n\t\t\t\t\t\tdAuxSpeed = MAX_SPEED_LVL1;\n\t\t\t\t\t//cout << \"Aux speed = \" << dAuxSpeed << \", Next speed =  \" << vPoints[b].dSpeed << endl;\n\t\t\t\t\t// Si la velocidad en ese waypoint supera el máximo establecido para un giro así\n\t\t\t\t\tif(fabs(vPoints[b].dSpeed) > dAuxSpeed){\n\n\t\t\t\t\t\tif(vPoints[b].dSpeed < 0.0)\t// Cambiamos sentido de avance\n\t\t\t\t\t\t\tdAuxSpeed = -dAuxSpeed;\n\n\t\t\t\t\t\tdMinDist = DistForSpeed(fabs(vPoints[b].dSpeed));\n\t\t\t\t\t\t//cout << \"Min dist = \" << dMinDist  << endl;\n\t\t\t\t\t\t// Si el punto antes del giro esta a una distancia menor a la mínima, añadimos nuevo punto a un metro\n\t\t\t\t\t\tif( mod_ab > dMinDist){\n\t\t\t\t\t\t\t//Lo creamos\n\t\t\t\t\t\t\tba.dX = -ab.dX;\n\t\t\t\t\t\t\tba.dY = -ab.dY;\n\t\t\t\t\t\t\tK = dMinDist / sqrt(ba.dX * ba.dX + ba.dY * ba.dY);\n\n\t\t\t\t\t\t\taux.dX = Bx + K * ba.dX;\t// x = x' + K*Vx\n\t\t\t\t\t\t\taux.dY = By + K * ba.dY;\t// y = y' + K*Vy\t//(Vx, Vy) vector director\n\t\t\t\t\t\t\taux.dSpeed = vPoints[b].dSpeed;\n\t\t\t\t\t\t\t//cout << \"Nuevo punto en \" << aux.dX << \", \" << aux.dY << endl;\n\t\t\t\t\t\t\tnew_points.push_back(aux);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvPoints[b].dSpeed = dAuxSpeed;\n\n\t\t\t\t\t}\n\t\t\t\t\t// El primer waypoint no se modifica\n\t\t\t\t\tif(mod_ab > distance){ // si la distancia entre ab es MAYOR a la distancia del punto que pretendemos crear, creamos un punto intermedio\n\t\t\t\t\t\t//Lo creamos\n\t\t\t\t\t\tba.dX = -ab.dX;\n\t\t\t\t\t\tba.dY = -ab.dY;\n\t\t\t\t\t\tK = distance / sqrt(ba.dX * ba.dX + ba.dY * ba.dY);\n\n\t\t\t\t\t\taux.dX = Bx + K * ba.dX;\t// x = x' + K*Vx\n\t\t\t\t\t\taux.dY = By + K * ba.dY;\t// y = y' + K*Vy\t//(Vx, Vy) vector director\n\t\t\t\t\t\taux.dSpeed = vPoints[b].dSpeed;\n\t\t\t\t\t\t//cout << \"Nuevo punto en \" << aux.dX << \", \" << aux.dY << endl;\n\t\t\t\t\t\tnew_points.push_back(aux);\n\t\t\t\t\t\t//j++;\n\t\t\t\t\t}\n\n\t\t\t\t\tnew_points.push_back(vPoints[b]);\n\n\t\t\t\t\tif(mod_bc > distance){ // si la distancia entre ab es menor a la distancia del punto que pretendemos crear, lo dejamos como está\n\t\t\t\t\t\t//Lo creamos\n\t\t\t\t\t\tK = distance / sqrt(bc.dX * bc.dX + bc.dY * bc.dY);\n\t\t\t\t\t\taux.dX = Bx + K * bc.dX;\t// x = x' + K*Vx\n\t\t\t\t\t\taux.dY = By + K * bc.dY;\t// y = y' + K*Vy\t//(Vx, Vy) vector director\n\t\t\t\t\t\taux.dSpeed = vPoints[b].dSpeed;\n\t\t\t\t\t\t//j++;\n\t\t\t\t\t\t//cout << \"Nuevo punto en \" << aux.dX << \", \" << aux.dY << endl;\n\t\t\t\t\t\tnew_points.push_back(aux);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Creamos punto para después del giro\n\t\t\t\t\tif(dMinDist > 0.0) {\n\t\t\t\t\t\tif(mod_bc > 1.0){\t// si la distancia al punto C es mayor que 1 metro, después del giro\n\t\t\t\t\t\t\t// Creamos un nuevo punto\n\t\t\t\t\t\t\t//Lo creamos\n\t\t\t\t\t\t\tK = 1.0 / sqrt(bc.dX * bc.dX + bc.dY * bc.dY);\n\t\t\t\t\t\t\taux.dX = Bx + K * bc.dX;\t// x = x' + K*Vx\n\t\t\t\t\t\t\taux.dY = By + K * bc.dY;\t// y = y' + K*Vy\t//(Vx, Vy) vector director\n\t\t\t\t\t\t\taux.dSpeed = vPoints[b].dSpeed;\n\t\t\t\t\t\t\tnew_points.push_back(aux);\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t// Si no, establecemos una velocidad máxima\n\t\t\t\t\t\t\tvPoints[c].dSpeed = vPoints[b].dSpeed;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\n\t\t\t\t\tnew_points.push_back(vPoints[c]);\n\t\t\t\t\t//j++;\n\t\t\t\t}else{\t//Se queda como está\n\n\t\t\t\t\tnew_points.push_back(vPoints[c]);\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Borramos antiguos waypoints e insertamos los nuevos\n\t\t\tvPoints.clear();\n\n\t\t\t// BEZIER\n\t\t\tvPoints.push_back(new_points[0]);\n\t\t\tvPoints.push_back(new_points[1]);\n\t\t\tfor(i=2; i < new_points.size(); i++){\t// Segunda pasada, aproximamos los giros a curvas de Bezier\n\t\t\t\ta = i-2;\n\t\t\t\tb = i-1;\n\t\t\t\tc = i;\n\n\t\t\t\tAx = new_points[a].dX;\n\t\t\t\tAy = new_points[a].dY;\n\t\t\t\tBx = new_points[b].dX;\n\t\t\t\tBy = new_points[b].dY;\n\t\t\t\tCx = new_points[c].dX;\n\t\t\t\tCy = new_points[c].dY;\n\n\t\t\t\tab.dX = Bx - Ax;\n\t\t\t\tab.dY = By - Ay;\n\t\t\t\tmod_ab = sqrt(ab.dX * ab.dX + ab.dY * ab.dY);\n\n\t\t\t\tbc.dX = Cx - Bx;\n\t\t\t\tbc.dY = Cy - By;\n\t\t\t\tmod_bc = sqrt(bc.dX * bc.dX + bc.dY * bc.dY);\n\n\t\t\t\tdAngle= acos(dot2(ab,bc)/(mod_ab*mod_bc));\n\n\t\t\t\tif(fabs(dAngle) >= MIN_ANGLE_BEZIER){ // en caso del angulo que forman los segmentos sea menor, entonces generaremos puntos, siguiendo una curva de Bezier, para aproximar mjor la curva\n\t\t\t\t\t// siendo ba vector director de b->a y bc el vector director b->c\n\n\t\t\t\t\tWaypoint aux_wp;\n\t\t\t\t\tdouble t, aux_speed;\n\n\t\t\t\t\tA = new_points[a];\n\t\t\t\t\tB = new_points[b];\n\t\t\t\t\tC = new_points[c];\n\n\t\t\t\t\taux_speed = new_points[b].dSpeed; //takes speed of the waypoint in the middle\n\t\t\t\t\tvPoints.pop_back();\t\t\t// Eliminamos el waypoint del medio. El primer waypoint no se modifica\n\n\t\t\t\t\tfor(int j=1; j <= BEZIER_CONTROL_POINTS; j++) {\n\t\t\t\t\t\tt = (double) j * Kt;\n\t\t\t\t\t\taux_wp = PosOnQuadraticBezier(A, B, C,  t);\n\t\t\t\t\t\taux_wp.dSpeed = aux_speed;\n\t\t\t\t\t\tvPoints.push_back(aux_wp);\n\t\t\t\t\t//\tstd::cout << \"\\tWaypointRoute::Optimize: (Bezier) Waypoint,X= \" << aux_wp.dX << \" Y= \" << aux_wp.dY\n\t\t\t\t\t//\t\t\t\t<< \" size= \" << (int)points.size() << endl;\n\t\t\t\t\t}\n\t\t\t\t}else{\t//Se queda como está\n\n\t\t\t\t\tvPoints.push_back(new_points[c]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tiCurrentWaypoint = 0;\n\n\t\t//\tfor(int i = 0; i < new_points.size(); i++){\n\t\t//\tpoints.push_back(new_points[i]);\n\t\t//\t}\n\n\t\tpthread_mutex_unlock(&mutexPath);\n\n\t\tbOptimized  = true;\n\t\tnew_points.clear();\n\n\t\treturn OK;\n\t}\n\t//! Prints all the waypoints\n\tvoid Print(){\n\t\tcout << \"Path::Print: Printing all the waypoints...\" << endl;\n\t\tif(vPoints.size() > 0){\n\t\t\tfor(int i = 0; i < vPoints.size(); i++){\n\t\t\t\tcout << \"(\" << i << \")\\t \" << vPoints[i].dX << \", \" << vPoints[i].dY << endl;\n\t\t\t}\n\t\t}else\n\t\t\tcout << \"Path::Print: No waypoints...\" << endl;\n\t}\n\n};\n\n\nclass purepursuit_planner_node: public Component\n{\n\nprivate:\t\n\tros::NodeHandle node_handle_;\n\tros::NodeHandle private_node_handle_;\n\tdouble desired_freq_;\n\t//! constant for Purepursuit\n\tdouble Kr;\n\t\n\t//! Variable lookahead\n    double dLookAhead;\n     //! Object with the current path that the robot is following\n    Path pathCurrent;\n    //! Object with the path that is being filled\n    Path pathFilling;\n    //! Vector with next paths to follow\n    queue <Path> qPath;\n    //! current robot's position \n    geometry_msgs::Pose2D pose2d_robot;\n    //! current robot's odometry\n    nav_msgs::Odometry odometry_robot;\n    //! current robot's linear speed\n    double dLinearSpeed;\n    //! Lookahead bounds\n    double d_lookahear_min_, d_lookahear_max_;\n    //! Distance from the robot center to the wheel's center\n    double d_dist_wheel_to_center_;\n    //! Max allowed speed\n    double max_speed_;\n    //! Flag to enable/disable the motion\n    bool bEnabled;\n    //! Flag to cancel the following path\n    bool bCancel;\n    //! Mode for reading the position of the robot (\"ODOM\", \"MAP\")\n    std::string position_source_;\n    //! Mode in numeric format\n    unsigned int ui_position_source;\n    \n\t//////// ROS\n\t//! Publishes the status of the robot\n\tros::Publisher status_pub_;\n\t//! Publish to cmd vel (Ackermann)\n\t//! It will publish into command velocity (for the robot)\n\tros::Publisher vel_pub_;\n\t//! publish the transformation between map->base_link\n\tros::Publisher tranform_map_pub_;\n\t//! it subscribes to /odom\n\tros::Subscriber odom_sub_;\n\t//! Topic name to read the odometry from\n\tstd::string odom_topic_;\n\t//! Topic name to publish the vel & pos commands\n\tstd::string cmd_topic_vel_;\n\t// DIAGNOSTICS\n\t//! Diagnostic to control the frequency of the published odom\n\tdiagnostic_updater::TopicDiagnostic *updater_diagnostic_odom; \n\t//! General status diagnostic updater\n\tdiagnostic_updater::Updater updater_diagnostic;\t\n\t//! Diagnostics min & max odometry freq\n\tdouble min_odom_freq, max_odom_freq; \n\t//! Saves the time whenever receives a command msg and a transform between map and base link (if configured)\n\tros::Time last_command_time, last_map_time;\n\t// ACTIONLIB\n\tactionlib::SimpleActionServer<planner_msgs::GoToAction> action_server_goto;\n\tplanner_msgs::GoToFeedback goto_feedback;\n\tplanner_msgs::GoToResult goto_result;\n\tplanner_msgs::GoToGoal goto_goal;\n\t// TFs\n\ttf::TransformListener listener;\n\ttf::StampedTransform transform;\n\t// SERVICES\n\t//! service name to enable disable lasers\n\tstd::string name_sc_enable_front_laser_, name_sc_enable_back_laser_;\n\t//! Service to enable/disable front laser\n\tros::ServiceClient sc_enable_front_laser_;\n\t//! Service to enable/disable back laser\n\tros::ServiceClient sc_enable_back_laser_;\n\t\npublic:\n\t\n\t/*!\t\\fn summit_controller::purepursuit_planner()\n\t * \t\\brief Public constructor\n\t*/\n\tpurepursuit_planner_node(ros::NodeHandle h) : node_handle_(h), private_node_handle_(\"~\"),\n\tdesired_freq_(100.0),Component(desired_freq_),action_server_goto(node_handle_, ros::this_node::getName(), false)\n\t// boost::bind(&purepursuit_planner_node::executeCB, this, _1), false)\n\t{\n\t\tbRunning = false;\n\t\t\n\t\tROSSetup();\n\t\t\n\t\tdLookAhead = d_lookahear_min_;\n\t\tdLinearSpeed = 0;\n\t\tpose2d_robot.x = pose2d_robot.y = pose2d_robot.theta = 0.0;\n\t\tbEnabled = true;\n\t\tbCancel = false;\n\t\t\n\t\tsComponentName.assign(\"purepursuit_planner_node\");\n\t\tiState = INIT_STATE;\n\t}\n\n\t/*!\t\\fn purepursuit_planner::~purepursuit_planner()\n\t * \t\\brief Public destructor\n\t*/\n\t~purepursuit_planner_node(){\t\n\t\t\n\t}\n\n\t/*!\t\\fn oid ROSSetup()\n\t * \t\\brief Setups ROS' stuff\n\t*/\n\tvoid ROSSetup(){\n\t\tprivate_node_handle_.param<std::string>(\"odom_topic\", odom_topic_, \"/odom\");\n\t\tprivate_node_handle_.param(\"cmd_topic_vel\", cmd_topic_vel_, std::string(\"/agvs_controller/command\"));\n\t\tprivate_node_handle_.param(\"d_lookahear_min\", d_lookahear_min_, D_LOOKAHEAD_MIN);\n\t\tprivate_node_handle_.param(\"d_lookahear_max\", d_lookahear_max_, D_LOOKAHEAD_MAX);\n\t\tprivate_node_handle_.param(\"d_dist_wheel_to_center\", d_dist_wheel_to_center_, D_WHEEL_ROBOT_CENTER);\n\t\tprivate_node_handle_.param(\"max_speed\", max_speed_, MAX_SPEED);\n\t\tprivate_node_handle_.param(\"kr\", Kr, AGVS_DEFAULT_KR);\n\t\tprivate_node_handle_.param<std::string>(\"position_source\", position_source_, \"ODOM\");\n\t\tprivate_node_handle_.param(\"desired_freq\", desired_freq_, desired_freq_);\n\t\t//private_node_handle_.param<std::string>(\"name_sc_enable_frot_laser_\", name_sc_enable_front_laser_, \"/s3000_laser_front/enable_disable\");\n\t\t//private_node_handle_.param<std::string>(\"name_sc_enable_back_laser\", name_sc_enable_back_laser_, \"/s3000_laser_back/enable_disable\"\t);\n\t\t\n\t\n\t\t// From Component class\n\t\tthreadData.dDesiredHz = desired_freq_;\n\t\t\n\t\tif(position_source_ == \"MAP\")\n\t\t\tui_position_source = MAP_SOURCE;\n\t\telse \n\t\t\tui_position_source = ODOM_SOURCE;\n\t\t\t\n\t\t//\n\t\t// Publish through the node handle Twist type messages to the guardian_controller/command topic\n\t\tvel_pub_ = private_node_handle_.advertise<ackermann_msgs::AckermannDriveStamped>(cmd_topic_vel_, 1);\n\t\t//\n\t\tif(ui_position_source == MAP_SOURCE)\n\t\t\ttranform_map_pub_ = private_node_handle_.advertise<geometry_msgs::TransformStamped>(\"map_location\", 100);\n\t\t//status_pub_ = private_node_handle_.advertise<purepursuit_planner::ControllerStatus>(\"status\", 1);\n\t\todom_sub_ = private_node_handle_.subscribe<nav_msgs::Odometry>(odom_topic_, 1, &purepursuit_planner_node::OdomCallback, this ); \n\t\t//cmd_vel_sub_ = private_node_handle_.subscribe<purepursuit_planner::AckermannDriveStamped>(\"command\", 1, &purepursuit_planner_node::CmdVelCallback, this ); \n\t\t\n\t\t// Diagnostics\n\t\tupdater_diagnostic.setHardwareID(\"PurePursuit-Planner\");\n\t\t// Topics freq control \n\t\tmin_odom_freq = 5.0;\n\t\tmax_odom_freq = 100.0;\n\t\tupdater_diagnostic_odom = new diagnostic_updater::TopicDiagnostic(odom_topic_, updater_diagnostic,\n\t\t\t\t\t\t\tdiagnostic_updater::FrequencyStatusParam(&min_odom_freq, &max_odom_freq, 0.1, 10),\n\t\t\t\t\t\t\tdiagnostic_updater::TimeStampStatusParam(0.001, 0.1));\n\t\t\n\t\t\n\t\t// Action server \n\t\taction_server_goto.registerGoalCallback(boost::bind(&purepursuit_planner_node::GoalCB, this));\n        action_server_goto.registerPreemptCallback(boost::bind(&purepursuit_planner_node::PreemptCB, this));\n        \n        // Services\n        //sc_enable_front_laser_ = private_node_handle_.serviceClient<s3000_laser::enable_disable>(name_sc_enable_front_laser_);\n        //sc_enable_back_laser_ = private_node_handle_.serviceClient<s3000_laser::enable_disable>(name_sc_enable_back_laser_);\n        \n\t\tROS_INFO(\"%s::ROSSetup(): odom_topic = %s, command_topic_vel = %s, position source = %s, desired_hz=%.1lf, min_lookahead = %.1lf, max_lookahead = %.1lf, kr = %.2lf\", sComponentName.c_str(), odom_topic_.c_str(),\n\t\t cmd_topic_vel_.c_str(), position_source_.c_str(), desired_freq_, d_lookahear_min_, d_lookahear_max_, Kr);\n\t\t\n\t\t//ROS_INFO(\"%s::ROSSetup(): laser_topics: front -> %s, back -> %s\", sComponentName.c_str(), name_sc_enable_front_laser_.c_str(), name_sc_enable_back_laser_.c_str());\n\t\t\n\t\t//last_command_time = ros::Time::now();\n\t}\n\t\n\t\n\t/*!\t\\fn ReturnValue Setup()\n\t * \t\\brief \n\t*/\n\tReturnValue Setup(){\n\t\t// Checks if has been initialized\n\t\tif(bInitialized){\n\t\t\tROS_INFO(\"purepursuit_planner::Setup: Already initialized\");\t\n\t\t\treturn INITIALIZED;\n\t\t}\n\t\t\n\t\t// Starts action server \n\t\taction_server_goto.start();\n\t\t\n\t\tbInitialized = true;\n\t\t\n\t\treturn OK;\n\t}\n\t\n\n\t/*! \\fn int ReadAndPublish()\n\t * Reads data a publish several info into different topics\n\t*/\n\tint ReadAndPublish()\n\t{\n\t\t//updater_diagnostic_odom->tick(ros::Time::now());\n\t\tupdater_diagnostic.update();\n\t\treturn(0);\n\t}\n\t\n\t/*!\t\\fn ReturnValue Start()\n\t * \t\\brief Start Controller\n\t*/\n\tReturnValue Start(){\n\n\t\tif(bRunning){\n\t\t\tROS_INFO(\"agvs_controller::Start: the component's thread is already running\");\n\t\t\treturn THREAD_RUNNING;\n\t\t}\n\t\t\n\t\t\n\t\tbRunning = true;\n\t\treturn OK;\n\t}\n\n\t/*!\t\\fn ReturnValue Stop()\n\t * \t\\brief Stop Controller\n\t*/\n\tReturnValue Stop(){\n\t\t\n\t\tif(!bRunning){\n\t\t\tROS_INFO(\"agvs_controller::Stop: Thread not running\");\n\t\t\n\t\t\treturn THREAD_NOT_RUNNING;\n\t\t}\n\t\t\n\t\tbRunning = false;\n\t\t\n\t\treturn OK;\n\t}\n\n\t\n\t/*! \\fn void ControlThread()\n\t*/\n\tvoid ControlThread()\n\t{\n\t\tROS_INFO(\"purepursuit_planner::ControlThread(): Init\");\n\t\tros::Rate r(desired_freq_);  // 50.0 \n\n\t\t\t\n\t\t// while(node_handle_.ok()) {\n\t\twhile(ros::ok()) {\n\t\t\t\n\t\t\tswitch(iState){\n\t\t\t\t\n\t\t\t\tcase INIT_STATE:\n\t\t\t\t\tInitState();\n\t\t\t\tbreak;\n\t\t\t\t\n\t\t\t\tcase STANDBY_STATE:\n\t\t\t\t\tStandbyState();\n\t\t\t\tbreak;\n\t\t\t\t\n\t\t\t\tcase READY_STATE:\n\t\t\t\t\tReadyState();\n\t\t\t\tbreak;\n\t\t\t\t\n\t\t\t\tcase SHUTDOWN_STATE:\n\t\t\t\t\tShutDownState();\n\t\t\t\tbreak;\n\t\t\t\t\n\t\t\t\tcase EMERGENCY_STATE:\n\t\t\t\t\tEmergencyState();\n\t\t\t\tbreak;\n\t\t\t\t\n\t\t\t\tcase FAILURE_STATE:\n\t\t\t\t\tFailureState();\n\t\t\t\tbreak;\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tAllState();\n\t\t\t\n\t\t\tros::spinOnce();\n\t\t\tr.sleep();\n\t\t}\n\t\tShutDownState();\n\n\t\tROS_INFO(\"purepursuit_planner::ControlThread(): End\");\n\t\t\n\t}\n\t\n\t\n\t/*!\t\\fn void InitState()\n\t*/\n\tvoid InitState(){\n\t\t//ROS_INFO(\"purepursuit_planner::InitSate:\");\n\t\tif(bInitialized && bRunning){\n\t\t\tif(CheckOdomReceive() == 0)\n\t\t\t\tSwitchToState(STANDBY_STATE);\n\t\t}else{\n\t\t\tif(!bInitialized)\n\t\t\t\tSetup();\n\t\t\tif(!bRunning)\n\t\t\t\tStart();\n\t\t}\t\t\n\t\t\n\t}\n\t\n\t/*!\t\\fn void StandbyState()\n\t*/\n\tvoid StandbyState(){\n\t\tif(CheckOdomReceive() == -1)\n\t\t\tSwitchToState(EMERGENCY_STATE);\n\t\telse{\n\t\t\tif(bEnabled && !bCancel ){\n\t\t\t\t\n\t\t\t\tif(pathCurrent.Size() > 0 || MergePath() == OK){\n\t\t\t\t\tROS_INFO(\"%s::StandbyState: route available\", sComponentName.c_str());\n\t\t\t\t\tSwitchToState(READY_STATE);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\t\n\t\t}\n\t}\n\t\n\t/*!\t\\fn void ReadyState()\n\t*/\n\tvoid ReadyState(){\n\t\tif(CheckOdomReceive() == -1){\n\t\t\tSetRobotSpeed(0.0, 0.0);\n\t\t\tSwitchToState(EMERGENCY_STATE);\n\t\t\treturn;\n\t\t}\n\t\tif(!bEnabled){\n\t\t\tROS_INFO(\"%s::ReadyState: Motion is disabled\", sComponentName.c_str());\n\t\t\tSetRobotSpeed(0.0, 0.0);\n\t\t\tSwitchToState(STANDBY_STATE);\n\t\t\treturn;\n\t\t}\n\t\tif(bCancel){\n\t\t\tROS_INFO(\"%s::ReadyState: Cancel requested\", sComponentName.c_str());\n\t\t\tSetRobotSpeed(0.0, 0.0);\n\t\t\tSwitchToState(STANDBY_STATE);\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tint ret = PurePursuit();\n\t\t\n\t\tif(ret == -1){\n\t\t\tROS_ERROR(\"%s::ReadyState: Error on PurePursuit\", sComponentName.c_str());\n\t\t\tbCancel = true;\t//Activates the flag to cancel the mision\n\t\t\tSetRobotSpeed(0.0, 0.0);\n\t\t\tgoto_result.route_result = -1;\n\t\t\tgoto_feedback.percent_complete = 100.0;\t// Set the percent to 100% to complete the action\n\t\t\t\n\t\t\tSwitchToState(STANDBY_STATE);\n\t\t\t\n\t\t}else if(ret == 1){\n\t\t\tROS_INFO(\"%s::ReadyState: Route finished\", sComponentName.c_str());\n\t\t\tSetRobotSpeed(0.0, 0.0);\n\t\t\tgoto_result.route_result = 0;\n\t\t\tgoto_feedback.percent_complete = 100.0;\t// Set the percent to 100% to complete the action\n\t\t\tSwitchToState(STANDBY_STATE);\n\t\t}\n\t\t// We have to update the percent while the mision is ongoing\n\t\t\n\t}\n\t\n\t\n\t/*! \\fn void UpdateLookAhead()\n\t*   \\brief Updates (little by little) the variable lookahead depending of the current velocity\n\t*/\n\tvoid UpdateLookAhead(){\n\t\tdouble aux_lookahead = fabs(dLinearSpeed);\n\t\tdouble desired_lookahead = 0.0;\n\t\tdouble inc = 0.01;\t// incremento del lookahead\n\t\t\n\t\tif(aux_lookahead < d_lookahear_min_)\n\t\t\tdesired_lookahead = d_lookahear_min_;\n\t\telse if(aux_lookahead > d_lookahear_max_)\n\t\t\tdesired_lookahead = d_lookahear_max_;\n\t\telse{\n\t\t\tdesired_lookahead = aux_lookahead;\n\t\t}\n\n\t\tif((desired_lookahead - 0.001) > dLookAhead){\n\t\t\tdLookAhead+= inc;\n\t\t}else if((desired_lookahead + 0.001) < dLookAhead)\n\t\t\tdLookAhead-= inc;\n\t}\n\t\n\t\n\t/*! \\fn double Dot2( double x1, double y1, double x2, double y2)\n\t*   \\brief Obtains vector cross product w x v\n\t*   \\return w.x * v.x + w.y * w.y\n\t*/\n\tdouble Dot2( double x1, double y1, double x2, double y2) {\n\t\treturn (x1*x2 + y1*y2); // cross product\n\t}\n\n\n\t/*! \\fn double Dist(double x1, double y1, double x2, double y2)\n\t*   \\brief obtains distance between points p1 and p2\n\t*/\n\tdouble Dist(double x1, double y1, double x2, double y2) {\n\t\tdouble diff_x = (x2 - x1);\n\t\tdouble diff_y = (y2 - y1);\n\t\treturn sqrt( diff_x*diff_x + diff_y*diff_y );\n\t}\n\n\t/*! \\fn double DistP2S( Odometry current_position, Waypoint s0, Waypoint s1, Waypoint *Pb)\n\t *  \\brief obtains distance between the current position and segment s0->s1, and returns the point\n\t *\tReturn: the shortest distance from p to s (utm points) and the point\n\t *\tof the segment that gives the shortest distance\n\t*/\n\tdouble DistP2S( geometry_msgs::Pose2D current_position, Waypoint s0, Waypoint s1, Waypoint *Pb){\n\t\tdouble vx,vy, wx, wy;\n\n\t\tdouble c1, c2, di, b;\n\n\t\tvx = s1.dX - s0.dX;\n\t\tvy = s1.dY - s0.dY;\n\n\t\twx = current_position.x - s0.dX;\n\t\twy = current_position.y - s0.dY;\n\n\t\tc1 = Dot2( wx, wy, vx, vy );\n\n\t\tif ( c1 <= 0.0 ) {\n\t\t\tdi = Dist(current_position.x, current_position.y, s0.dX, s0.dY);\n\t\t\tPb->dX = s0.dX;\n\t\t\tPb->dY = s0.dY;\n\t\t\treturn di;\n\t\t}\n\n\t\tc2 = Dot2(vx,vy, vx, vy);\n\n\t\tif ( c2 <= c1 ) {\n\t\t\t//printf(\"kanban::DistP2S: c2 <= c1\\n\");\n\t\t\tdi = Dist(current_position.x, current_position.y, s1.dX, s1.dY);\n\t\t\tPb->dX = s1.dY;\n\t\t\tPb->dY = s1.dY;\n\t\t\treturn di;\n\t\t}\n\n\t\tb = c1 / c2;\n\t\tPb->dX = s0.dX + b * vx;\n\t\tPb->dY = s0.dY + b * vy;\n\n\t\tdi = Dist(current_position.x, current_position.y, Pb->dX, Pb->dY);\n\n\t\treturn di;\n\t}\n\t\n\n\t/*! \\fn ReturnValue PointDlh(geometry_msgs::Pose2D current_position, geometry_msgs::Pose2D *wp\t)\n\t *  \\brief Returns a point in a distance dlookahead on the path\n\t *  \\return OK\n\t *  \\return ERROR\n\t*/\n\tReturnValue PointDlh(geometry_msgs::Pose2D current_position, geometry_msgs::Pose2D *wp) {\n\t\tint i,j=0,k;\n\t\tdouble dmin, d, d1, d2, *d_seg;\n\t\tdouble t;\n\t\tgeometry_msgs::Pose2D target_position;\n\t\tWaypoint s0, s1, Pb, Pb1;\n\n\t\tint size = pathCurrent.NumOfWaypoints();\n\n\t\td_seg = new double[size]; //array con la distancia entre puntos consecutivos en la ruta\n\n\t\t// 1- Find closest segment\n\t\tdmin = 100000000;\n\n\t\tfor(i = pathCurrent.GetCurrentWaypointIndex(); i < (size -1); i++) {\n\t\t\tif( (pathCurrent.GetWaypoint(i, &s0) == OK) &&  (pathCurrent.GetWaypoint(i+1, &s1) == OK) ){\n\t\t\t\td_seg[i] = Dist(s0.dX, s0.dY, s1.dX, s1.dY);\n\n\t\t\t\td = DistP2S(current_position, s0, s1, &Pb1);\t\t// Pb1 closest point on segment\n\t\t\t\t\n\t\t\t\tif (d < dmin) {\n\t\t\t\t\tPb.dX = Pb1.dX;  // not the same as Pb=Pb1 !\n\t\t\t\t\tPb.dY = Pb1.dY;\n\t\t\t\t\tdmin = d;\n\t\t\t\t\tj = i;      // j : index to closest segment\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t//ROS_INFO(\"PointDlh. Distance to segment %d(%.2lf, %2.lf)->%d(%.2lf, %2.lf) = %.3lf,point (%.3lf, %.3lf) (DMIN = %.3lf)\", i,\n\t\t\t\t//s0.dX, s0.dY, i+1, s1.dX, s1.dY, d, Pb1.dX, Pb1.dY, dmin);\n\t\t\t}else{\n\t\t\t\tROS_ERROR(\"%s::PointDlh: Error Getting waypoints\", sComponentName.c_str());\n\t\t\t\treturn ERROR;\n\t\t\t}\n\t\t}\n\t\t\n\t\t//ROS_INFO(\"PointDlh:: Current waypoint index %d, next %d\",pathCurrent.GetCurrentWaypointIndex(), j);\n\t\t\t\t\n\t\t// Si cambiamos de waypoint\n\t\tif(pathCurrent.GetCurrentWaypointIndex() != j){\n\t\t\t// Sets the waypoint where the robot is at the moment\n\t\t\tif(pathCurrent.SetCurrentWaypoint(j) == ERROR){\n\t\t\t\tROS_ERROR(\"%s::PointDlh: Error setting current waypoint to %d\", sComponentName.c_str(), j);\n\t\t\t\treturn ERROR;\n\t\t\t}else{ // OK\n\t\t\t\t//ROS_INFO(\"PointDlh:: Changing waypoint to %d\", j);\n\t\t\t\tif(j == (size - 2)){\t// Penultimo waypoint\n\t\t\t\t\tWaypoint w_last, w_before_last;\n\t\t\t\t\tpathCurrent.GetCurrentWaypoint(&w_before_last);\t// Penultimo waypoint\n\t\t\t\t\tpathCurrent.BackWaypoint(&w_last);\t\t\t\t// Ultimo waypoint\n\t\t\t\t\t// Distancia maxima = distancia entre el punto actual y el penultimo punto + más la distancia entre los dos ultimos puntos + un valor constante\n\t\t\t\t\t//dMaxDistance = Dist(w_before_last.dX, w_before_last.dY, odomWhenLastWaypoint.px, odomWhenLastWaypoint.py) + Dist(w_last.dX, w_last.dY, w_before_last.dX, w_before_last.dY) + 0.1;\n\t\t\t\t\t//ROS_INFO(\"%s::PointDlh: Penultimo punto. Robot en (%.3lf, %.3lf, %.3lf). Distancia máxima a recorrer = %.3lf m \", sComponentName.c_str(), odomWhenLastWaypoint.px, odomWhenLastWaypoint.py, odomWhenLastWaypoint.pa, dMaxDistance);\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t\t// 2-Find segment ahead in dlookahead\n\t\tif( pathCurrent.GetNextWaypoint(&s1) != OK ){\n\t\t\tROS_ERROR(\"%s::PointDlh: Error getting next waypoint %d\", sComponentName.c_str(), j);\n\t\t\treturn ERROR;\n\t\t}\n\n\t\td1 = Dist(Pb.dX, Pb.dY, s1.dX, s1.dY);\n\n\t\tk = j;              // k : index of D_LOOKAHEAD point segment\n\t\twhile ( (d1 < dLookAhead) && ( (k+1) < (size - 1) ) ) {\n\t\t\t// searched point on this segment\n\t\t\tk = k + 1;\n\t\t\td1 = d1 + d_seg[k];\n\t\t}\n\n\t\t// 3- Obtain t parameter in the segment\n\t\td2 = ( d1 - dLookAhead );       // t parameter of segment k\n\t\tt = (d_seg[k] - d2) / d_seg[k]; // Pendiente avoid div/0. En teoria no puede producirse pq dos waypoints consecutivos serán diferentes\n\t\t\n\t\t// 4- Obtain point with t parameter\n\t\tif( (pathCurrent.GetWaypoint(k, &s0) == OK) && (pathCurrent.GetWaypoint(k + 1, &s1) == OK) ) {\n\n\t\t\ttarget_position.x = s0.dX + ( s1.dX - s0.dX )*t; \n\t\t\ttarget_position.y = s0.dY + ( s1.dY - s0.dY )*t;\n\t\t\tdouble angle_segment = atan2(s1.dY - s0.dY, s1.dX - s0.dX);\n\n\t\t\tradnorm(&angle_segment);\n\n\t\t\ttarget_position.theta = angle_segment;\n\t\t\t*wp = target_position;\n\t\t\t\n\t\t\tdelete d_seg;\n\n\t\t\treturn OK;\n\t\t}else{\n\t\t\tROS_ERROR(\"%s::PointDlh: Error getting next waypoint %d\", sComponentName.c_str(), j);\n\t\t\treturn ERROR;\n\t\t}\n\n\t}\n\n\n\t/*!\t\\fn int PurePursuit()\n\t * \\brief High level control loop in cartesian coordinates\n\t * obtains desiredSpeedMps and desiredPhiEffort according to\n\t * the robot location and the path defined by the waypoints\n\t *  \\return 0 if the iteration is OK\n\t *  \\return -1 if there's a problem\n\t *  \\return 1 if the route finishes\n\t */\n\tint PurePursuit(){\n\t\tdouble dx, dy, x1, y1;\n\t\tdouble curv, yaw;\n\t\tdouble wref;//, epw, uw;\n\t\t//double d = D_WHEEL_ROBOT_CENTER;   // Length in m (equiv to curv radius)\n\t\tdouble Kd = 1.1; // don't increase! 250\n\t\tWaypoint last_waypoint, next_waypoint;\n\t\t\n\t\tdouble dAuxSpeed = 0.0;\n\t\tdouble dth;\n\t\tdouble aux = 0.0, dDistCovered = 0.0;\n\t\tint ret = 0;\n\t\t\n\t\tgeometry_msgs::Pose2D current_position = this->pose2d_robot;\t\t\n\t\tgeometry_msgs::Pose2D next_position;\t\t\n\t\t\n\t\tif(pathCurrent.NumOfWaypoints() < 2)\t{\n\t\t\tROS_ERROR(\"%s::PurePursuit: not enought waypoints\", sComponentName.c_str());\t\t\t\n\t\t\treturn -1 ;\n\t\t}\n\n\t\tyaw = current_position.theta;\n\t\t\n\t\t//\n\t\t//Updates the lookahead depending of the current velocity\n\t\tUpdateLookAhead();\n\t\t\n\t\t//\n\t\t// Get next point in cartesian coordinates\n\t\tif(PointDlh(current_position, &next_position) != OK){\n\t\t\tROS_ERROR(\"%s::PurePursuit: Error getting next point in the route\", sComponentName.c_str());\n\t\t\treturn -1;\n\t\t}\n\t\t//\n\t\t// Curvature\n\t\tdx = current_position.x - next_position.x;\n\t\tdy = current_position.y - next_position.y;\n\t\tx1 = cos(yaw)*dx + sin(yaw)*dy; //Original\n\t\ty1 = -sin(yaw)*dx + cos(yaw)*dy;\n\n\t\tif ((x1*x1 + y1*y1) == 0)\n\t\t\tcurv = 0;\n\t\telse\n\t\t\tcurv = (2.0 / (x1*x1 + y1*y1)) * -y1;  \t\t//Original\n\n\t\t// Obtenemos alfa_ref en bucle abierto segun curvatura\n\t\twref = atan(d_dist_wheel_to_center_/(1.0/curv));\t\t\n\t\t\n\t\t\n\t\tif(pathCurrent.BackWaypoint(&last_waypoint) == ERROR){\n\t\t\tROS_ERROR(\"%s::PurePursuit: Error getting the last point in the path\", sComponentName.c_str());\n\t\t\treturn -1;\n\t\t}\n\n\t\tdouble dAuxDist = Dist(current_position.x, current_position.y, last_waypoint.dX, last_waypoint.dY);\t//dist(waypoints.back().pos, current_position);\n\n\t\tif(pathCurrent.GetNextWaypoint(&next_waypoint) == ERROR){\n\t\t\tROS_ERROR(\"%s::PurePursuit: Error getting next waypoint in the path\", sComponentName.c_str());\n\t\t\treturn -1;\n\t\t}\n\n\t\tdAuxSpeed = next_waypoint.dSpeed;\n\n\t\tif (dAuxSpeed >= 0)\n\t\t   dth = next_position.theta - current_position.theta;\n\t\telse\n\t\t   dth = -(next_position.theta + Pi - current_position.theta);\n\n\t\t// normalize\n\t\tradnorm(&dth);\n\t\tdouble aux_wref = wref;\n\t\twref += Kr * dth;\n\t\t\n\t\t//ROS_INFO(\"Purepursuit: current pos (%.2lf, %.2lf), next pos (%.2lf, %.2lf), lookahead %.2lf, yaw = %.3lf, curv = %.3lf, dth = %.3lf, wref = %.3lf(%.3lf), speed=%.3lf\", current_position.x, current_position.y, next_position.x, next_position.y, dLookAhead, yaw, curv, dth, wref, aux_wref, dAuxSpeed);\n\t\t//ROS_INFO(\"Purepursuit: yaw = %.3lf, curv = %.3lf, dth = %.3lf, wref = %.3lf\", yaw, curv, dth, wref);\n\t\t\n\t\t\n\t\t////////////////// Sets the speed depending of distance or speed restrictions /////////\n\t\t///////////////////////////////////////////////////////////////////////////////////////\n\t\t// Controls the max allowed using first restriction\n\t\tif(fabs(dAuxSpeed) > max_speed_){ \n\t\t\tif(dAuxSpeed > 0)\n\t\t\t\tdAuxSpeed = max_speed_;\n\t\t\telse\n\t\t\t\tdAuxSpeed = -max_speed_;\n\t\t}\n\t\t\t\n\t\t\n\t\tif(dAuxDist <= AGVS_SECOND_DECELERATION_DISTANCE)\t{\n\t\t\tif( (dAuxSpeed < 0.0) && (dAuxSpeed < -AGVS_SECOND_DECELERATION_MAXSPEED) )\n\t\t\t\tdAuxSpeed = -AGVS_SECOND_DECELERATION_MAXSPEED;\n\t\t\telse if( (dAuxSpeed > 0.0) && (dAuxSpeed > AGVS_SECOND_DECELERATION_MAXSPEED) )\n\t\t\t\tdAuxSpeed = AGVS_SECOND_DECELERATION_MAXSPEED;\n\n\t\t}else if(dAuxDist <= AGVS_FIRST_DECELERATION_DISTANCE) {\n\t\t\tif( (dAuxSpeed < 0.0) && (dAuxSpeed < AGVS_FIRST_DECELERATION_MAXSPEED))\n\t\t\t\tdAuxSpeed = -AGVS_FIRST_DECELERATION_MAXSPEED;\n\t\t\telse if( (dAuxSpeed > 0.0) && (dAuxSpeed > AGVS_FIRST_DECELERATION_MAXSPEED) )\n\t\t\t\tdAuxSpeed = AGVS_FIRST_DECELERATION_MAXSPEED;\n\t\t}\n\t\t\n\t\tSetRobotSpeed(dAuxSpeed, wref); \n\t\t\n\t\t//\n\t\t// When the robot is on the last waypoint, checks the distance to the end\n\t\tif( pathCurrent.GetCurrentWaypointIndex() >= (pathCurrent.NumOfWaypoints() - 2) ){\n\t\t\tret = -10;\n\t\t\tdouble ddist2 = Dist( current_position.x, current_position.y, last_waypoint.dX, last_waypoint.dY);\n\t\t\t// Distancia recorrida\n\t\t\t//dDistCovered = Dist( current_position.px, current_position.py, odomWhenLastWaypoint.px, odomWhenLastWaypoint.py);\n\t\t\tif (ddist2 < WAYPOINT_POP_DISTANCE_M) {\n\t\t\t\tSetRobotSpeed(0.0, 0.0);\n\t\t\t\t\n\t\t\t\tROS_INFO(\"%s::PurePursuit: target position reached (%lf, %lf, %lf). Ending current path\", sComponentName.c_str(), current_position.x, current_position.x, current_position.theta*180.0/Pi);\n\t\t\t\t\n\t\t\t\tpathCurrent.Clear();\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n\t\n\t/*!\t\\fn void CancelPath()\n\t * Removes all the waypoints introduced in the system\n\t*/\n\tvoid CancelPath(){\n\t\t\n\t\tpathCurrent.Clear();\t// Clears current path\n\t\tpathFilling.Clear();\t// Clears the auxiliary path\n\t\twhile(!qPath.empty())\t// Clears the queue of paths\n\t\t\tqPath.pop();\n\t\t\n\t\tbCancel = false;\n\t\t// Cancels current action\n\t\tROS_INFO(\"%s::CancelPath: action server preempted\", sComponentName.c_str());\n\t\taction_server_goto.setPreempted();\n\t}\n\t\n\t/*!\t\\fn void SetRobotSpeed()\n\t*/\n\tvoid SetRobotSpeed(double speed, double angle){\n\t\tackermann_msgs::AckermannDriveStamped ref_msg;\n\t\t\n\t\tref_msg.header.stamp = ros::Time::now();\n\t\tref_msg.drive.jerk = 0.0; \n\t\tref_msg.drive.acceleration = 0.0; \n\t\tref_msg.drive.steering_angle_velocity = 0.0;\n\t\tref_msg.drive.steering_angle = angle;\n\t\tref_msg.drive.speed = speed;\n\t\t\n\t\tvel_pub_.publish(ref_msg);\n\t}\n\t\n\t\n\t/*!\t\\fn void ShutDownState()\n\t*/\n\tvoid ShutDownState(){\n\t\tif(bRunning)\n\t\t\tStop();\n\t\telse if(bInitialized)\n\t\t\tShutDown();\n\t\t\t\n\t}\n\t\n\t/*!\t\\fn void EmergencyState()\n\t*/\n\tvoid EmergencyState(){\n\t\tif(CheckOdomReceive() == 0){\n\t\t\tSwitchToState(STANDBY_STATE);\n\t\t\treturn;\n\t\t}\n\t\t\n\t}\n\t\n\t/*!\t\\fn void FailureState()\n\t*/\n\tvoid FailureState(){\n\t\n\t}\n\t\n\t/*!\t\\fn void AllState()\n\t*/\n\tvoid AllState(){\n\t\t\n\t\t// Only if we use the map as source for positioning\n\t\tif(ui_position_source == MAP_SOURCE){\t\t\n\t\t\ttry{\n\t\t\t\tlistener.lookupTransform(\"/map\", \"/base_link\", ros::Time(0), transform);\n\t\t\t\tgeometry_msgs::TransformStamped msg;\n\t\t\t\ttf::transformStampedTFToMsg(transform, msg);\n\t\t\t\tpose2d_robot.x = msg.transform.translation.x;\n\t\t\t\tpose2d_robot.y = msg.transform.translation.y;\n\t\t\t\tpose2d_robot.theta = tf::getYaw(msg.transform.rotation);  \n\t\t\t\t// Safety check\n\t\t\t\tlast_map_time = ros::Time::now();\n\t\t\t\tmsg.header.stamp = last_map_time;\n\t\t\t\ttranform_map_pub_.publish(msg);\n\t\t\t}catch (tf::TransformException ex){\n\t\t\t\t//ROS_ERROR(\"%s::AllState: %s\", sComponentName.c_str(), ex.what());\n\t\t\t}\n\t\t}\n\t\t\n\t\tAnalyseCB();\t// Checks action server state\n\t\t\n\t\tReadAndPublish();\t// Reads and publish into configured topics\n\t\t\n\t\tif(bCancel)\t\t// Performs the cancel in case of required\n\t\t\tCancelPath();\n\t}\n\t\n\t/*! \\fn void OdomCallback(const nav_msgs::Odometry::ConstPtr& odom_value)\n\t\t* Receives odom values\n\t*/\n\tvoid OdomCallback(const nav_msgs::Odometry::ConstPtr& odom_value)\n\t{\n\t\t// Safety check\n\t\tlast_command_time = ros::Time::now();\n\t\t\n\t\t// If we want to use the odom source, subscribes to odom topic\n\t\tif(ui_position_source == ODOM_SOURCE){\t\t\n\t\t\t// converts the odom to pose 2d\n\t\t\tpose2d_robot.x = odom_value->pose.pose.position.x;\n\t\t\tpose2d_robot.y = odom_value->pose.pose.position.y;\n\t\t\tpose2d_robot.theta = tf::getYaw(odom_value->pose.pose.orientation);\n\t\t}\n\t\t\n\t\t// Copies the current odom\n\t\todometry_robot = *odom_value;\n\t\t// Gets the linear speed\n\t\tdLinearSpeed = odometry_robot.twist.twist.linear.x;\n\t}\n\t\n\t/*! \\fn int CheckOdomReceive()\n\t\t* Checks whether or not it's receiving odom values and/or map transformations\n\t\t* \\return 0 if OK\n\t\t* \\return -1 if ERROR\n\t*/\n\tint CheckOdomReceive()\n\t{\t\t\n\t\t// Safety check\n\t\tif((ros::Time::now() - last_command_time).toSec() > ODOM_TIMEOUT_ERROR)\n\t\t\treturn -1;\n\t\telse{\n\t\t\tif( ui_position_source == MAP_SOURCE and ((ros::Time::now() - last_map_time).toSec() > MAP_TIMEOUT_ERROR))\n\t\t\t\treturn -1;\n\t\t\telse return 0;\n\t\t}\n\t\t\n\t}\n\t\n\t\n\tvoid executeCB(const planner_msgs::GoToGoalConstPtr &goal)\n\t{\n\t\t\n\t}\n\t\n\t/*! \\fn int CalculateDirectionSpeed(Waypoint target_position)\n\t*\t\\brief Calcula el sentido de movimiento de una ruta, dependiendo de la posición inicial y el ángulo del robot\n\t*\t\\return 1 si el sentido es positivo\n\t*\t\\return -1 si el sentido es negativo\n\t*/\n\tint CalculateDirectionSpeed(Waypoint target_position){\n\t\tint ret = 1;\n\t\tdouble alpha = pose2d_robot.theta;\n\t\tdouble x =\tpose2d_robot.x, y = pose2d_robot.y;\n\t\tdouble ux, uy, vx, vy;\n\t\tdouble beta = 0.0;\n\t\tstatic int last_direction = 0;\n\t\tstatic double pi_medios = M_PI / 2.0, max_diff = 5.0 * M_PI / 180.0;\n\t\tint iCase = 0;\n\n\t\t//\n\t\t// si la posicion objetivo es la misma del robot, devolvemos 0\n\t\tif( (target_position.dX == x) && (target_position.dY == y) ){\n\t\t\treturn 0;\n\t\t}\n\t\t// Cálculo del vector director del robot respecto al sistema de coordenadas del robot\n\t\tux = cos(alpha);\n\t\tuy = sin(alpha);\n\t\t// Cálculo del vector entre el punto objetivo y el robot\n\t\tvx = target_position.dX - x;\n\t\tvy = target_position.dY - y;\n\n\t\t// Cálculo del ángulo entre el vector director y el vector al punto objetivo\n\t\tbeta = acos( (ux * vx + uy * vy) / ( sqrt(ux*ux + uy*uy) * sqrt(vx*vx + vy*vy) ) );\n\n\t\t// Devolvemos valor dependiendo del ángulo entre la orientación del robot y la posición objetivo (radianes)\n\t\t// Tendremos en cuenta el valor del sentido de avance de la última ruta.\n\t\tif(fabs(beta) <= pi_medios){\n\t\t\t// Calculo inicial de direccion\n\t\t\tif(last_direction == 0)\n\t\t\t\tret = 1;\n\t\t\telse {\n\t\t\t\tret = 1;\n\n\t\t\t\tif( fabs(beta - pi_medios) <= max_diff){\n\t\t\t\t\tif(last_direction != ret){\n\t\t\t\t\t\tiCase = 1;\n\t\t\t\t\t\tret = -1;\n\n\t\t\t\t\t}else {\n\t\t\t\t\t\tiCase = 2;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\t\t}else{\n\t\t\t// Calculo inicial de direccion\n\t\t\tif(last_direction == 0)\n\t\t\t\tret = -1;\n\t\t\telse {\n\t\t\t\tret = -1;\n\t\t\t\tif(fabs(beta - pi_medios) <= max_diff){\n\t\t\t\t\tif(last_direction != ret){\n\t\t\t\t\t\tret = 1;\n\t\t\t\t\t\tiCase = 3;\n\t\t\t\t\t}else{\n\t\t\t\t\t\tiCase = 4;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t\tROS_INFO(\"%s:CalculateDirectionSpeed:  case %d. Beta = %.2lf. Diff = %.2lf. Last direction = %d, new direction = %d\", sComponentName.c_str(),\n\t\t\t\t iCase, beta*180.0/M_PI, (beta - pi_medios)*180.0/M_PI, last_direction, ret);\n\n\t\tlast_direction = ret;\n\t\treturn ret;\n\t}\n\t\n\t/*! \\fn int CalculateDirectionSpeed(geometry_msgs::Pose2D target_position)\n\t*\t\\brief Calcula el sentido de movimiento de una ruta, dependiendo de la posición inicial y el ángulo del robot\n\t*\t\\return 1 si el sentido es positivo\n\t*\t\\return -1 si el sentido es negativo\n\t*/\n\tint CalculateDirectionSpeed(geometry_msgs::Pose2D target_position){\n\t\tint ret = 1;\n\t\tdouble alpha = pose2d_robot.theta;\n\t\tdouble x =\tpose2d_robot.x, y = pose2d_robot.y;\n\t\tdouble ux, uy, vx, vy;\n\t\tdouble beta = 0.0;\n\t\tstatic int last_direction = 0;\n\t\tstatic double pi_medios = M_PI / 2.0, max_diff = 5.0 * M_PI / 180.0;\n\t\tint iCase = 0;\n\n\t\t//\n\t\t// si la posicion objetivo es la misma del robot, devolvemos 0\n\t\tif( (target_position.x == x) && (target_position.y == y) ){\n\t\t\treturn 0;\n\t\t}\n\t\t// Cálculo del vector director del robot respecto al sistema de coordenadas del robot\n\t\tux = cos(alpha);\n\t\tuy = sin(alpha);\n\t\t// Cálculo del vector entre el punto objetivo y el robot\n\t\tvx = target_position.x - x;\n\t\tvy = target_position.y - y;\n\n\t\t// Cálculo del ángulo entre el vector director y el vector al punto objetivo\n\t\tbeta = acos( (ux * vx + uy * vy) / ( sqrt(ux*ux + uy*uy) * sqrt(vx*vx + vy*vy) ) );\n\n\t\t// Devolvemos valor dependiendo del ángulo entre la orientación del robot y la posición objetivo (radianes)\n\t\t// Tendremos en cuenta el valor del sentido de avance de la última ruta.\n\t\tif(fabs(beta) <= pi_medios){\n\t\t\t// Calculo inicial de direccion\n\t\t\tif(last_direction == 0)\n\t\t\t\tret = 1;\n\t\t\telse {\n\t\t\t\tret = 1;\n\n\t\t\t\tif( fabs(beta - pi_medios) <= max_diff){\n\t\t\t\t\tif(last_direction != ret){\n\t\t\t\t\t\tiCase = 1;\n\t\t\t\t\t\tret = -1;\n\n\t\t\t\t\t}else {\n\t\t\t\t\t\tiCase = 2;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\t\t}else{\n\t\t\t// Calculo inicial de direccion\n\t\t\tif(last_direction == 0)\n\t\t\t\tret = -1;\n\t\t\telse {\n\t\t\t\tret = -1;\n\t\t\t\tif(fabs(beta - pi_medios) <= max_diff){\n\t\t\t\t\tif(last_direction != ret){\n\t\t\t\t\t\tret = 1;\n\t\t\t\t\t\tiCase = 3;\n\t\t\t\t\t}else{\n\t\t\t\t\t\tiCase = 4;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t\tROS_INFO(\"%s:CalculateDirectionSpeed:  case %d. Beta = %.2lf. Diff = %.2lf. Last direction = %d, new direction = %d\", sComponentName.c_str(),\n\t\t\t\t iCase, beta*180.0/M_PI, (beta - pi_medios)*180.0/M_PI, last_direction, ret);\n\n\t\tlast_direction = ret;\n\t\treturn ret;\n\t}\n\t\n\t/*!\t\\fn ReturnValue Agvs::MergePath()\n\t * \t\\brief Merges the current path with the next path\n\t*/\n\tReturnValue MergePath(){\n\t\tWaypoint new_waypoint, wFirst, wLast;\n\t\tPath aux;\n\t\tint direction = 0;\n\t\t\n\t\tif(action_server_goto.isNewGoalAvailable()){\n\t\t\tgoto_goal.target = action_server_goto.acceptNewGoal()->target; // Reads points from action server\n\t\t\tif(goto_goal.target.size() > 0){\n\t\t\t\tif(goto_goal.target.size() > 1){\t// Tries to use the second point of the route\n\t\t\t\t\tdirection = CalculateDirectionSpeed(goto_goal.target[1].pose);\n\t\t\t\t}else{\n\t\t\t\t\tdirection = CalculateDirectionSpeed(goto_goal.target[0].pose);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif(direction == 1){\t// Uses only front laser\n\t\t\t\t\tSetLaserFront();\n\t\t\t\t}else{\t// Uses only back laser\n\t\t\t\t\tSetLaserBack();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor(int i = 0; i < goto_goal.target.size(); i++){\n\t\t\t\t\tROS_INFO(\"%s::MergePath: Point %d (%.3lf, %.3lf, %.3lf) speed = %.3lf\", sComponentName.c_str(), i,  goto_goal.target[i].pose.x, \n\t\t\t\t\tgoto_goal.target[i].pose.y, goto_goal.target[i].pose.theta, goto_goal.target[i].speed  );\n\t\t\t\t\t\n\t\t\t\t\tnew_waypoint.dX = goto_goal.target[i].pose.x;\n\t\t\t\t\tnew_waypoint.dY = goto_goal.target[i].pose.y;\n\t\t\t\t\tnew_waypoint.dA = goto_goal.target[i].pose.theta;\n\t\t\t\t\t// Depending on the calculated motion direction, applies positive or negative speed\n\t\t\t\t\tif(direction == 1){\n\t\t\t\t\t\tnew_waypoint.dSpeed = fabs(goto_goal.target[i].speed);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tnew_waypoint.dSpeed = -fabs(goto_goal.target[i].speed);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tpathFilling.AddWaypoint(new_waypoint);\t\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tif(pathFilling.Optimize(AGVS_TURN_RADIUS) != OK)\n\t\t\t\t\tROS_ERROR(\"%s::GoalCB: Error optimizing the path\", sComponentName.c_str());\n\n\t\t\t\t//pathFilling.Print();\n\t\t\t\t// Adds the new path to the queue\n\t\t\t\tqPath.push(pathFilling);\n\t\t\t\t// Clears temporary path object\n\t\t\t\tpathFilling.Clear();\n\t\t\t\t\n\t\t\t\tgoto_feedback.percent_complete = 0.0;\t// Inits the feedback percentage\n\t\t\t\t\n\t\t\t\t// Only if exists any path into the queue\n\t\t\t\tif(qPath.size() > 0){\t\t\t\t\t\n\t\t\t\t\taux = qPath.front();\n\t\t\t\t\taux.GetWaypoint(0, &wFirst);\n\t\t\t\t\taux.BackWaypoint(&wLast);\n\t\t\t\t\tROS_INFO(\"%s::MergePath: Adding new %d points from (%.2lf, %.2lf) to (%.2lf, %.2lf) and %d magnets\", sComponentName.c_str(), aux.NumOfWaypoints() ,wFirst.dX, wFirst.dY, wLast.dX, wLast.dY, aux.NumOfMagnets());\n\t\t\t\t\tROS_INFO(\"%s::MergePath: Current number of points = %d and magnets = %d\", sComponentName.c_str(), pathCurrent.NumOfWaypoints() , pathCurrent.NumOfMagnets());\n\t\t\t\t\t\n\t\t\t\t\t// Adds the first path in the queue to the current path\n\t\t\t\t\tpathCurrent+=qPath.front();\n\t\t\t\t\t\n\t\t\t\t\tROS_INFO(\"%s::MergePath: New number of points = %d and magnets = %d\", sComponentName.c_str(), pathCurrent.NumOfWaypoints() , pathCurrent.NumOfMagnets());\n\t\t\t\t\t// Pops the extracted path\n\t\t\t\t\tqPath.pop();\n\t\t\t\t\t\n\t\t\t\t\tgoto_goal.target.clear();\t// removes current goals\n\t\t\t\t\t\n\t\t\t\t\treturn OK;\n\t\t\t\t}\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t\treturn ERROR;\n\t}\n\t\n\t/*! \\fn void GoalCB()\n\t\t* Called when receiving a new target. (ActionServer)\n\t*/\n\tvoid GoalCB()\n\t{\t\n\t\t\n\t\t\n\t\t\t\t\n\t}\n\t\n\t/*! \\fn void PreemptCB()\n\t\t* Called to cancel or replace current mision. (ActionServer)\n\t*/\n\tvoid PreemptCB()\n\t{\t\n\t\tbCancel = true;\t\n\t}\n\t\n\t/*! \\fn void AnalyseCB()\n\t\t* Checks the status. (ActionServer)\n\t*/\n\tvoid AnalyseCB(){\n\t\tif (!action_server_goto.isActive()){\n\t\t\t//ROS_INFO(\"%s::AnalyseCB: Not active\", sComponentName.c_str());\n\t\t\treturn;\n\t\t}\n\t\t//goto_feedback.percent_complete+=1.0;\n\t\t\n\t\taction_server_goto.publishFeedback(goto_feedback);\n\t\t\n\t\tif(goto_feedback.percent_complete == 100.0){\n\t\t\t//action_server_goto.setSucceeded(goto_result);\n\t\t\taction_server_goto.setAborted(goto_result);\n\t\t\tROS_INFO(\"%s::AnalyseCB: Action finished\", sComponentName.c_str());\n\t\t}\n\t}\n\t\n\t/*! \\fn void SetLaserFront()\n\t\t* Disables laser back, enables laser front\n\t*/\n\tbool SetLaserFront(){\n\t\t/*s3000_laser::enable_disable srv;\n\t\t\n\t\tsrv.request.value = false;\n\t\tsc_enable_back_laser_.call(srv);\n\t\tROS_INFO(\"%s::SetLaserFront: Setting laser back to false, ret = %d\", sComponentName.c_str(), srv.response.ret);\n\t\t\n\t\tsrv.request.value = true;\n\t\tsc_enable_front_laser_.call(srv);\n\t\tROS_INFO(\"%s::SetLaserFront: Setting laser front to true, ret = %d\", sComponentName.c_str(), srv.response.ret);*/\n\t}\n\t\n\t/*! \\fn void SetLaserBack()\n\t\t* Disables laser front, enables laser back\n\t*/\n\tbool SetLaserBack(){\n\t\t/*s3000_laser::enable_disable srv;\n\t\t\n\t\tsrv.request.value = false;\n\t\tsc_enable_front_laser_.call(srv);\n\t\tROS_INFO(\"%s::SetLaserBack: Setting laser front to false, ret = %d\", sComponentName.c_str(), srv.response.ret);\n\t\t\n\t\tsrv.request.value = true;\n\t\tsc_enable_back_laser_.call(srv);\n\t\tROS_INFO(\"%s::SetLaserBack: Setting laser back to true, ret = %d\", sComponentName.c_str(), srv.response.ret);*/\n\t}\n\n}; // class purepursuit_planner_node\n\n// MAIN\nint main(int argc, char** argv)\n{\n    ros::init(argc, argv, \"purepursuit_planner_node\");\n\t\n\tros::NodeHandle n;\t\t\n  \tpurepursuit_planner_node planner(n);\n\t\n\tplanner.ControlThread();\n\n\treturn (0);\n}\n// EOF\n"
  }
]