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

#include "grpcservice.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>
namespace MatrixAi {
class RequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Request> _instance;
} _Request_default_instance_;
class ReplyDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Reply> _instance;
} _Reply_default_instance_;
class QueryWorkstationRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<QueryWorkstationRequest> _instance;
} _QueryWorkstationRequest_default_instance_;
class QueryWorkstationReplyDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<QueryWorkstationReply> _instance;
} _QueryWorkstationReply_default_instance_;
class UpdateWorkstationRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateWorkstationRequest> _instance;
} _UpdateWorkstationRequest_default_instance_;
class UpdateWorkstationReplyDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateWorkstationReply> _instance;
} _UpdateWorkstationReply_default_instance_;
class QueryCameraRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<QueryCameraRequest> _instance;
} _QueryCameraRequest_default_instance_;
class QueryCameraReplyDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<QueryCameraReply> _instance;
} _QueryCameraReply_default_instance_;
class UpdateCameraRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateCameraRequest> _instance;
} _UpdateCameraRequest_default_instance_;
class UpdateCameraReplyDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateCameraReply> _instance;
} _UpdateCameraReply_default_instance_;
class QueryFTPRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<QueryFTPRequest> _instance;
} _QueryFTPRequest_default_instance_;
class QueryFTPReplyDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<QueryFTPReply> _instance;
} _QueryFTPReply_default_instance_;
class UpdateFTPRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateFTPRequest> _instance;
} _UpdateFTPRequest_default_instance_;
class UpdateFTPReplyDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateFTPReply> _instance;
} _UpdateFTPReply_default_instance_;
}  // namespace MatrixAi
static void InitDefaultsscc_info_QueryCameraReply_grpcservice_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::MatrixAi::_QueryCameraReply_default_instance_;
    new (ptr) ::MatrixAi::QueryCameraReply();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::MatrixAi::QueryCameraReply::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_QueryCameraRequest_grpcservice_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::MatrixAi::_QueryCameraRequest_default_instance_;
    new (ptr) ::MatrixAi::QueryCameraRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::MatrixAi::QueryCameraRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_QueryFTPReply_grpcservice_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::MatrixAi::_QueryFTPReply_default_instance_;
    new (ptr) ::MatrixAi::QueryFTPReply();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::MatrixAi::QueryFTPReply::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_QueryFTPRequest_grpcservice_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::MatrixAi::_QueryFTPRequest_default_instance_;
    new (ptr) ::MatrixAi::QueryFTPRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::MatrixAi::QueryFTPRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_QueryWorkstationReply_grpcservice_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::MatrixAi::_QueryWorkstationReply_default_instance_;
    new (ptr) ::MatrixAi::QueryWorkstationReply();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::MatrixAi::QueryWorkstationReply::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_QueryWorkstationRequest_grpcservice_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::MatrixAi::_QueryWorkstationRequest_default_instance_;
    new (ptr) ::MatrixAi::QueryWorkstationRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::MatrixAi::QueryWorkstationRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_Reply_grpcservice_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::MatrixAi::_Reply_default_instance_;
    new (ptr) ::MatrixAi::Reply();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::MatrixAi::Reply::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_Request_grpcservice_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::MatrixAi::_Request_default_instance_;
    new (ptr) ::MatrixAi::Request();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::MatrixAi::Request::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_UpdateCameraReply_grpcservice_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::MatrixAi::_UpdateCameraReply_default_instance_;
    new (ptr) ::MatrixAi::UpdateCameraReply();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::MatrixAi::UpdateCameraReply::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_UpdateCameraRequest_grpcservice_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::MatrixAi::_UpdateCameraRequest_default_instance_;
    new (ptr) ::MatrixAi::UpdateCameraRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::MatrixAi::UpdateCameraRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_UpdateFTPReply_grpcservice_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::MatrixAi::_UpdateFTPReply_default_instance_;
    new (ptr) ::MatrixAi::UpdateFTPReply();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::MatrixAi::UpdateFTPReply::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_UpdateFTPRequest_grpcservice_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::MatrixAi::_UpdateFTPRequest_default_instance_;
    new (ptr) ::MatrixAi::UpdateFTPRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::MatrixAi::UpdateFTPRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_UpdateWorkstationReply_grpcservice_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::MatrixAi::_UpdateWorkstationReply_default_instance_;
    new (ptr) ::MatrixAi::UpdateWorkstationReply();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::MatrixAi::UpdateWorkstationReply::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_UpdateWorkstationRequest_grpcservice_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::MatrixAi::_UpdateWorkstationRequest_default_instance_;
    new (ptr) ::MatrixAi::UpdateWorkstationRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::MatrixAi::UpdateWorkstationRequest::InitAsDefaultInstance();
}

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

static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_grpcservice_2eproto[14];
static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_grpcservice_2eproto = nullptr;
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_grpcservice_2eproto = nullptr;

const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_grpcservice_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::Request, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::Request, head_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::Reply, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::Reply, error_msg_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryWorkstationRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryWorkstationRequest, head_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryWorkstationReply, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryWorkstationReply, name_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryWorkstationReply, name_no_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryWorkstationReply, error_msg_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateWorkstationRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateWorkstationRequest, head_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateWorkstationRequest, name_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateWorkstationRequest, name_no_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateWorkstationReply, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateWorkstationReply, error_msg_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryCameraRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryCameraRequest, head_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryCameraRequest, channel_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryCameraReply, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryCameraReply, channel_id_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryCameraReply, use_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryCameraReply, url_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryCameraReply, skipinterval_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryCameraReply, direction_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryCameraReply, left_first_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryCameraReply, right_first_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryCameraReply, error_msg_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateCameraRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateCameraRequest, head_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateCameraRequest, channel_id_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateCameraRequest, use_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateCameraRequest, url_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateCameraRequest, skipinterval_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateCameraRequest, direction_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateCameraRequest, left_first_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateCameraRequest, right_first_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateCameraReply, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateCameraReply, channel_id_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateCameraReply, error_msg_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryFTPRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryFTPRequest, head_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryFTPReply, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryFTPReply, open_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryFTPReply, username_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryFTPReply, password_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryFTPReply, ip_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryFTPReply, port_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryFTPReply, image_path_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryFTPReply, quit_time_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::QueryFTPReply, error_msg_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateFTPRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateFTPRequest, head_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateFTPRequest, open_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateFTPRequest, username_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateFTPRequest, password_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateFTPRequest, ip_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateFTPRequest, port_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateFTPRequest, image_path_),
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateFTPRequest, quit_time_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateFTPReply, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::MatrixAi::UpdateFTPReply, error_msg_),
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::MatrixAi::Request)},
  { 6, -1, sizeof(::MatrixAi::Reply)},
  { 12, -1, sizeof(::MatrixAi::QueryWorkstationRequest)},
  { 18, -1, sizeof(::MatrixAi::QueryWorkstationReply)},
  { 26, -1, sizeof(::MatrixAi::UpdateWorkstationRequest)},
  { 34, -1, sizeof(::MatrixAi::UpdateWorkstationReply)},
  { 40, -1, sizeof(::MatrixAi::QueryCameraRequest)},
  { 47, -1, sizeof(::MatrixAi::QueryCameraReply)},
  { 60, -1, sizeof(::MatrixAi::UpdateCameraRequest)},
  { 73, -1, sizeof(::MatrixAi::UpdateCameraReply)},
  { 80, -1, sizeof(::MatrixAi::QueryFTPRequest)},
  { 86, -1, sizeof(::MatrixAi::QueryFTPReply)},
  { 99, -1, sizeof(::MatrixAi::UpdateFTPRequest)},
  { 112, -1, sizeof(::MatrixAi::UpdateFTPReply)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MatrixAi::_Request_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MatrixAi::_Reply_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MatrixAi::_QueryWorkstationRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MatrixAi::_QueryWorkstationReply_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MatrixAi::_UpdateWorkstationRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MatrixAi::_UpdateWorkstationReply_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MatrixAi::_QueryCameraRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MatrixAi::_QueryCameraReply_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MatrixAi::_UpdateCameraRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MatrixAi::_UpdateCameraReply_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MatrixAi::_QueryFTPRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MatrixAi::_QueryFTPReply_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MatrixAi::_UpdateFTPRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::MatrixAi::_UpdateFTPReply_default_instance_),
};

const char descriptor_table_protodef_grpcservice_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\021grpcservice.proto\022\010MatrixAi\"\027\n\007Request"
  "\022\014\n\004head\030\001 \001(\r\"\032\n\005Reply\022\021\n\terror_msg\030\001 \001"
  "(\t\"\'\n\027QueryWorkstationRequest\022\014\n\004head\030\001 "
  "\001(\r\"I\n\025QueryWorkstationReply\022\014\n\004name\030\001 \001"
  "(\t\022\017\n\007name_no\030\002 \001(\t\022\021\n\terror_msg\030\003 \001(\t\"G"
  "\n\030UpdateWorkstationRequest\022\014\n\004head\030\001 \001(\r"
  "\022\014\n\004name\030\002 \001(\t\022\017\n\007name_no\030\003 \001(\t\"+\n\026Updat"
  "eWorkstationReply\022\021\n\terror_msg\030\001 \001(\t\"6\n\022"
  "QueryCameraRequest\022\014\n\004head\030\001 \001(\r\022\022\n\nchan"
  "nel_id\030\002 \001(\r\"\245\001\n\020QueryCameraReply\022\022\n\ncha"
  "nnel_id\030\001 \001(\r\022\013\n\003use\030\002 \001(\010\022\013\n\003url\030\003 \001(\t\022"
  "\024\n\014skipinterval\030\004 \001(\r\022\021\n\tdirection\030\005 \001(\r"
  "\022\022\n\nleft_first\030\006 \001(\r\022\023\n\013right_first\030\007 \001("
  "\r\022\021\n\terror_msg\030\010 \001(\t\"\243\001\n\023UpdateCameraReq"
  "uest\022\014\n\004head\030\001 \001(\r\022\022\n\nchannel_id\030\002 \001(\r\022\013"
  "\n\003use\030\003 \001(\010\022\013\n\003url\030\004 \001(\t\022\024\n\014skipinterval"
  "\030\005 \001(\r\022\021\n\tdirection\030\006 \001(\r\022\022\n\nleft_first\030"
  "\007 \001(\r\022\023\n\013right_first\030\010 \001(\r\":\n\021UpdateCame"
  "raReply\022\022\n\nchannel_id\030\001 \001(\r\022\021\n\terror_msg"
  "\030\002 \001(\t\"\037\n\017QueryFTPRequest\022\014\n\004head\030\001 \001(\r\""
  "\225\001\n\rQueryFTPReply\022\014\n\004open\030\001 \001(\r\022\020\n\010usern"
  "ame\030\002 \001(\t\022\020\n\010password\030\003 \001(\t\022\n\n\002ip\030\004 \001(\t\022"
  "\014\n\004port\030\005 \001(\r\022\022\n\nimage_path\030\006 \001(\t\022\021\n\tqui"
  "t_time\030\007 \001(\r\022\021\n\terror_msg\030\010 \001(\t\"\223\001\n\020Upda"
  "teFTPRequest\022\014\n\004head\030\001 \001(\r\022\014\n\004open\030\002 \001(\r"
  "\022\020\n\010username\030\003 \001(\t\022\020\n\010password\030\004 \001(\t\022\n\n\002"
  "ip\030\005 \001(\t\022\014\n\004port\030\006 \001(\r\022\022\n\nimage_path\030\007 \001"
  "(\t\022\021\n\tquit_time\030\010 \001(\r\"#\n\016UpdateFTPReply\022"
  "\021\n\terror_msg\030\001 \001(\t2\327\005\n\005Train\022,\n\004Come\022\021.M"
  "atrixAi.Request\032\017.MatrixAi.Reply\"\000\022-\n\005Le"
  "ave\022\021.MatrixAi.Request\032\017.MatrixAi.Reply\""
  "\000\0225\n\rTemporaryStop\022\021.MatrixAi.Request\032\017."
  "MatrixAi.Reply\"\000\0221\n\tReversing\022\021.MatrixAi"
  ".Request\032\017.MatrixAi.Reply\"\000\022X\n\020QueryWork"
  "station\022!.MatrixAi.QueryWorkstationReque"
  "st\032\037.MatrixAi.QueryWorkstationReply\"\000\022[\n"
  "\021UpdateWorkstation\022\".MatrixAi.UpdateWork"
  "stationRequest\032 .MatrixAi.UpdateWorkstat"
  "ionReply\"\000\022I\n\013QueryCamera\022\034.MatrixAi.Que"
  "ryCameraRequest\032\032.MatrixAi.QueryCameraRe"
  "ply\"\000\022L\n\014UpdateCamera\022\035.MatrixAi.UpdateC"
  "ameraRequest\032\033.MatrixAi.UpdateCameraRepl"
  "y\"\000\022@\n\010QueryFTP\022\031.MatrixAi.QueryFTPReque"
  "st\032\027.MatrixAi.QueryFTPReply\"\000\022C\n\tUpdateF"
  "TP\022\032.MatrixAi.UpdateFTPRequest\032\030.MatrixA"
  "i.UpdateFTPReply\"\000\0220\n\010RebootAI\022\021.MatrixA"
  "i.Request\032\017.MatrixAi.Reply\"\000B&\n\025com.matr"
  "ix.train.grpcB\013GrpcServiceP\001b\006proto3"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_grpcservice_2eproto_deps[1] = {
};
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_grpcservice_2eproto_sccs[14] = {
  &scc_info_QueryCameraReply_grpcservice_2eproto.base,
  &scc_info_QueryCameraRequest_grpcservice_2eproto.base,
  &scc_info_QueryFTPReply_grpcservice_2eproto.base,
  &scc_info_QueryFTPRequest_grpcservice_2eproto.base,
  &scc_info_QueryWorkstationReply_grpcservice_2eproto.base,
  &scc_info_QueryWorkstationRequest_grpcservice_2eproto.base,
  &scc_info_Reply_grpcservice_2eproto.base,
  &scc_info_Request_grpcservice_2eproto.base,
  &scc_info_UpdateCameraReply_grpcservice_2eproto.base,
  &scc_info_UpdateCameraRequest_grpcservice_2eproto.base,
  &scc_info_UpdateFTPReply_grpcservice_2eproto.base,
  &scc_info_UpdateFTPRequest_grpcservice_2eproto.base,
  &scc_info_UpdateWorkstationReply_grpcservice_2eproto.base,
  &scc_info_UpdateWorkstationRequest_grpcservice_2eproto.base,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_grpcservice_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_grpcservice_2eproto = {
  false, false, descriptor_table_protodef_grpcservice_2eproto, "grpcservice.proto", 1916,
  &descriptor_table_grpcservice_2eproto_once, descriptor_table_grpcservice_2eproto_sccs, descriptor_table_grpcservice_2eproto_deps, 14, 0,
  schemas, file_default_instances, TableStruct_grpcservice_2eproto::offsets,
  file_level_metadata_grpcservice_2eproto, 14, file_level_enum_descriptors_grpcservice_2eproto, file_level_service_descriptors_grpcservice_2eproto,
};

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

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

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

Request::Request(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:MatrixAi.Request)
}
Request::Request(const Request& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  head_ = from.head_;
  // @@protoc_insertion_point(copy_constructor:MatrixAi.Request)
}

void Request::SharedCtor() {
  head_ = 0u;
}

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

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

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


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

  head_ = 0u;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Request::_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) {
      // uint32 head = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          head_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&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* Request::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:MatrixAi.Request)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 head = 1;
  if (this->head() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_head(), 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:MatrixAi.Request)
  return target;
}

size_t Request::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MatrixAi.Request)
  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;

  // uint32 head = 1;
  if (this->head() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_head());
  }

  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 Request::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:MatrixAi.Request)
  GOOGLE_DCHECK_NE(&from, this);
  const Request* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Request>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:MatrixAi.Request)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:MatrixAi.Request)
    MergeFrom(*source);
  }
}

void Request::MergeFrom(const Request& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MatrixAi.Request)
  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.head() != 0) {
    _internal_set_head(from._internal_head());
  }
}

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

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

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

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

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


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

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

Reply::Reply(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:MatrixAi.Reply)
}
Reply::Reply(const Reply& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  error_msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_error_msg().empty()) {
    error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_error_msg(),
      GetArena());
  }
  // @@protoc_insertion_point(copy_constructor:MatrixAi.Reply)
}

void Reply::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Reply_grpcservice_2eproto.base);
  error_msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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

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

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


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

  error_msg_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Reply::_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) {
      // string error_msg = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          auto str = _internal_mutable_error_msg();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.Reply.error_msg"));
          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* Reply::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:MatrixAi.Reply)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string error_msg = 1;
  if (this->error_msg().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_error_msg().data(), static_cast<int>(this->_internal_error_msg().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.Reply.error_msg");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_error_msg(), 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:MatrixAi.Reply)
  return target;
}

size_t Reply::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MatrixAi.Reply)
  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;

  // string error_msg = 1;
  if (this->error_msg().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_error_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 Reply::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:MatrixAi.Reply)
  GOOGLE_DCHECK_NE(&from, this);
  const Reply* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Reply>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:MatrixAi.Reply)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:MatrixAi.Reply)
    MergeFrom(*source);
  }
}

void Reply::MergeFrom(const Reply& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MatrixAi.Reply)
  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.error_msg().size() > 0) {
    _internal_set_error_msg(from._internal_error_msg());
  }
}

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

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

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

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

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


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

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

QueryWorkstationRequest::QueryWorkstationRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:MatrixAi.QueryWorkstationRequest)
}
QueryWorkstationRequest::QueryWorkstationRequest(const QueryWorkstationRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  head_ = from.head_;
  // @@protoc_insertion_point(copy_constructor:MatrixAi.QueryWorkstationRequest)
}

void QueryWorkstationRequest::SharedCtor() {
  head_ = 0u;
}

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

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

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


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

  head_ = 0u;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* QueryWorkstationRequest::_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) {
      // uint32 head = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          head_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&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* QueryWorkstationRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:MatrixAi.QueryWorkstationRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 head = 1;
  if (this->head() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_head(), 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:MatrixAi.QueryWorkstationRequest)
  return target;
}

size_t QueryWorkstationRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MatrixAi.QueryWorkstationRequest)
  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;

  // uint32 head = 1;
  if (this->head() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_head());
  }

  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 QueryWorkstationRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:MatrixAi.QueryWorkstationRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const QueryWorkstationRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<QueryWorkstationRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:MatrixAi.QueryWorkstationRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:MatrixAi.QueryWorkstationRequest)
    MergeFrom(*source);
  }
}

void QueryWorkstationRequest::MergeFrom(const QueryWorkstationRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MatrixAi.QueryWorkstationRequest)
  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.head() != 0) {
    _internal_set_head(from._internal_head());
  }
}

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

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

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

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

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


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

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

QueryWorkstationReply::QueryWorkstationReply(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:MatrixAi.QueryWorkstationReply)
}
QueryWorkstationReply::QueryWorkstationReply(const QueryWorkstationReply& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_name().empty()) {
    name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_name(),
      GetArena());
  }
  name_no_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_name_no().empty()) {
    name_no_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_name_no(),
      GetArena());
  }
  error_msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_error_msg().empty()) {
    error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_error_msg(),
      GetArena());
  }
  // @@protoc_insertion_point(copy_constructor:MatrixAi.QueryWorkstationReply)
}

void QueryWorkstationReply::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_QueryWorkstationReply_grpcservice_2eproto.base);
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  name_no_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  error_msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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

void QueryWorkstationReply::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  name_no_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  error_msg_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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


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

  name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  name_no_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  error_msg_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* QueryWorkstationReply::_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) {
      // string name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          auto str = _internal_mutable_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.QueryWorkstationReply.name"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string name_no = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_name_no();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.QueryWorkstationReply.name_no"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string error_msg = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_error_msg();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.QueryWorkstationReply.error_msg"));
          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* QueryWorkstationReply::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:MatrixAi.QueryWorkstationReply)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string name = 1;
  if (this->name().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.QueryWorkstationReply.name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_name(), target);
  }

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

  // string error_msg = 3;
  if (this->error_msg().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_error_msg().data(), static_cast<int>(this->_internal_error_msg().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.QueryWorkstationReply.error_msg");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_error_msg(), 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:MatrixAi.QueryWorkstationReply)
  return target;
}

size_t QueryWorkstationReply::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MatrixAi.QueryWorkstationReply)
  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;

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

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

  // string error_msg = 3;
  if (this->error_msg().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_error_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 QueryWorkstationReply::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:MatrixAi.QueryWorkstationReply)
  GOOGLE_DCHECK_NE(&from, this);
  const QueryWorkstationReply* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<QueryWorkstationReply>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:MatrixAi.QueryWorkstationReply)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:MatrixAi.QueryWorkstationReply)
    MergeFrom(*source);
  }
}

void QueryWorkstationReply::MergeFrom(const QueryWorkstationReply& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MatrixAi.QueryWorkstationReply)
  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.name().size() > 0) {
    _internal_set_name(from._internal_name());
  }
  if (from.name_no().size() > 0) {
    _internal_set_name_no(from._internal_name_no());
  }
  if (from.error_msg().size() > 0) {
    _internal_set_error_msg(from._internal_error_msg());
  }
}

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

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

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

void QueryWorkstationReply::InternalSwap(QueryWorkstationReply* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  name_no_.Swap(&other->name_no_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  error_msg_.Swap(&other->error_msg_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}

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


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

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

UpdateWorkstationRequest::UpdateWorkstationRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:MatrixAi.UpdateWorkstationRequest)
}
UpdateWorkstationRequest::UpdateWorkstationRequest(const UpdateWorkstationRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_name().empty()) {
    name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_name(),
      GetArena());
  }
  name_no_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_name_no().empty()) {
    name_no_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_name_no(),
      GetArena());
  }
  head_ = from.head_;
  // @@protoc_insertion_point(copy_constructor:MatrixAi.UpdateWorkstationRequest)
}

void UpdateWorkstationRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UpdateWorkstationRequest_grpcservice_2eproto.base);
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  name_no_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  head_ = 0u;
}

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

void UpdateWorkstationRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  name_no_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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


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

  name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  name_no_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  head_ = 0u;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UpdateWorkstationRequest::_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) {
      // uint32 head = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          head_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string name = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.UpdateWorkstationRequest.name"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string name_no = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_name_no();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.UpdateWorkstationRequest.name_no"));
          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* UpdateWorkstationRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:MatrixAi.UpdateWorkstationRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 head = 1;
  if (this->head() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_head(), target);
  }

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

  // string name_no = 3;
  if (this->name_no().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_no().data(), static_cast<int>(this->_internal_name_no().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.UpdateWorkstationRequest.name_no");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_name_no(), 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:MatrixAi.UpdateWorkstationRequest)
  return target;
}

size_t UpdateWorkstationRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MatrixAi.UpdateWorkstationRequest)
  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;

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

  // string name_no = 3;
  if (this->name_no().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_no());
  }

  // uint32 head = 1;
  if (this->head() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_head());
  }

  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 UpdateWorkstationRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:MatrixAi.UpdateWorkstationRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const UpdateWorkstationRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<UpdateWorkstationRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:MatrixAi.UpdateWorkstationRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:MatrixAi.UpdateWorkstationRequest)
    MergeFrom(*source);
  }
}

void UpdateWorkstationRequest::MergeFrom(const UpdateWorkstationRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MatrixAi.UpdateWorkstationRequest)
  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.name().size() > 0) {
    _internal_set_name(from._internal_name());
  }
  if (from.name_no().size() > 0) {
    _internal_set_name_no(from._internal_name_no());
  }
  if (from.head() != 0) {
    _internal_set_head(from._internal_head());
  }
}

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

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

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

void UpdateWorkstationRequest::InternalSwap(UpdateWorkstationRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  name_no_.Swap(&other->name_no_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  swap(head_, other->head_);
}

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


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

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

UpdateWorkstationReply::UpdateWorkstationReply(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:MatrixAi.UpdateWorkstationReply)
}
UpdateWorkstationReply::UpdateWorkstationReply(const UpdateWorkstationReply& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  error_msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_error_msg().empty()) {
    error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_error_msg(),
      GetArena());
  }
  // @@protoc_insertion_point(copy_constructor:MatrixAi.UpdateWorkstationReply)
}

void UpdateWorkstationReply::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UpdateWorkstationReply_grpcservice_2eproto.base);
  error_msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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

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

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


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

  error_msg_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UpdateWorkstationReply::_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) {
      // string error_msg = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          auto str = _internal_mutable_error_msg();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.UpdateWorkstationReply.error_msg"));
          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* UpdateWorkstationReply::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:MatrixAi.UpdateWorkstationReply)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string error_msg = 1;
  if (this->error_msg().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_error_msg().data(), static_cast<int>(this->_internal_error_msg().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.UpdateWorkstationReply.error_msg");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_error_msg(), 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:MatrixAi.UpdateWorkstationReply)
  return target;
}

size_t UpdateWorkstationReply::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MatrixAi.UpdateWorkstationReply)
  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;

  // string error_msg = 1;
  if (this->error_msg().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_error_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 UpdateWorkstationReply::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:MatrixAi.UpdateWorkstationReply)
  GOOGLE_DCHECK_NE(&from, this);
  const UpdateWorkstationReply* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<UpdateWorkstationReply>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:MatrixAi.UpdateWorkstationReply)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:MatrixAi.UpdateWorkstationReply)
    MergeFrom(*source);
  }
}

void UpdateWorkstationReply::MergeFrom(const UpdateWorkstationReply& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MatrixAi.UpdateWorkstationReply)
  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.error_msg().size() > 0) {
    _internal_set_error_msg(from._internal_error_msg());
  }
}

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

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

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

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

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


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

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

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

void QueryCameraRequest::SharedCtor() {
  ::memset(&head_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&channel_id_) -
      reinterpret_cast<char*>(&head_)) + sizeof(channel_id_));
}

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

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

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


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

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

const char* QueryCameraRequest::_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) {
      // uint32 head = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          head_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 channel_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          channel_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&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* QueryCameraRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:MatrixAi.QueryCameraRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 head = 1;
  if (this->head() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_head(), target);
  }

  // uint32 channel_id = 2;
  if (this->channel_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_channel_id(), 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:MatrixAi.QueryCameraRequest)
  return target;
}

size_t QueryCameraRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MatrixAi.QueryCameraRequest)
  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;

  // uint32 head = 1;
  if (this->head() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_head());
  }

  // uint32 channel_id = 2;
  if (this->channel_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_channel_id());
  }

  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 QueryCameraRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:MatrixAi.QueryCameraRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const QueryCameraRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<QueryCameraRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:MatrixAi.QueryCameraRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:MatrixAi.QueryCameraRequest)
    MergeFrom(*source);
  }
}

void QueryCameraRequest::MergeFrom(const QueryCameraRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MatrixAi.QueryCameraRequest)
  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.head() != 0) {
    _internal_set_head(from._internal_head());
  }
  if (from.channel_id() != 0) {
    _internal_set_channel_id(from._internal_channel_id());
  }
}

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

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

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

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

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


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

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

QueryCameraReply::QueryCameraReply(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:MatrixAi.QueryCameraReply)
}
QueryCameraReply::QueryCameraReply(const QueryCameraReply& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  url_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_url().empty()) {
    url_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_url(),
      GetArena());
  }
  error_msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_error_msg().empty()) {
    error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_error_msg(),
      GetArena());
  }
  ::memcpy(&channel_id_, &from.channel_id_,
    static_cast<size_t>(reinterpret_cast<char*>(&right_first_) -
    reinterpret_cast<char*>(&channel_id_)) + sizeof(right_first_));
  // @@protoc_insertion_point(copy_constructor:MatrixAi.QueryCameraReply)
}

void QueryCameraReply::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_QueryCameraReply_grpcservice_2eproto.base);
  url_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  error_msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&channel_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&right_first_) -
      reinterpret_cast<char*>(&channel_id_)) + sizeof(right_first_));
}

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

void QueryCameraReply::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  url_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  error_msg_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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


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

  url_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  error_msg_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::memset(&channel_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&right_first_) -
      reinterpret_cast<char*>(&channel_id_)) + sizeof(right_first_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* QueryCameraReply::_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) {
      // uint32 channel_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          channel_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool use = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          use_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string url = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_url();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.QueryCameraReply.url"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 skipinterval = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          skipinterval_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 direction = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          direction_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 left_first = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          left_first_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 right_first = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          right_first_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string error_msg = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          auto str = _internal_mutable_error_msg();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.QueryCameraReply.error_msg"));
          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* QueryCameraReply::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:MatrixAi.QueryCameraReply)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 channel_id = 1;
  if (this->channel_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_channel_id(), target);
  }

  // bool use = 2;
  if (this->use() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_use(), target);
  }

  // string url = 3;
  if (this->url().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_url().data(), static_cast<int>(this->_internal_url().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.QueryCameraReply.url");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_url(), target);
  }

  // uint32 skipinterval = 4;
  if (this->skipinterval() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(4, this->_internal_skipinterval(), target);
  }

  // uint32 direction = 5;
  if (this->direction() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(5, this->_internal_direction(), target);
  }

  // uint32 left_first = 6;
  if (this->left_first() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(6, this->_internal_left_first(), target);
  }

  // uint32 right_first = 7;
  if (this->right_first() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(7, this->_internal_right_first(), target);
  }

  // string error_msg = 8;
  if (this->error_msg().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_error_msg().data(), static_cast<int>(this->_internal_error_msg().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.QueryCameraReply.error_msg");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_error_msg(), 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:MatrixAi.QueryCameraReply)
  return target;
}

size_t QueryCameraReply::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MatrixAi.QueryCameraReply)
  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;

  // string url = 3;
  if (this->url().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_url());
  }

  // string error_msg = 8;
  if (this->error_msg().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_error_msg());
  }

  // uint32 channel_id = 1;
  if (this->channel_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_channel_id());
  }

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

  // uint32 skipinterval = 4;
  if (this->skipinterval() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_skipinterval());
  }

  // uint32 direction = 5;
  if (this->direction() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_direction());
  }

  // uint32 left_first = 6;
  if (this->left_first() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_left_first());
  }

  // uint32 right_first = 7;
  if (this->right_first() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_right_first());
  }

  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 QueryCameraReply::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:MatrixAi.QueryCameraReply)
  GOOGLE_DCHECK_NE(&from, this);
  const QueryCameraReply* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<QueryCameraReply>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:MatrixAi.QueryCameraReply)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:MatrixAi.QueryCameraReply)
    MergeFrom(*source);
  }
}

void QueryCameraReply::MergeFrom(const QueryCameraReply& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MatrixAi.QueryCameraReply)
  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.url().size() > 0) {
    _internal_set_url(from._internal_url());
  }
  if (from.error_msg().size() > 0) {
    _internal_set_error_msg(from._internal_error_msg());
  }
  if (from.channel_id() != 0) {
    _internal_set_channel_id(from._internal_channel_id());
  }
  if (from.use() != 0) {
    _internal_set_use(from._internal_use());
  }
  if (from.skipinterval() != 0) {
    _internal_set_skipinterval(from._internal_skipinterval());
  }
  if (from.direction() != 0) {
    _internal_set_direction(from._internal_direction());
  }
  if (from.left_first() != 0) {
    _internal_set_left_first(from._internal_left_first());
  }
  if (from.right_first() != 0) {
    _internal_set_right_first(from._internal_right_first());
  }
}

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

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

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

void QueryCameraReply::InternalSwap(QueryCameraReply* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  url_.Swap(&other->url_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  error_msg_.Swap(&other->error_msg_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(QueryCameraReply, right_first_)
      + sizeof(QueryCameraReply::right_first_)
      - PROTOBUF_FIELD_OFFSET(QueryCameraReply, channel_id_)>(
          reinterpret_cast<char*>(&channel_id_),
          reinterpret_cast<char*>(&other->channel_id_));
}

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


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

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

UpdateCameraRequest::UpdateCameraRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:MatrixAi.UpdateCameraRequest)
}
UpdateCameraRequest::UpdateCameraRequest(const UpdateCameraRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  url_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_url().empty()) {
    url_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_url(),
      GetArena());
  }
  ::memcpy(&head_, &from.head_,
    static_cast<size_t>(reinterpret_cast<char*>(&right_first_) -
    reinterpret_cast<char*>(&head_)) + sizeof(right_first_));
  // @@protoc_insertion_point(copy_constructor:MatrixAi.UpdateCameraRequest)
}

void UpdateCameraRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UpdateCameraRequest_grpcservice_2eproto.base);
  url_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&head_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&right_first_) -
      reinterpret_cast<char*>(&head_)) + sizeof(right_first_));
}

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

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

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


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

  url_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::memset(&head_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&right_first_) -
      reinterpret_cast<char*>(&head_)) + sizeof(right_first_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UpdateCameraRequest::_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) {
      // uint32 head = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          head_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 channel_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          channel_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool use = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          use_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string url = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          auto str = _internal_mutable_url();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.UpdateCameraRequest.url"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 skipinterval = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          skipinterval_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 direction = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          direction_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 left_first = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          left_first_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 right_first = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          right_first_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&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* UpdateCameraRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:MatrixAi.UpdateCameraRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 head = 1;
  if (this->head() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_head(), target);
  }

  // uint32 channel_id = 2;
  if (this->channel_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_channel_id(), target);
  }

  // bool use = 3;
  if (this->use() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_use(), target);
  }

  // string url = 4;
  if (this->url().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_url().data(), static_cast<int>(this->_internal_url().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.UpdateCameraRequest.url");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_url(), target);
  }

  // uint32 skipinterval = 5;
  if (this->skipinterval() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(5, this->_internal_skipinterval(), target);
  }

  // uint32 direction = 6;
  if (this->direction() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(6, this->_internal_direction(), target);
  }

  // uint32 left_first = 7;
  if (this->left_first() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(7, this->_internal_left_first(), target);
  }

  // uint32 right_first = 8;
  if (this->right_first() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(8, this->_internal_right_first(), 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:MatrixAi.UpdateCameraRequest)
  return target;
}

size_t UpdateCameraRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MatrixAi.UpdateCameraRequest)
  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;

  // string url = 4;
  if (this->url().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_url());
  }

  // uint32 head = 1;
  if (this->head() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_head());
  }

  // uint32 channel_id = 2;
  if (this->channel_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_channel_id());
  }

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

  // uint32 skipinterval = 5;
  if (this->skipinterval() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_skipinterval());
  }

  // uint32 direction = 6;
  if (this->direction() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_direction());
  }

  // uint32 left_first = 7;
  if (this->left_first() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_left_first());
  }

  // uint32 right_first = 8;
  if (this->right_first() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_right_first());
  }

  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 UpdateCameraRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:MatrixAi.UpdateCameraRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const UpdateCameraRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<UpdateCameraRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:MatrixAi.UpdateCameraRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:MatrixAi.UpdateCameraRequest)
    MergeFrom(*source);
  }
}

void UpdateCameraRequest::MergeFrom(const UpdateCameraRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MatrixAi.UpdateCameraRequest)
  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.url().size() > 0) {
    _internal_set_url(from._internal_url());
  }
  if (from.head() != 0) {
    _internal_set_head(from._internal_head());
  }
  if (from.channel_id() != 0) {
    _internal_set_channel_id(from._internal_channel_id());
  }
  if (from.use() != 0) {
    _internal_set_use(from._internal_use());
  }
  if (from.skipinterval() != 0) {
    _internal_set_skipinterval(from._internal_skipinterval());
  }
  if (from.direction() != 0) {
    _internal_set_direction(from._internal_direction());
  }
  if (from.left_first() != 0) {
    _internal_set_left_first(from._internal_left_first());
  }
  if (from.right_first() != 0) {
    _internal_set_right_first(from._internal_right_first());
  }
}

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

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

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

void UpdateCameraRequest::InternalSwap(UpdateCameraRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  url_.Swap(&other->url_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(UpdateCameraRequest, right_first_)
      + sizeof(UpdateCameraRequest::right_first_)
      - PROTOBUF_FIELD_OFFSET(UpdateCameraRequest, head_)>(
          reinterpret_cast<char*>(&head_),
          reinterpret_cast<char*>(&other->head_));
}

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


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

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

UpdateCameraReply::UpdateCameraReply(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:MatrixAi.UpdateCameraReply)
}
UpdateCameraReply::UpdateCameraReply(const UpdateCameraReply& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  error_msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_error_msg().empty()) {
    error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_error_msg(),
      GetArena());
  }
  channel_id_ = from.channel_id_;
  // @@protoc_insertion_point(copy_constructor:MatrixAi.UpdateCameraReply)
}

void UpdateCameraReply::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UpdateCameraReply_grpcservice_2eproto.base);
  error_msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  channel_id_ = 0u;
}

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

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

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


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

  error_msg_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  channel_id_ = 0u;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UpdateCameraReply::_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) {
      // uint32 channel_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          channel_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string error_msg = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_error_msg();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.UpdateCameraReply.error_msg"));
          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* UpdateCameraReply::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:MatrixAi.UpdateCameraReply)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 channel_id = 1;
  if (this->channel_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_channel_id(), target);
  }

  // string error_msg = 2;
  if (this->error_msg().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_error_msg().data(), static_cast<int>(this->_internal_error_msg().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.UpdateCameraReply.error_msg");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_error_msg(), 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:MatrixAi.UpdateCameraReply)
  return target;
}

size_t UpdateCameraReply::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MatrixAi.UpdateCameraReply)
  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;

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

  // uint32 channel_id = 1;
  if (this->channel_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_channel_id());
  }

  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 UpdateCameraReply::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:MatrixAi.UpdateCameraReply)
  GOOGLE_DCHECK_NE(&from, this);
  const UpdateCameraReply* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<UpdateCameraReply>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:MatrixAi.UpdateCameraReply)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:MatrixAi.UpdateCameraReply)
    MergeFrom(*source);
  }
}

void UpdateCameraReply::MergeFrom(const UpdateCameraReply& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MatrixAi.UpdateCameraReply)
  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.error_msg().size() > 0) {
    _internal_set_error_msg(from._internal_error_msg());
  }
  if (from.channel_id() != 0) {
    _internal_set_channel_id(from._internal_channel_id());
  }
}

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

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

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

void UpdateCameraReply::InternalSwap(UpdateCameraReply* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  error_msg_.Swap(&other->error_msg_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  swap(channel_id_, other->channel_id_);
}

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


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

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

QueryFTPRequest::QueryFTPRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:MatrixAi.QueryFTPRequest)
}
QueryFTPRequest::QueryFTPRequest(const QueryFTPRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  head_ = from.head_;
  // @@protoc_insertion_point(copy_constructor:MatrixAi.QueryFTPRequest)
}

void QueryFTPRequest::SharedCtor() {
  head_ = 0u;
}

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

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

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


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

  head_ = 0u;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* QueryFTPRequest::_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) {
      // uint32 head = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          head_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&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* QueryFTPRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:MatrixAi.QueryFTPRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 head = 1;
  if (this->head() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_head(), 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:MatrixAi.QueryFTPRequest)
  return target;
}

size_t QueryFTPRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MatrixAi.QueryFTPRequest)
  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;

  // uint32 head = 1;
  if (this->head() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_head());
  }

  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 QueryFTPRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:MatrixAi.QueryFTPRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const QueryFTPRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<QueryFTPRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:MatrixAi.QueryFTPRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:MatrixAi.QueryFTPRequest)
    MergeFrom(*source);
  }
}

void QueryFTPRequest::MergeFrom(const QueryFTPRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MatrixAi.QueryFTPRequest)
  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.head() != 0) {
    _internal_set_head(from._internal_head());
  }
}

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

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

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

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

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


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

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

QueryFTPReply::QueryFTPReply(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:MatrixAi.QueryFTPReply)
}
QueryFTPReply::QueryFTPReply(const QueryFTPReply& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  username_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_username().empty()) {
    username_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_username(),
      GetArena());
  }
  password_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_password().empty()) {
    password_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_password(),
      GetArena());
  }
  ip_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_ip().empty()) {
    ip_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_ip(),
      GetArena());
  }
  image_path_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_image_path().empty()) {
    image_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_image_path(),
      GetArena());
  }
  error_msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_error_msg().empty()) {
    error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_error_msg(),
      GetArena());
  }
  ::memcpy(&open_, &from.open_,
    static_cast<size_t>(reinterpret_cast<char*>(&quit_time_) -
    reinterpret_cast<char*>(&open_)) + sizeof(quit_time_));
  // @@protoc_insertion_point(copy_constructor:MatrixAi.QueryFTPReply)
}

void QueryFTPReply::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_QueryFTPReply_grpcservice_2eproto.base);
  username_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  password_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ip_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  image_path_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  error_msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&open_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&quit_time_) -
      reinterpret_cast<char*>(&open_)) + sizeof(quit_time_));
}

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

void QueryFTPReply::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  username_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  password_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ip_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  image_path_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  error_msg_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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


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

  username_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  password_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ip_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  image_path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  error_msg_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::memset(&open_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&quit_time_) -
      reinterpret_cast<char*>(&open_)) + sizeof(quit_time_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* QueryFTPReply::_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) {
      // uint32 open = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          open_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string username = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_username();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.QueryFTPReply.username"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string password = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_password();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.QueryFTPReply.password"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string ip = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          auto str = _internal_mutable_ip();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.QueryFTPReply.ip"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 port = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          port_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string image_path = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          auto str = _internal_mutable_image_path();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.QueryFTPReply.image_path"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 quit_time = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          quit_time_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string error_msg = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          auto str = _internal_mutable_error_msg();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.QueryFTPReply.error_msg"));
          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* QueryFTPReply::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:MatrixAi.QueryFTPReply)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 open = 1;
  if (this->open() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_open(), target);
  }

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

  // string password = 3;
  if (this->password().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_password().data(), static_cast<int>(this->_internal_password().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.QueryFTPReply.password");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_password(), target);
  }

  // string ip = 4;
  if (this->ip().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_ip().data(), static_cast<int>(this->_internal_ip().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.QueryFTPReply.ip");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_ip(), target);
  }

  // uint32 port = 5;
  if (this->port() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(5, this->_internal_port(), target);
  }

  // string image_path = 6;
  if (this->image_path().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_image_path().data(), static_cast<int>(this->_internal_image_path().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.QueryFTPReply.image_path");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_image_path(), target);
  }

  // uint32 quit_time = 7;
  if (this->quit_time() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(7, this->_internal_quit_time(), target);
  }

  // string error_msg = 8;
  if (this->error_msg().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_error_msg().data(), static_cast<int>(this->_internal_error_msg().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.QueryFTPReply.error_msg");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_error_msg(), 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:MatrixAi.QueryFTPReply)
  return target;
}

size_t QueryFTPReply::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MatrixAi.QueryFTPReply)
  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;

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

  // string password = 3;
  if (this->password().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_password());
  }

  // string ip = 4;
  if (this->ip().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_ip());
  }

  // string image_path = 6;
  if (this->image_path().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_image_path());
  }

  // string error_msg = 8;
  if (this->error_msg().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_error_msg());
  }

  // uint32 open = 1;
  if (this->open() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_open());
  }

  // uint32 port = 5;
  if (this->port() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_port());
  }

  // uint32 quit_time = 7;
  if (this->quit_time() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_quit_time());
  }

  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 QueryFTPReply::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:MatrixAi.QueryFTPReply)
  GOOGLE_DCHECK_NE(&from, this);
  const QueryFTPReply* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<QueryFTPReply>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:MatrixAi.QueryFTPReply)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:MatrixAi.QueryFTPReply)
    MergeFrom(*source);
  }
}

void QueryFTPReply::MergeFrom(const QueryFTPReply& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MatrixAi.QueryFTPReply)
  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.username().size() > 0) {
    _internal_set_username(from._internal_username());
  }
  if (from.password().size() > 0) {
    _internal_set_password(from._internal_password());
  }
  if (from.ip().size() > 0) {
    _internal_set_ip(from._internal_ip());
  }
  if (from.image_path().size() > 0) {
    _internal_set_image_path(from._internal_image_path());
  }
  if (from.error_msg().size() > 0) {
    _internal_set_error_msg(from._internal_error_msg());
  }
  if (from.open() != 0) {
    _internal_set_open(from._internal_open());
  }
  if (from.port() != 0) {
    _internal_set_port(from._internal_port());
  }
  if (from.quit_time() != 0) {
    _internal_set_quit_time(from._internal_quit_time());
  }
}

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

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

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

void QueryFTPReply::InternalSwap(QueryFTPReply* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  username_.Swap(&other->username_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  password_.Swap(&other->password_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ip_.Swap(&other->ip_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  image_path_.Swap(&other->image_path_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  error_msg_.Swap(&other->error_msg_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(QueryFTPReply, quit_time_)
      + sizeof(QueryFTPReply::quit_time_)
      - PROTOBUF_FIELD_OFFSET(QueryFTPReply, open_)>(
          reinterpret_cast<char*>(&open_),
          reinterpret_cast<char*>(&other->open_));
}

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


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

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

UpdateFTPRequest::UpdateFTPRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:MatrixAi.UpdateFTPRequest)
}
UpdateFTPRequest::UpdateFTPRequest(const UpdateFTPRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  username_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_username().empty()) {
    username_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_username(),
      GetArena());
  }
  password_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_password().empty()) {
    password_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_password(),
      GetArena());
  }
  ip_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_ip().empty()) {
    ip_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_ip(),
      GetArena());
  }
  image_path_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_image_path().empty()) {
    image_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_image_path(),
      GetArena());
  }
  ::memcpy(&head_, &from.head_,
    static_cast<size_t>(reinterpret_cast<char*>(&quit_time_) -
    reinterpret_cast<char*>(&head_)) + sizeof(quit_time_));
  // @@protoc_insertion_point(copy_constructor:MatrixAi.UpdateFTPRequest)
}

void UpdateFTPRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UpdateFTPRequest_grpcservice_2eproto.base);
  username_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  password_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ip_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  image_path_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&head_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&quit_time_) -
      reinterpret_cast<char*>(&head_)) + sizeof(quit_time_));
}

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

void UpdateFTPRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  username_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  password_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ip_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  image_path_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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


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

  username_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  password_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ip_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  image_path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::memset(&head_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&quit_time_) -
      reinterpret_cast<char*>(&head_)) + sizeof(quit_time_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UpdateFTPRequest::_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) {
      // uint32 head = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          head_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 open = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          open_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string username = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_username();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.UpdateFTPRequest.username"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string password = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          auto str = _internal_mutable_password();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.UpdateFTPRequest.password"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string ip = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          auto str = _internal_mutable_ip();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.UpdateFTPRequest.ip"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 port = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          port_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string image_path = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          auto str = _internal_mutable_image_path();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.UpdateFTPRequest.image_path"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 quit_time = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          quit_time_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&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* UpdateFTPRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:MatrixAi.UpdateFTPRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 head = 1;
  if (this->head() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_head(), target);
  }

  // uint32 open = 2;
  if (this->open() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_open(), target);
  }

  // string username = 3;
  if (this->username().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_username().data(), static_cast<int>(this->_internal_username().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.UpdateFTPRequest.username");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_username(), target);
  }

  // string password = 4;
  if (this->password().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_password().data(), static_cast<int>(this->_internal_password().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.UpdateFTPRequest.password");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_password(), target);
  }

  // string ip = 5;
  if (this->ip().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_ip().data(), static_cast<int>(this->_internal_ip().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.UpdateFTPRequest.ip");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_ip(), target);
  }

  // uint32 port = 6;
  if (this->port() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(6, this->_internal_port(), target);
  }

  // string image_path = 7;
  if (this->image_path().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_image_path().data(), static_cast<int>(this->_internal_image_path().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.UpdateFTPRequest.image_path");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_image_path(), target);
  }

  // uint32 quit_time = 8;
  if (this->quit_time() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(8, this->_internal_quit_time(), 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:MatrixAi.UpdateFTPRequest)
  return target;
}

size_t UpdateFTPRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MatrixAi.UpdateFTPRequest)
  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;

  // string username = 3;
  if (this->username().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_username());
  }

  // string password = 4;
  if (this->password().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_password());
  }

  // string ip = 5;
  if (this->ip().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_ip());
  }

  // string image_path = 7;
  if (this->image_path().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_image_path());
  }

  // uint32 head = 1;
  if (this->head() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_head());
  }

  // uint32 open = 2;
  if (this->open() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_open());
  }

  // uint32 port = 6;
  if (this->port() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_port());
  }

  // uint32 quit_time = 8;
  if (this->quit_time() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_quit_time());
  }

  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 UpdateFTPRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:MatrixAi.UpdateFTPRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const UpdateFTPRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<UpdateFTPRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:MatrixAi.UpdateFTPRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:MatrixAi.UpdateFTPRequest)
    MergeFrom(*source);
  }
}

void UpdateFTPRequest::MergeFrom(const UpdateFTPRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MatrixAi.UpdateFTPRequest)
  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.username().size() > 0) {
    _internal_set_username(from._internal_username());
  }
  if (from.password().size() > 0) {
    _internal_set_password(from._internal_password());
  }
  if (from.ip().size() > 0) {
    _internal_set_ip(from._internal_ip());
  }
  if (from.image_path().size() > 0) {
    _internal_set_image_path(from._internal_image_path());
  }
  if (from.head() != 0) {
    _internal_set_head(from._internal_head());
  }
  if (from.open() != 0) {
    _internal_set_open(from._internal_open());
  }
  if (from.port() != 0) {
    _internal_set_port(from._internal_port());
  }
  if (from.quit_time() != 0) {
    _internal_set_quit_time(from._internal_quit_time());
  }
}

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

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

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

void UpdateFTPRequest::InternalSwap(UpdateFTPRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  username_.Swap(&other->username_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  password_.Swap(&other->password_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ip_.Swap(&other->ip_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  image_path_.Swap(&other->image_path_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(UpdateFTPRequest, quit_time_)
      + sizeof(UpdateFTPRequest::quit_time_)
      - PROTOBUF_FIELD_OFFSET(UpdateFTPRequest, head_)>(
          reinterpret_cast<char*>(&head_),
          reinterpret_cast<char*>(&other->head_));
}

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


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

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

UpdateFTPReply::UpdateFTPReply(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:MatrixAi.UpdateFTPReply)
}
UpdateFTPReply::UpdateFTPReply(const UpdateFTPReply& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  error_msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_error_msg().empty()) {
    error_msg_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_error_msg(),
      GetArena());
  }
  // @@protoc_insertion_point(copy_constructor:MatrixAi.UpdateFTPReply)
}

void UpdateFTPReply::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UpdateFTPReply_grpcservice_2eproto.base);
  error_msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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

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

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


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

  error_msg_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UpdateFTPReply::_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) {
      // string error_msg = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          auto str = _internal_mutable_error_msg();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MatrixAi.UpdateFTPReply.error_msg"));
          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* UpdateFTPReply::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:MatrixAi.UpdateFTPReply)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string error_msg = 1;
  if (this->error_msg().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_error_msg().data(), static_cast<int>(this->_internal_error_msg().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "MatrixAi.UpdateFTPReply.error_msg");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_error_msg(), 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:MatrixAi.UpdateFTPReply)
  return target;
}

size_t UpdateFTPReply::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:MatrixAi.UpdateFTPReply)
  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;

  // string error_msg = 1;
  if (this->error_msg().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_error_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 UpdateFTPReply::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:MatrixAi.UpdateFTPReply)
  GOOGLE_DCHECK_NE(&from, this);
  const UpdateFTPReply* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<UpdateFTPReply>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:MatrixAi.UpdateFTPReply)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:MatrixAi.UpdateFTPReply)
    MergeFrom(*source);
  }
}

void UpdateFTPReply::MergeFrom(const UpdateFTPReply& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:MatrixAi.UpdateFTPReply)
  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.error_msg().size() > 0) {
    _internal_set_error_msg(from._internal_error_msg());
  }
}

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)
}  // namespace MatrixAi
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::MatrixAi::Request* Arena::CreateMaybeMessage< ::MatrixAi::Request >(Arena* arena) {
  return Arena::CreateMessageInternal< ::MatrixAi::Request >(arena);
}
template<> PROTOBUF_NOINLINE ::MatrixAi::Reply* Arena::CreateMaybeMessage< ::MatrixAi::Reply >(Arena* arena) {
  return Arena::CreateMessageInternal< ::MatrixAi::Reply >(arena);
}
template<> PROTOBUF_NOINLINE ::MatrixAi::QueryWorkstationRequest* Arena::CreateMaybeMessage< ::MatrixAi::QueryWorkstationRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::MatrixAi::QueryWorkstationRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::MatrixAi::QueryWorkstationReply* Arena::CreateMaybeMessage< ::MatrixAi::QueryWorkstationReply >(Arena* arena) {
  return Arena::CreateMessageInternal< ::MatrixAi::QueryWorkstationReply >(arena);
}
template<> PROTOBUF_NOINLINE ::MatrixAi::UpdateWorkstationRequest* Arena::CreateMaybeMessage< ::MatrixAi::UpdateWorkstationRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::MatrixAi::UpdateWorkstationRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::MatrixAi::UpdateWorkstationReply* Arena::CreateMaybeMessage< ::MatrixAi::UpdateWorkstationReply >(Arena* arena) {
  return Arena::CreateMessageInternal< ::MatrixAi::UpdateWorkstationReply >(arena);
}
template<> PROTOBUF_NOINLINE ::MatrixAi::QueryCameraRequest* Arena::CreateMaybeMessage< ::MatrixAi::QueryCameraRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::MatrixAi::QueryCameraRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::MatrixAi::QueryCameraReply* Arena::CreateMaybeMessage< ::MatrixAi::QueryCameraReply >(Arena* arena) {
  return Arena::CreateMessageInternal< ::MatrixAi::QueryCameraReply >(arena);
}
template<> PROTOBUF_NOINLINE ::MatrixAi::UpdateCameraRequest* Arena::CreateMaybeMessage< ::MatrixAi::UpdateCameraRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::MatrixAi::UpdateCameraRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::MatrixAi::UpdateCameraReply* Arena::CreateMaybeMessage< ::MatrixAi::UpdateCameraReply >(Arena* arena) {
  return Arena::CreateMessageInternal< ::MatrixAi::UpdateCameraReply >(arena);
}
template<> PROTOBUF_NOINLINE ::MatrixAi::QueryFTPRequest* Arena::CreateMaybeMessage< ::MatrixAi::QueryFTPRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::MatrixAi::QueryFTPRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::MatrixAi::QueryFTPReply* Arena::CreateMaybeMessage< ::MatrixAi::QueryFTPReply >(Arena* arena) {
  return Arena::CreateMessageInternal< ::MatrixAi::QueryFTPReply >(arena);
}
template<> PROTOBUF_NOINLINE ::MatrixAi::UpdateFTPRequest* Arena::CreateMaybeMessage< ::MatrixAi::UpdateFTPRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::MatrixAi::UpdateFTPRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::MatrixAi::UpdateFTPReply* Arena::CreateMaybeMessage< ::MatrixAi::UpdateFTPReply >(Arena* arena) {
  return Arena::CreateMessageInternal< ::MatrixAi::UpdateFTPReply >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

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