// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: message.proto

#include "message.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
extern PROTOBUF_INTERNAL_EXPORT_message_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Action_message_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_message_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Pose2d_message_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_message_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SpeedLimit_message_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_message_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Trajectory_message_2eproto;
namespace NavMessage {
class AGVStatuDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AGVStatu> _instance;
} _AGVStatu_default_instance_;
class SpeedDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Speed> _instance;
} _Speed_default_instance_;
class SpeedLimitDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SpeedLimit> _instance;
} _SpeedLimit_default_instance_;
class Pose2dDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Pose2d> _instance;
} _Pose2d_default_instance_;
class TrajectoryDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Trajectory> _instance;
} _Trajectory_default_instance_;
class ActionDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Action> _instance;
} _Action_default_instance_;
class NavCmdDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<NavCmd> _instance;
} _NavCmd_default_instance_;
class NavStatuDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<NavStatu> _instance;
} _NavStatu_default_instance_;
}  // namespace NavMessage
static void InitDefaultsscc_info_AGVStatu_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_AGVStatu_default_instance_;
    new (ptr) ::NavMessage::AGVStatu();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::AGVStatu::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AGVStatu_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_AGVStatu_message_2eproto}, {}};

static void InitDefaultsscc_info_Action_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_Action_default_instance_;
    new (ptr) ::NavMessage::Action();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::Action::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Action_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_Action_message_2eproto}, {
      &scc_info_Pose2d_message_2eproto.base,
      &scc_info_SpeedLimit_message_2eproto.base,}};

static void InitDefaultsscc_info_NavCmd_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_NavCmd_default_instance_;
    new (ptr) ::NavMessage::NavCmd();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::NavCmd::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_NavCmd_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_NavCmd_message_2eproto}, {
      &scc_info_Action_message_2eproto.base,}};

static void InitDefaultsscc_info_NavStatu_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_NavStatu_default_instance_;
    new (ptr) ::NavMessage::NavStatu();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::NavStatu::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_NavStatu_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_NavStatu_message_2eproto}, {
      &scc_info_Action_message_2eproto.base,
      &scc_info_Trajectory_message_2eproto.base,}};

static void InitDefaultsscc_info_Pose2d_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_Pose2d_default_instance_;
    new (ptr) ::NavMessage::Pose2d();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::Pose2d::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Pose2d_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_Pose2d_message_2eproto}, {}};

static void InitDefaultsscc_info_Speed_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_Speed_default_instance_;
    new (ptr) ::NavMessage::Speed();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::Speed::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Speed_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_Speed_message_2eproto}, {}};

static void InitDefaultsscc_info_SpeedLimit_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_SpeedLimit_default_instance_;
    new (ptr) ::NavMessage::SpeedLimit();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::SpeedLimit::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SpeedLimit_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_SpeedLimit_message_2eproto}, {}};

static void InitDefaultsscc_info_Trajectory_message_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::NavMessage::_Trajectory_default_instance_;
    new (ptr) ::NavMessage::Trajectory();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::NavMessage::Trajectory::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Trajectory_message_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_Trajectory_message_2eproto}, {
      &scc_info_Pose2d_message_2eproto.base,}};

static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_message_2eproto[8];
static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_message_2eproto = nullptr;
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_message_2eproto = nullptr;

const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_message_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::AGVStatu, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::AGVStatu, x_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::AGVStatu, y_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::AGVStatu, theta_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::AGVStatu, v_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::AGVStatu, vth_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::Speed, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::Speed, h_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::Speed, t_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::Speed, v_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::Speed, w_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::Speed, end_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::SpeedLimit, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::SpeedLimit, min_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::SpeedLimit, max_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::Pose2d, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::Pose2d, x_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::Pose2d, y_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::Pose2d, theta_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::Trajectory, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::Trajectory, poses_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::Action, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::Action, type_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::Action, begin_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::Action, target_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::Action, target_diff_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::Action, velocity_limit_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::Action, angular_limit_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::Action, horize_limit_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavCmd, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavCmd, action_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavCmd, key_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavCmd, actions_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavStatu, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavStatu, statu_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavStatu, key_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavStatu, unfinished_actions_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavStatu, selected_traj_),
  PROTOBUF_FIELD_OFFSET(::NavMessage::NavStatu, predict_traj_),
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::NavMessage::AGVStatu)},
  { 10, -1, sizeof(::NavMessage::Speed)},
  { 20, -1, sizeof(::NavMessage::SpeedLimit)},
  { 27, -1, sizeof(::NavMessage::Pose2d)},
  { 35, -1, sizeof(::NavMessage::Trajectory)},
  { 41, -1, sizeof(::NavMessage::Action)},
  { 53, -1, sizeof(::NavMessage::NavCmd)},
  { 61, -1, sizeof(::NavMessage::NavStatu)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_AGVStatu_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_Speed_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_SpeedLimit_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_Pose2d_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_Trajectory_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_Action_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_NavCmd_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::NavMessage::_NavStatu_default_instance_),
};

const char descriptor_table_protodef_message_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\rmessage.proto\022\nNavMessage\"G\n\010AGVStatu\022"
  "\t\n\001x\030\001 \001(\002\022\t\n\001y\030\002 \001(\002\022\r\n\005theta\030\003 \001(\002\022\t\n\001"
  "v\030\004 \001(\002\022\013\n\003vth\030\005 \001(\002\"@\n\005Speed\022\t\n\001H\030\001 \001(\005"
  "\022\t\n\001T\030\002 \001(\005\022\t\n\001V\030\003 \001(\002\022\t\n\001W\030\004 \001(\002\022\013\n\003end"
  "\030\005 \001(\005\"&\n\nSpeedLimit\022\013\n\003min\030\001 \001(\002\022\013\n\003max"
  "\030\002 \001(\002\"-\n\006Pose2d\022\t\n\001x\030\001 \001(\002\022\t\n\001y\030\002 \001(\002\022\r"
  "\n\005theta\030\003 \001(\002\"/\n\nTrajectory\022!\n\005poses\030\001 \003"
  "(\0132\022.NavMessage.Pose2d\"\223\002\n\006Action\022\014\n\004typ"
  "e\030\001 \001(\005\022!\n\005begin\030\002 \001(\0132\022.NavMessage.Pose"
  "2d\022\"\n\006target\030\003 \001(\0132\022.NavMessage.Pose2d\022\'"
  "\n\013target_diff\030\004 \001(\0132\022.NavMessage.Pose2d\022"
  ".\n\016velocity_limit\030\005 \001(\0132\026.NavMessage.Spe"
  "edLimit\022-\n\rangular_limit\030\006 \001(\0132\026.NavMess"
  "age.SpeedLimit\022,\n\014horize_limit\030\007 \001(\0132\026.N"
  "avMessage.SpeedLimit\"J\n\006NavCmd\022\016\n\006action"
  "\030\001 \001(\005\022\013\n\003key\030\002 \001(\t\022#\n\007actions\030\003 \003(\0132\022.N"
  "avMessage.Action\"\263\001\n\010NavStatu\022\r\n\005statu\030\001"
  " \001(\010\022\013\n\003key\030\002 \001(\t\022.\n\022unfinished_actions\030"
  "\003 \003(\0132\022.NavMessage.Action\022-\n\rselected_tr"
  "aj\030\004 \001(\0132\026.NavMessage.Trajectory\022,\n\014pred"
  "ict_traj\030\005 \001(\0132\026.NavMessage.Trajectoryb\006"
  "proto3"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_message_2eproto_deps[1] = {
};
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_message_2eproto_sccs[8] = {
  &scc_info_AGVStatu_message_2eproto.base,
  &scc_info_Action_message_2eproto.base,
  &scc_info_NavCmd_message_2eproto.base,
  &scc_info_NavStatu_message_2eproto.base,
  &scc_info_Pose2d_message_2eproto.base,
  &scc_info_Speed_message_2eproto.base,
  &scc_info_SpeedLimit_message_2eproto.base,
  &scc_info_Trajectory_message_2eproto.base,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_message_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_message_2eproto = {
  false, false, descriptor_table_protodef_message_2eproto, "message.proto", 846,
  &descriptor_table_message_2eproto_once, descriptor_table_message_2eproto_sccs, descriptor_table_message_2eproto_deps, 8, 0,
  schemas, file_default_instances, TableStruct_message_2eproto::offsets,
  file_level_metadata_message_2eproto, 8, file_level_enum_descriptors_message_2eproto, file_level_service_descriptors_message_2eproto,
};

// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_message_2eproto = (static_cast<void>(::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_message_2eproto)), true);
namespace NavMessage {

// ===================================================================

void AGVStatu::InitAsDefaultInstance() {
}
class AGVStatu::_Internal {
 public:
};

AGVStatu::AGVStatu(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.AGVStatu)
}
AGVStatu::AGVStatu(const AGVStatu& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&x_, &from.x_,
    static_cast<size_t>(reinterpret_cast<char*>(&vth_) -
    reinterpret_cast<char*>(&x_)) + sizeof(vth_));
  // @@protoc_insertion_point(copy_constructor:NavMessage.AGVStatu)
}

void AGVStatu::SharedCtor() {
  ::memset(&x_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&vth_) -
      reinterpret_cast<char*>(&x_)) + sizeof(vth_));
}

AGVStatu::~AGVStatu() {
  // @@protoc_insertion_point(destructor:NavMessage.AGVStatu)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AGVStatu::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void AGVStatu::ArenaDtor(void* object) {
  AGVStatu* _this = reinterpret_cast< AGVStatu* >(object);
  (void)_this;
}
void AGVStatu::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AGVStatu::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AGVStatu& AGVStatu::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AGVStatu_message_2eproto.base);
  return *internal_default_instance();
}


void AGVStatu::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.AGVStatu)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&x_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&vth_) -
      reinterpret_cast<char*>(&x_)) + sizeof(vth_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AGVStatu::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float x = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float y = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float theta = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          theta_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float v = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          v_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float vth = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 45)) {
          vth_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* AGVStatu::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.AGVStatu)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float x = 1;
  if (!(this->x() <= 0 && this->x() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_x(), target);
  }

  // float y = 2;
  if (!(this->y() <= 0 && this->y() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_y(), target);
  }

  // float theta = 3;
  if (!(this->theta() <= 0 && this->theta() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_theta(), target);
  }

  // float v = 4;
  if (!(this->v() <= 0 && this->v() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_v(), target);
  }

  // float vth = 5;
  if (!(this->vth() <= 0 && this->vth() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(5, this->_internal_vth(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:NavMessage.AGVStatu)
  return target;
}

size_t AGVStatu::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:NavMessage.AGVStatu)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float x = 1;
  if (!(this->x() <= 0 && this->x() >= 0)) {
    total_size += 1 + 4;
  }

  // float y = 2;
  if (!(this->y() <= 0 && this->y() >= 0)) {
    total_size += 1 + 4;
  }

  // float theta = 3;
  if (!(this->theta() <= 0 && this->theta() >= 0)) {
    total_size += 1 + 4;
  }

  // float v = 4;
  if (!(this->v() <= 0 && this->v() >= 0)) {
    total_size += 1 + 4;
  }

  // float vth = 5;
  if (!(this->vth() <= 0 && this->vth() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void AGVStatu::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.AGVStatu)
  GOOGLE_DCHECK_NE(&from, this);
  const AGVStatu* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AGVStatu>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.AGVStatu)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.AGVStatu)
    MergeFrom(*source);
  }
}

void AGVStatu::MergeFrom(const AGVStatu& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.AGVStatu)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (!(from.x() <= 0 && from.x() >= 0)) {
    _internal_set_x(from._internal_x());
  }
  if (!(from.y() <= 0 && from.y() >= 0)) {
    _internal_set_y(from._internal_y());
  }
  if (!(from.theta() <= 0 && from.theta() >= 0)) {
    _internal_set_theta(from._internal_theta());
  }
  if (!(from.v() <= 0 && from.v() >= 0)) {
    _internal_set_v(from._internal_v());
  }
  if (!(from.vth() <= 0 && from.vth() >= 0)) {
    _internal_set_vth(from._internal_vth());
  }
}

void AGVStatu::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.AGVStatu)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AGVStatu::CopyFrom(const AGVStatu& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:NavMessage.AGVStatu)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AGVStatu::IsInitialized() const {
  return true;
}

void AGVStatu::InternalSwap(AGVStatu* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AGVStatu, vth_)
      + sizeof(AGVStatu::vth_)
      - PROTOBUF_FIELD_OFFSET(AGVStatu, x_)>(
          reinterpret_cast<char*>(&x_),
          reinterpret_cast<char*>(&other->x_));
}

::PROTOBUF_NAMESPACE_ID::Metadata AGVStatu::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Speed::InitAsDefaultInstance() {
}
class Speed::_Internal {
 public:
};

Speed::Speed(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.Speed)
}
Speed::Speed(const Speed& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&h_, &from.h_,
    static_cast<size_t>(reinterpret_cast<char*>(&end_) -
    reinterpret_cast<char*>(&h_)) + sizeof(end_));
  // @@protoc_insertion_point(copy_constructor:NavMessage.Speed)
}

void Speed::SharedCtor() {
  ::memset(&h_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&end_) -
      reinterpret_cast<char*>(&h_)) + sizeof(end_));
}

Speed::~Speed() {
  // @@protoc_insertion_point(destructor:NavMessage.Speed)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void Speed::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void Speed::ArenaDtor(void* object) {
  Speed* _this = reinterpret_cast< Speed* >(object);
  (void)_this;
}
void Speed::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Speed::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Speed& Speed::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Speed_message_2eproto.base);
  return *internal_default_instance();
}


void Speed::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.Speed)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&h_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&end_) -
      reinterpret_cast<char*>(&h_)) + sizeof(end_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Speed::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 H = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          h_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 T = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          t_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float V = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          v_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float W = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          w_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 end = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          end_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* Speed::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.Speed)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 H = 1;
  if (this->h() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_h(), target);
  }

  // int32 T = 2;
  if (this->t() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_t(), target);
  }

  // float V = 3;
  if (!(this->v() <= 0 && this->v() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_v(), target);
  }

  // float W = 4;
  if (!(this->w() <= 0 && this->w() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_w(), target);
  }

  // int32 end = 5;
  if (this->end() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_end(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:NavMessage.Speed)
  return target;
}

size_t Speed::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:NavMessage.Speed)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 H = 1;
  if (this->h() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_h());
  }

  // int32 T = 2;
  if (this->t() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_t());
  }

  // float V = 3;
  if (!(this->v() <= 0 && this->v() >= 0)) {
    total_size += 1 + 4;
  }

  // float W = 4;
  if (!(this->w() <= 0 && this->w() >= 0)) {
    total_size += 1 + 4;
  }

  // int32 end = 5;
  if (this->end() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_end());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Speed::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.Speed)
  GOOGLE_DCHECK_NE(&from, this);
  const Speed* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Speed>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.Speed)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.Speed)
    MergeFrom(*source);
  }
}

void Speed::MergeFrom(const Speed& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.Speed)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.h() != 0) {
    _internal_set_h(from._internal_h());
  }
  if (from.t() != 0) {
    _internal_set_t(from._internal_t());
  }
  if (!(from.v() <= 0 && from.v() >= 0)) {
    _internal_set_v(from._internal_v());
  }
  if (!(from.w() <= 0 && from.w() >= 0)) {
    _internal_set_w(from._internal_w());
  }
  if (from.end() != 0) {
    _internal_set_end(from._internal_end());
  }
}

void Speed::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.Speed)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Speed::CopyFrom(const Speed& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:NavMessage.Speed)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Speed::IsInitialized() const {
  return true;
}

void Speed::InternalSwap(Speed* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Speed, end_)
      + sizeof(Speed::end_)
      - PROTOBUF_FIELD_OFFSET(Speed, h_)>(
          reinterpret_cast<char*>(&h_),
          reinterpret_cast<char*>(&other->h_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Speed::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void SpeedLimit::InitAsDefaultInstance() {
}
class SpeedLimit::_Internal {
 public:
};

SpeedLimit::SpeedLimit(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.SpeedLimit)
}
SpeedLimit::SpeedLimit(const SpeedLimit& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&min_, &from.min_,
    static_cast<size_t>(reinterpret_cast<char*>(&max_) -
    reinterpret_cast<char*>(&min_)) + sizeof(max_));
  // @@protoc_insertion_point(copy_constructor:NavMessage.SpeedLimit)
}

void SpeedLimit::SharedCtor() {
  ::memset(&min_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&max_) -
      reinterpret_cast<char*>(&min_)) + sizeof(max_));
}

SpeedLimit::~SpeedLimit() {
  // @@protoc_insertion_point(destructor:NavMessage.SpeedLimit)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SpeedLimit::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void SpeedLimit::ArenaDtor(void* object) {
  SpeedLimit* _this = reinterpret_cast< SpeedLimit* >(object);
  (void)_this;
}
void SpeedLimit::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SpeedLimit::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SpeedLimit& SpeedLimit::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SpeedLimit_message_2eproto.base);
  return *internal_default_instance();
}


void SpeedLimit::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.SpeedLimit)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&min_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&max_) -
      reinterpret_cast<char*>(&min_)) + sizeof(max_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SpeedLimit::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float min = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          min_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float max = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          max_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* SpeedLimit::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.SpeedLimit)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float min = 1;
  if (!(this->min() <= 0 && this->min() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_min(), target);
  }

  // float max = 2;
  if (!(this->max() <= 0 && this->max() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_max(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:NavMessage.SpeedLimit)
  return target;
}

size_t SpeedLimit::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:NavMessage.SpeedLimit)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float min = 1;
  if (!(this->min() <= 0 && this->min() >= 0)) {
    total_size += 1 + 4;
  }

  // float max = 2;
  if (!(this->max() <= 0 && this->max() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void SpeedLimit::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.SpeedLimit)
  GOOGLE_DCHECK_NE(&from, this);
  const SpeedLimit* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SpeedLimit>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.SpeedLimit)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.SpeedLimit)
    MergeFrom(*source);
  }
}

void SpeedLimit::MergeFrom(const SpeedLimit& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.SpeedLimit)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (!(from.min() <= 0 && from.min() >= 0)) {
    _internal_set_min(from._internal_min());
  }
  if (!(from.max() <= 0 && from.max() >= 0)) {
    _internal_set_max(from._internal_max());
  }
}

void SpeedLimit::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.SpeedLimit)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SpeedLimit::CopyFrom(const SpeedLimit& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:NavMessage.SpeedLimit)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SpeedLimit::IsInitialized() const {
  return true;
}

void SpeedLimit::InternalSwap(SpeedLimit* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SpeedLimit, max_)
      + sizeof(SpeedLimit::max_)
      - PROTOBUF_FIELD_OFFSET(SpeedLimit, min_)>(
          reinterpret_cast<char*>(&min_),
          reinterpret_cast<char*>(&other->min_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SpeedLimit::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Pose2d::InitAsDefaultInstance() {
}
class Pose2d::_Internal {
 public:
};

Pose2d::Pose2d(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.Pose2d)
}
Pose2d::Pose2d(const Pose2d& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&x_, &from.x_,
    static_cast<size_t>(reinterpret_cast<char*>(&theta_) -
    reinterpret_cast<char*>(&x_)) + sizeof(theta_));
  // @@protoc_insertion_point(copy_constructor:NavMessage.Pose2d)
}

void Pose2d::SharedCtor() {
  ::memset(&x_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&theta_) -
      reinterpret_cast<char*>(&x_)) + sizeof(theta_));
}

Pose2d::~Pose2d() {
  // @@protoc_insertion_point(destructor:NavMessage.Pose2d)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void Pose2d::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void Pose2d::ArenaDtor(void* object) {
  Pose2d* _this = reinterpret_cast< Pose2d* >(object);
  (void)_this;
}
void Pose2d::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Pose2d::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Pose2d& Pose2d::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Pose2d_message_2eproto.base);
  return *internal_default_instance();
}


void Pose2d::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.Pose2d)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&x_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&theta_) -
      reinterpret_cast<char*>(&x_)) + sizeof(theta_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Pose2d::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float x = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float y = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float theta = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          theta_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* Pose2d::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.Pose2d)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float x = 1;
  if (!(this->x() <= 0 && this->x() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_x(), target);
  }

  // float y = 2;
  if (!(this->y() <= 0 && this->y() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_y(), target);
  }

  // float theta = 3;
  if (!(this->theta() <= 0 && this->theta() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_theta(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:NavMessage.Pose2d)
  return target;
}

size_t Pose2d::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:NavMessage.Pose2d)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float x = 1;
  if (!(this->x() <= 0 && this->x() >= 0)) {
    total_size += 1 + 4;
  }

  // float y = 2;
  if (!(this->y() <= 0 && this->y() >= 0)) {
    total_size += 1 + 4;
  }

  // float theta = 3;
  if (!(this->theta() <= 0 && this->theta() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Pose2d::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.Pose2d)
  GOOGLE_DCHECK_NE(&from, this);
  const Pose2d* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Pose2d>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.Pose2d)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.Pose2d)
    MergeFrom(*source);
  }
}

void Pose2d::MergeFrom(const Pose2d& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.Pose2d)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (!(from.x() <= 0 && from.x() >= 0)) {
    _internal_set_x(from._internal_x());
  }
  if (!(from.y() <= 0 && from.y() >= 0)) {
    _internal_set_y(from._internal_y());
  }
  if (!(from.theta() <= 0 && from.theta() >= 0)) {
    _internal_set_theta(from._internal_theta());
  }
}

void Pose2d::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.Pose2d)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Pose2d::CopyFrom(const Pose2d& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:NavMessage.Pose2d)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Pose2d::IsInitialized() const {
  return true;
}

void Pose2d::InternalSwap(Pose2d* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Pose2d, theta_)
      + sizeof(Pose2d::theta_)
      - PROTOBUF_FIELD_OFFSET(Pose2d, x_)>(
          reinterpret_cast<char*>(&x_),
          reinterpret_cast<char*>(&other->x_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Pose2d::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Trajectory::InitAsDefaultInstance() {
}
class Trajectory::_Internal {
 public:
};

Trajectory::Trajectory(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  poses_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.Trajectory)
}
Trajectory::Trajectory(const Trajectory& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      poses_(from.poses_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:NavMessage.Trajectory)
}

void Trajectory::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Trajectory_message_2eproto.base);
}

Trajectory::~Trajectory() {
  // @@protoc_insertion_point(destructor:NavMessage.Trajectory)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void Trajectory::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void Trajectory::ArenaDtor(void* object) {
  Trajectory* _this = reinterpret_cast< Trajectory* >(object);
  (void)_this;
}
void Trajectory::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Trajectory::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Trajectory& Trajectory::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Trajectory_message_2eproto.base);
  return *internal_default_instance();
}


void Trajectory::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.Trajectory)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  poses_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Trajectory::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // repeated .NavMessage.Pose2d poses = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_poses(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* Trajectory::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.Trajectory)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .NavMessage.Pose2d poses = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_poses_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_poses(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:NavMessage.Trajectory)
  return target;
}

size_t Trajectory::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:NavMessage.Trajectory)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .NavMessage.Pose2d poses = 1;
  total_size += 1UL * this->_internal_poses_size();
  for (const auto& msg : this->poses_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Trajectory::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.Trajectory)
  GOOGLE_DCHECK_NE(&from, this);
  const Trajectory* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Trajectory>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.Trajectory)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.Trajectory)
    MergeFrom(*source);
  }
}

void Trajectory::MergeFrom(const Trajectory& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.Trajectory)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  poses_.MergeFrom(from.poses_);
}

void Trajectory::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.Trajectory)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Trajectory::CopyFrom(const Trajectory& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:NavMessage.Trajectory)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Trajectory::IsInitialized() const {
  return true;
}

void Trajectory::InternalSwap(Trajectory* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  poses_.InternalSwap(&other->poses_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Trajectory::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Action::InitAsDefaultInstance() {
  ::NavMessage::_Action_default_instance_._instance.get_mutable()->begin_ = const_cast< ::NavMessage::Pose2d*>(
      ::NavMessage::Pose2d::internal_default_instance());
  ::NavMessage::_Action_default_instance_._instance.get_mutable()->target_ = const_cast< ::NavMessage::Pose2d*>(
      ::NavMessage::Pose2d::internal_default_instance());
  ::NavMessage::_Action_default_instance_._instance.get_mutable()->target_diff_ = const_cast< ::NavMessage::Pose2d*>(
      ::NavMessage::Pose2d::internal_default_instance());
  ::NavMessage::_Action_default_instance_._instance.get_mutable()->velocity_limit_ = const_cast< ::NavMessage::SpeedLimit*>(
      ::NavMessage::SpeedLimit::internal_default_instance());
  ::NavMessage::_Action_default_instance_._instance.get_mutable()->angular_limit_ = const_cast< ::NavMessage::SpeedLimit*>(
      ::NavMessage::SpeedLimit::internal_default_instance());
  ::NavMessage::_Action_default_instance_._instance.get_mutable()->horize_limit_ = const_cast< ::NavMessage::SpeedLimit*>(
      ::NavMessage::SpeedLimit::internal_default_instance());
}
class Action::_Internal {
 public:
  static const ::NavMessage::Pose2d& begin(const Action* msg);
  static const ::NavMessage::Pose2d& target(const Action* msg);
  static const ::NavMessage::Pose2d& target_diff(const Action* msg);
  static const ::NavMessage::SpeedLimit& velocity_limit(const Action* msg);
  static const ::NavMessage::SpeedLimit& angular_limit(const Action* msg);
  static const ::NavMessage::SpeedLimit& horize_limit(const Action* msg);
};

const ::NavMessage::Pose2d&
Action::_Internal::begin(const Action* msg) {
  return *msg->begin_;
}
const ::NavMessage::Pose2d&
Action::_Internal::target(const Action* msg) {
  return *msg->target_;
}
const ::NavMessage::Pose2d&
Action::_Internal::target_diff(const Action* msg) {
  return *msg->target_diff_;
}
const ::NavMessage::SpeedLimit&
Action::_Internal::velocity_limit(const Action* msg) {
  return *msg->velocity_limit_;
}
const ::NavMessage::SpeedLimit&
Action::_Internal::angular_limit(const Action* msg) {
  return *msg->angular_limit_;
}
const ::NavMessage::SpeedLimit&
Action::_Internal::horize_limit(const Action* msg) {
  return *msg->horize_limit_;
}
Action::Action(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.Action)
}
Action::Action(const Action& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_begin()) {
    begin_ = new ::NavMessage::Pose2d(*from.begin_);
  } else {
    begin_ = nullptr;
  }
  if (from._internal_has_target()) {
    target_ = new ::NavMessage::Pose2d(*from.target_);
  } else {
    target_ = nullptr;
  }
  if (from._internal_has_target_diff()) {
    target_diff_ = new ::NavMessage::Pose2d(*from.target_diff_);
  } else {
    target_diff_ = nullptr;
  }
  if (from._internal_has_velocity_limit()) {
    velocity_limit_ = new ::NavMessage::SpeedLimit(*from.velocity_limit_);
  } else {
    velocity_limit_ = nullptr;
  }
  if (from._internal_has_angular_limit()) {
    angular_limit_ = new ::NavMessage::SpeedLimit(*from.angular_limit_);
  } else {
    angular_limit_ = nullptr;
  }
  if (from._internal_has_horize_limit()) {
    horize_limit_ = new ::NavMessage::SpeedLimit(*from.horize_limit_);
  } else {
    horize_limit_ = nullptr;
  }
  type_ = from.type_;
  // @@protoc_insertion_point(copy_constructor:NavMessage.Action)
}

void Action::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Action_message_2eproto.base);
  ::memset(&begin_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&type_) -
      reinterpret_cast<char*>(&begin_)) + sizeof(type_));
}

Action::~Action() {
  // @@protoc_insertion_point(destructor:NavMessage.Action)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void Action::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete begin_;
  if (this != internal_default_instance()) delete target_;
  if (this != internal_default_instance()) delete target_diff_;
  if (this != internal_default_instance()) delete velocity_limit_;
  if (this != internal_default_instance()) delete angular_limit_;
  if (this != internal_default_instance()) delete horize_limit_;
}

void Action::ArenaDtor(void* object) {
  Action* _this = reinterpret_cast< Action* >(object);
  (void)_this;
}
void Action::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Action::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Action& Action::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Action_message_2eproto.base);
  return *internal_default_instance();
}


void Action::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.Action)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && begin_ != nullptr) {
    delete begin_;
  }
  begin_ = nullptr;
  if (GetArena() == nullptr && target_ != nullptr) {
    delete target_;
  }
  target_ = nullptr;
  if (GetArena() == nullptr && target_diff_ != nullptr) {
    delete target_diff_;
  }
  target_diff_ = nullptr;
  if (GetArena() == nullptr && velocity_limit_ != nullptr) {
    delete velocity_limit_;
  }
  velocity_limit_ = nullptr;
  if (GetArena() == nullptr && angular_limit_ != nullptr) {
    delete angular_limit_;
  }
  angular_limit_ = nullptr;
  if (GetArena() == nullptr && horize_limit_ != nullptr) {
    delete horize_limit_;
  }
  horize_limit_ = nullptr;
  type_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Action::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 type = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          type_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.Pose2d begin = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_begin(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.Pose2d target = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_target(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.Pose2d target_diff = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_target_diff(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.SpeedLimit velocity_limit = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_velocity_limit(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.SpeedLimit angular_limit = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_angular_limit(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.SpeedLimit horize_limit = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_horize_limit(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* Action::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.Action)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 type = 1;
  if (this->type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_type(), target);
  }

  // .NavMessage.Pose2d begin = 2;
  if (this->has_begin()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::begin(this), target, stream);
  }

  // .NavMessage.Pose2d target = 3;
  if (this->has_target()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::target(this), target, stream);
  }

  // .NavMessage.Pose2d target_diff = 4;
  if (this->has_target_diff()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::target_diff(this), target, stream);
  }

  // .NavMessage.SpeedLimit velocity_limit = 5;
  if (this->has_velocity_limit()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        5, _Internal::velocity_limit(this), target, stream);
  }

  // .NavMessage.SpeedLimit angular_limit = 6;
  if (this->has_angular_limit()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        6, _Internal::angular_limit(this), target, stream);
  }

  // .NavMessage.SpeedLimit horize_limit = 7;
  if (this->has_horize_limit()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        7, _Internal::horize_limit(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:NavMessage.Action)
  return target;
}

size_t Action::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:NavMessage.Action)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .NavMessage.Pose2d begin = 2;
  if (this->has_begin()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *begin_);
  }

  // .NavMessage.Pose2d target = 3;
  if (this->has_target()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *target_);
  }

  // .NavMessage.Pose2d target_diff = 4;
  if (this->has_target_diff()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *target_diff_);
  }

  // .NavMessage.SpeedLimit velocity_limit = 5;
  if (this->has_velocity_limit()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *velocity_limit_);
  }

  // .NavMessage.SpeedLimit angular_limit = 6;
  if (this->has_angular_limit()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *angular_limit_);
  }

  // .NavMessage.SpeedLimit horize_limit = 7;
  if (this->has_horize_limit()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *horize_limit_);
  }

  // int32 type = 1;
  if (this->type() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_type());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Action::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.Action)
  GOOGLE_DCHECK_NE(&from, this);
  const Action* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Action>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.Action)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.Action)
    MergeFrom(*source);
  }
}

void Action::MergeFrom(const Action& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.Action)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_begin()) {
    _internal_mutable_begin()->::NavMessage::Pose2d::MergeFrom(from._internal_begin());
  }
  if (from.has_target()) {
    _internal_mutable_target()->::NavMessage::Pose2d::MergeFrom(from._internal_target());
  }
  if (from.has_target_diff()) {
    _internal_mutable_target_diff()->::NavMessage::Pose2d::MergeFrom(from._internal_target_diff());
  }
  if (from.has_velocity_limit()) {
    _internal_mutable_velocity_limit()->::NavMessage::SpeedLimit::MergeFrom(from._internal_velocity_limit());
  }
  if (from.has_angular_limit()) {
    _internal_mutable_angular_limit()->::NavMessage::SpeedLimit::MergeFrom(from._internal_angular_limit());
  }
  if (from.has_horize_limit()) {
    _internal_mutable_horize_limit()->::NavMessage::SpeedLimit::MergeFrom(from._internal_horize_limit());
  }
  if (from.type() != 0) {
    _internal_set_type(from._internal_type());
  }
}

void Action::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.Action)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Action::CopyFrom(const Action& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:NavMessage.Action)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Action::IsInitialized() const {
  return true;
}

void Action::InternalSwap(Action* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Action, type_)
      + sizeof(Action::type_)
      - PROTOBUF_FIELD_OFFSET(Action, begin_)>(
          reinterpret_cast<char*>(&begin_),
          reinterpret_cast<char*>(&other->begin_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Action::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void NavCmd::InitAsDefaultInstance() {
}
class NavCmd::_Internal {
 public:
};

NavCmd::NavCmd(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  actions_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.NavCmd)
}
NavCmd::NavCmd(const NavCmd& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      actions_(from.actions_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  key_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_key().empty()) {
    key_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_key(),
      GetArena());
  }
  action_ = from.action_;
  // @@protoc_insertion_point(copy_constructor:NavMessage.NavCmd)
}

void NavCmd::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_NavCmd_message_2eproto.base);
  key_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  action_ = 0;
}

NavCmd::~NavCmd() {
  // @@protoc_insertion_point(destructor:NavMessage.NavCmd)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void NavCmd::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  key_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void NavCmd::ArenaDtor(void* object) {
  NavCmd* _this = reinterpret_cast< NavCmd* >(object);
  (void)_this;
}
void NavCmd::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void NavCmd::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const NavCmd& NavCmd::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_NavCmd_message_2eproto.base);
  return *internal_default_instance();
}


void NavCmd::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.NavCmd)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  actions_.Clear();
  key_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  action_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* NavCmd::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 action = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          action_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string key = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_key();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "NavMessage.NavCmd.key"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .NavMessage.Action actions = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_actions(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* NavCmd::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.NavCmd)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 action = 1;
  if (this->action() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_action(), target);
  }

  // string key = 2;
  if (this->key().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_key().data(), static_cast<int>(this->_internal_key().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "NavMessage.NavCmd.key");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_key(), target);
  }

  // repeated .NavMessage.Action actions = 3;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_actions_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(3, this->_internal_actions(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:NavMessage.NavCmd)
  return target;
}

size_t NavCmd::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:NavMessage.NavCmd)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .NavMessage.Action actions = 3;
  total_size += 1UL * this->_internal_actions_size();
  for (const auto& msg : this->actions_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string key = 2;
  if (this->key().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_key());
  }

  // int32 action = 1;
  if (this->action() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_action());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void NavCmd::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.NavCmd)
  GOOGLE_DCHECK_NE(&from, this);
  const NavCmd* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<NavCmd>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.NavCmd)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.NavCmd)
    MergeFrom(*source);
  }
}

void NavCmd::MergeFrom(const NavCmd& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.NavCmd)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  actions_.MergeFrom(from.actions_);
  if (from.key().size() > 0) {
    _internal_set_key(from._internal_key());
  }
  if (from.action() != 0) {
    _internal_set_action(from._internal_action());
  }
}

void NavCmd::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.NavCmd)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void NavCmd::CopyFrom(const NavCmd& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:NavMessage.NavCmd)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool NavCmd::IsInitialized() const {
  return true;
}

void NavCmd::InternalSwap(NavCmd* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  actions_.InternalSwap(&other->actions_);
  key_.Swap(&other->key_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  swap(action_, other->action_);
}

::PROTOBUF_NAMESPACE_ID::Metadata NavCmd::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void NavStatu::InitAsDefaultInstance() {
  ::NavMessage::_NavStatu_default_instance_._instance.get_mutable()->selected_traj_ = const_cast< ::NavMessage::Trajectory*>(
      ::NavMessage::Trajectory::internal_default_instance());
  ::NavMessage::_NavStatu_default_instance_._instance.get_mutable()->predict_traj_ = const_cast< ::NavMessage::Trajectory*>(
      ::NavMessage::Trajectory::internal_default_instance());
}
class NavStatu::_Internal {
 public:
  static const ::NavMessage::Trajectory& selected_traj(const NavStatu* msg);
  static const ::NavMessage::Trajectory& predict_traj(const NavStatu* msg);
};

const ::NavMessage::Trajectory&
NavStatu::_Internal::selected_traj(const NavStatu* msg) {
  return *msg->selected_traj_;
}
const ::NavMessage::Trajectory&
NavStatu::_Internal::predict_traj(const NavStatu* msg) {
  return *msg->predict_traj_;
}
NavStatu::NavStatu(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  unfinished_actions_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:NavMessage.NavStatu)
}
NavStatu::NavStatu(const NavStatu& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      unfinished_actions_(from.unfinished_actions_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  key_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_key().empty()) {
    key_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_key(),
      GetArena());
  }
  if (from._internal_has_selected_traj()) {
    selected_traj_ = new ::NavMessage::Trajectory(*from.selected_traj_);
  } else {
    selected_traj_ = nullptr;
  }
  if (from._internal_has_predict_traj()) {
    predict_traj_ = new ::NavMessage::Trajectory(*from.predict_traj_);
  } else {
    predict_traj_ = nullptr;
  }
  statu_ = from.statu_;
  // @@protoc_insertion_point(copy_constructor:NavMessage.NavStatu)
}

void NavStatu::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_NavStatu_message_2eproto.base);
  key_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&selected_traj_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&statu_) -
      reinterpret_cast<char*>(&selected_traj_)) + sizeof(statu_));
}

NavStatu::~NavStatu() {
  // @@protoc_insertion_point(destructor:NavMessage.NavStatu)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void NavStatu::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  key_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete selected_traj_;
  if (this != internal_default_instance()) delete predict_traj_;
}

void NavStatu::ArenaDtor(void* object) {
  NavStatu* _this = reinterpret_cast< NavStatu* >(object);
  (void)_this;
}
void NavStatu::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void NavStatu::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const NavStatu& NavStatu::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_NavStatu_message_2eproto.base);
  return *internal_default_instance();
}


void NavStatu::Clear() {
// @@protoc_insertion_point(message_clear_start:NavMessage.NavStatu)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  unfinished_actions_.Clear();
  key_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  if (GetArena() == nullptr && selected_traj_ != nullptr) {
    delete selected_traj_;
  }
  selected_traj_ = nullptr;
  if (GetArena() == nullptr && predict_traj_ != nullptr) {
    delete predict_traj_;
  }
  predict_traj_ = nullptr;
  statu_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* NavStatu::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool statu = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          statu_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string key = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_key();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "NavMessage.NavStatu.key"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .NavMessage.Action unfinished_actions = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_unfinished_actions(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else goto handle_unusual;
        continue;
      // .NavMessage.Trajectory selected_traj = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_selected_traj(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .NavMessage.Trajectory predict_traj = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_predict_traj(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* NavStatu::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:NavMessage.NavStatu)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool statu = 1;
  if (this->statu() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_statu(), target);
  }

  // string key = 2;
  if (this->key().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_key().data(), static_cast<int>(this->_internal_key().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "NavMessage.NavStatu.key");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_key(), target);
  }

  // repeated .NavMessage.Action unfinished_actions = 3;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_unfinished_actions_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(3, this->_internal_unfinished_actions(i), target, stream);
  }

  // .NavMessage.Trajectory selected_traj = 4;
  if (this->has_selected_traj()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::selected_traj(this), target, stream);
  }

  // .NavMessage.Trajectory predict_traj = 5;
  if (this->has_predict_traj()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        5, _Internal::predict_traj(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:NavMessage.NavStatu)
  return target;
}

size_t NavStatu::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:NavMessage.NavStatu)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .NavMessage.Action unfinished_actions = 3;
  total_size += 1UL * this->_internal_unfinished_actions_size();
  for (const auto& msg : this->unfinished_actions_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string key = 2;
  if (this->key().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_key());
  }

  // .NavMessage.Trajectory selected_traj = 4;
  if (this->has_selected_traj()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *selected_traj_);
  }

  // .NavMessage.Trajectory predict_traj = 5;
  if (this->has_predict_traj()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *predict_traj_);
  }

  // bool statu = 1;
  if (this->statu() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void NavStatu::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:NavMessage.NavStatu)
  GOOGLE_DCHECK_NE(&from, this);
  const NavStatu* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<NavStatu>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:NavMessage.NavStatu)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:NavMessage.NavStatu)
    MergeFrom(*source);
  }
}

void NavStatu::MergeFrom(const NavStatu& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:NavMessage.NavStatu)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  unfinished_actions_.MergeFrom(from.unfinished_actions_);
  if (from.key().size() > 0) {
    _internal_set_key(from._internal_key());
  }
  if (from.has_selected_traj()) {
    _internal_mutable_selected_traj()->::NavMessage::Trajectory::MergeFrom(from._internal_selected_traj());
  }
  if (from.has_predict_traj()) {
    _internal_mutable_predict_traj()->::NavMessage::Trajectory::MergeFrom(from._internal_predict_traj());
  }
  if (from.statu() != 0) {
    _internal_set_statu(from._internal_statu());
  }
}

void NavStatu::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:NavMessage.NavStatu)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void NavStatu::CopyFrom(const NavStatu& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:NavMessage.NavStatu)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool NavStatu::IsInitialized() const {
  return true;
}

void NavStatu::InternalSwap(NavStatu* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  unfinished_actions_.InternalSwap(&other->unfinished_actions_);
  key_.Swap(&other->key_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NavStatu, statu_)
      + sizeof(NavStatu::statu_)
      - PROTOBUF_FIELD_OFFSET(NavStatu, selected_traj_)>(
          reinterpret_cast<char*>(&selected_traj_),
          reinterpret_cast<char*>(&other->selected_traj_));
}

::PROTOBUF_NAMESPACE_ID::Metadata NavStatu::GetMetadata() const {
  return GetMetadataStatic();
}


// @@protoc_insertion_point(namespace_scope)
}  // namespace NavMessage
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::NavMessage::AGVStatu* Arena::CreateMaybeMessage< ::NavMessage::AGVStatu >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::AGVStatu >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::Speed* Arena::CreateMaybeMessage< ::NavMessage::Speed >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::Speed >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::SpeedLimit* Arena::CreateMaybeMessage< ::NavMessage::SpeedLimit >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::SpeedLimit >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::Pose2d* Arena::CreateMaybeMessage< ::NavMessage::Pose2d >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::Pose2d >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::Trajectory* Arena::CreateMaybeMessage< ::NavMessage::Trajectory >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::Trajectory >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::Action* Arena::CreateMaybeMessage< ::NavMessage::Action >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::Action >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::NavCmd* Arena::CreateMaybeMessage< ::NavMessage::NavCmd >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::NavCmd >(arena);
}
template<> PROTOBUF_NOINLINE ::NavMessage::NavStatu* Arena::CreateMaybeMessage< ::NavMessage::NavStatu >(Arena* arena) {
  return Arena::CreateMessageInternal< ::NavMessage::NavStatu >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
