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

#include "messages.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AccelData_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ActionResult_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Animation_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AnimationTrigger_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AttentionTransfer_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CladPoint_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CladRect_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CubeBattery_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ExternalAudioStreamBufferOverrun_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ExternalAudioStreamCancel_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ExternalAudioStreamChunk_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ExternalAudioStreamComplete_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ExternalAudioStreamPlaybackComplete_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ExternalAudioStreamPlaybackFailure_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ExternalAudioStreamPrepare_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_FaceEnrollmentCompleted_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_FeatureStatus_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_GyroData_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_LatestAttentionTransfer_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LoadedKnownFace_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_MeetVictorFaceScanComplete_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_MeetVictorFaceScanStarted_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Onboarding1p0ChargingInfo_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingChargeInfoRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_OnboardingChargeInfoResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingCompleteRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingCompleteResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingMarkCompleteAndExit_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingPhaseProgressRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_OnboardingPhaseProgressResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingRestart_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingSetPhaseRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_OnboardingSetPhaseResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingSkipOnboarding_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingState_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingWakeUpFinished_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingWakeUpRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_OnboardingWakeUpResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingWakeUpStartedRequest_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_OnboardingWakeUpStartedResponse_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PathMotionProfile_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PhotoInfo_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PoseStruct_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ProxData_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_response_5fstatus_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ResponseStatus_response_5fstatus_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<4> scc_info_Status_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_TimeStampedStatus_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_TouchData_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_WakeWordBegin_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_WakeWordEnd_messages_2eproto;
namespace Anki {
namespace Vector {
namespace external_interface {
class KeepAlivePingDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<KeepAlivePing> _instance;
} _KeepAlivePing_default_instance_;
class AnimationTriggerDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AnimationTrigger> _instance;
} _AnimationTrigger_default_instance_;
class AnimationDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Animation> _instance;
} _Animation_default_instance_;
class DriveWheelsRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DriveWheelsRequest> _instance;
} _DriveWheelsRequest_default_instance_;
class DriveWheelsResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DriveWheelsResponse> _instance;
} _DriveWheelsResponse_default_instance_;
class MoveHeadRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MoveHeadRequest> _instance;
} _MoveHeadRequest_default_instance_;
class MoveHeadResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MoveHeadResponse> _instance;
} _MoveHeadResponse_default_instance_;
class MoveLiftRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MoveLiftRequest> _instance;
} _MoveLiftRequest_default_instance_;
class MoveLiftResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MoveLiftResponse> _instance;
} _MoveLiftResponse_default_instance_;
class StopAllMotorsRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<StopAllMotorsRequest> _instance;
} _StopAllMotorsRequest_default_instance_;
class StopAllMotorsResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<StopAllMotorsResponse> _instance;
} _StopAllMotorsResponse_default_instance_;
class PlayAnimationTriggerRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PlayAnimationTriggerRequest> _instance;
} _PlayAnimationTriggerRequest_default_instance_;
class PlayAnimationRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PlayAnimationRequest> _instance;
} _PlayAnimationRequest_default_instance_;
class PlayAnimationResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PlayAnimationResponse> _instance;
} _PlayAnimationResponse_default_instance_;
class ListAnimationsRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ListAnimationsRequest> _instance;
} _ListAnimationsRequest_default_instance_;
class ListAnimationsResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ListAnimationsResponse> _instance;
} _ListAnimationsResponse_default_instance_;
class ListAnimationTriggersRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ListAnimationTriggersRequest> _instance;
} _ListAnimationTriggersRequest_default_instance_;
class ListAnimationTriggersResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ListAnimationTriggersResponse> _instance;
} _ListAnimationTriggersResponse_default_instance_;
class DisplayFaceImageRGBRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DisplayFaceImageRGBRequest> _instance;
} _DisplayFaceImageRGBRequest_default_instance_;
class DisplayFaceImageRGBResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DisplayFaceImageRGBResponse> _instance;
} _DisplayFaceImageRGBResponse_default_instance_;
class MeetVictorFaceScanStartedDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MeetVictorFaceScanStarted> _instance;
} _MeetVictorFaceScanStarted_default_instance_;
class MeetVictorFaceScanCompleteDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MeetVictorFaceScanComplete> _instance;
} _MeetVictorFaceScanComplete_default_instance_;
class StatusDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Status> _instance;
  const ::Anki::Vector::external_interface::FeatureStatus* feature_status_;
  const ::Anki::Vector::external_interface::MeetVictorFaceScanStarted* meet_victor_face_scan_started_;
  const ::Anki::Vector::external_interface::MeetVictorFaceScanComplete* meet_victor_face_scan_complete_;
  const ::Anki::Vector::external_interface::FaceEnrollmentCompleted* face_enrollment_completed_;
} _Status_default_instance_;
class WakeWordDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<WakeWord> _instance;
  const ::Anki::Vector::external_interface::WakeWordBegin* wake_word_begin_;
  const ::Anki::Vector::external_interface::WakeWordEnd* wake_word_end_;
} _WakeWord_default_instance_;
class TimeStampedStatusDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<TimeStampedStatus> _instance;
} _TimeStampedStatus_default_instance_;
class PoseStructDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PoseStruct> _instance;
} _PoseStruct_default_instance_;
class AccelDataDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AccelData> _instance;
} _AccelData_default_instance_;
class GyroDataDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<GyroData> _instance;
} _GyroData_default_instance_;
class ProxDataDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ProxData> _instance;
} _ProxData_default_instance_;
class TouchDataDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<TouchData> _instance;
} _TouchData_default_instance_;
class RobotStateDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RobotState> _instance;
} _RobotState_default_instance_;
class CladPointDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CladPoint> _instance;
} _CladPoint_default_instance_;
class CladRectDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CladRect> _instance;
} _CladRect_default_instance_;
class RobotObservedMotionDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RobotObservedMotion> _instance;
} _RobotObservedMotion_default_instance_;
class RobotErasedEnrolledFaceDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RobotErasedEnrolledFace> _instance;
} _RobotErasedEnrolledFace_default_instance_;
class UnexpectedMovementDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UnexpectedMovement> _instance;
} _UnexpectedMovement_default_instance_;
class RobotObservedFaceDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RobotObservedFace> _instance;
} _RobotObservedFace_default_instance_;
class RobotChangedObservedFaceIDDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RobotChangedObservedFaceID> _instance;
} _RobotChangedObservedFaceID_default_instance_;
class FaceEnrollmentCompletedDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<FaceEnrollmentCompleted> _instance;
} _FaceEnrollmentCompleted_default_instance_;
class CancelFaceEnrollmentRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CancelFaceEnrollmentRequest> _instance;
} _CancelFaceEnrollmentRequest_default_instance_;
class CancelFaceEnrollmentResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CancelFaceEnrollmentResponse> _instance;
} _CancelFaceEnrollmentResponse_default_instance_;
class RequestEnrolledNamesRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RequestEnrolledNamesRequest> _instance;
} _RequestEnrolledNamesRequest_default_instance_;
class LoadedKnownFaceDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LoadedKnownFace> _instance;
} _LoadedKnownFace_default_instance_;
class RobotRenamedEnrolledFaceDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RobotRenamedEnrolledFace> _instance;
} _RobotRenamedEnrolledFace_default_instance_;
class RequestEnrolledNamesResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RequestEnrolledNamesResponse> _instance;
} _RequestEnrolledNamesResponse_default_instance_;
class UpdateEnrolledFaceByIDRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateEnrolledFaceByIDRequest> _instance;
} _UpdateEnrolledFaceByIDRequest_default_instance_;
class UpdateEnrolledFaceByIDResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateEnrolledFaceByIDResponse> _instance;
} _UpdateEnrolledFaceByIDResponse_default_instance_;
class EraseEnrolledFaceByIDRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EraseEnrolledFaceByIDRequest> _instance;
} _EraseEnrolledFaceByIDRequest_default_instance_;
class EraseEnrolledFaceByIDResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EraseEnrolledFaceByIDResponse> _instance;
} _EraseEnrolledFaceByIDResponse_default_instance_;
class EraseAllEnrolledFacesRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EraseAllEnrolledFacesRequest> _instance;
} _EraseAllEnrolledFacesRequest_default_instance_;
class EraseAllEnrolledFacesResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EraseAllEnrolledFacesResponse> _instance;
} _EraseAllEnrolledFacesResponse_default_instance_;
class SetFaceToEnrollRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SetFaceToEnrollRequest> _instance;
} _SetFaceToEnrollRequest_default_instance_;
class SetFaceToEnrollResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SetFaceToEnrollResponse> _instance;
} _SetFaceToEnrollResponse_default_instance_;
class EnrollFaceRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EnrollFaceRequest> _instance;
} _EnrollFaceRequest_default_instance_;
class EnrollFaceResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EnrollFaceResponse> _instance;
} _EnrollFaceResponse_default_instance_;
class DriveOffChargerRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DriveOffChargerRequest> _instance;
} _DriveOffChargerRequest_default_instance_;
class DriveOffChargerResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DriveOffChargerResponse> _instance;
} _DriveOffChargerResponse_default_instance_;
class DriveOnChargerRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DriveOnChargerRequest> _instance;
} _DriveOnChargerRequest_default_instance_;
class DriveOnChargerResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DriveOnChargerResponse> _instance;
} _DriveOnChargerResponse_default_instance_;
class FindFacesRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<FindFacesRequest> _instance;
} _FindFacesRequest_default_instance_;
class FindFacesResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<FindFacesResponse> _instance;
} _FindFacesResponse_default_instance_;
class LookAroundInPlaceRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LookAroundInPlaceRequest> _instance;
} _LookAroundInPlaceRequest_default_instance_;
class LookAroundInPlaceResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LookAroundInPlaceResponse> _instance;
} _LookAroundInPlaceResponse_default_instance_;
class RollBlockRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RollBlockRequest> _instance;
} _RollBlockRequest_default_instance_;
class RollBlockResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RollBlockResponse> _instance;
} _RollBlockResponse_default_instance_;
class WakeWordBeginDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<WakeWordBegin> _instance;
} _WakeWordBegin_default_instance_;
class WakeWordEndDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<WakeWordEnd> _instance;
} _WakeWordEnd_default_instance_;
class UserIntentDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UserIntent> _instance;
} _UserIntent_default_instance_;
class PhotoInfoDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PhotoInfo> _instance;
} _PhotoInfo_default_instance_;
class PhotosInfoRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PhotosInfoRequest> _instance;
} _PhotosInfoRequest_default_instance_;
class PhotosInfoResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PhotosInfoResponse> _instance;
} _PhotosInfoResponse_default_instance_;
class PhotoRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PhotoRequest> _instance;
} _PhotoRequest_default_instance_;
class PhotoPathMessageDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PhotoPathMessage> _instance;
} _PhotoPathMessage_default_instance_;
class PhotoResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PhotoResponse> _instance;
} _PhotoResponse_default_instance_;
class ThumbnailRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ThumbnailRequest> _instance;
} _ThumbnailRequest_default_instance_;
class ThumbnailPathMessageDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ThumbnailPathMessage> _instance;
} _ThumbnailPathMessage_default_instance_;
class ThumbnailResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ThumbnailResponse> _instance;
} _ThumbnailResponse_default_instance_;
class DeletePhotoRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DeletePhotoRequest> _instance;
} _DeletePhotoRequest_default_instance_;
class DeletePhotoResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DeletePhotoResponse> _instance;
} _DeletePhotoResponse_default_instance_;
class PhotoTakenDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PhotoTaken> _instance;
} _PhotoTaken_default_instance_;
class PathMotionProfileDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PathMotionProfile> _instance;
} _PathMotionProfile_default_instance_;
class ActionResultDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ActionResult> _instance;
} _ActionResult_default_instance_;
class CancelActionByIdTagRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CancelActionByIdTagRequest> _instance;
} _CancelActionByIdTagRequest_default_instance_;
class CancelActionByIdTagResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CancelActionByIdTagResponse> _instance;
} _CancelActionByIdTagResponse_default_instance_;
class CancelBehaviorRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CancelBehaviorRequest> _instance;
} _CancelBehaviorRequest_default_instance_;
class CancelBehaviorResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CancelBehaviorResponse> _instance;
} _CancelBehaviorResponse_default_instance_;
class GoToPoseRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<GoToPoseRequest> _instance;
} _GoToPoseRequest_default_instance_;
class GoToPoseResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<GoToPoseResponse> _instance;
} _GoToPoseResponse_default_instance_;
class DockWithCubeRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DockWithCubeRequest> _instance;
} _DockWithCubeRequest_default_instance_;
class DockWithCubeResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DockWithCubeResponse> _instance;
} _DockWithCubeResponse_default_instance_;
class DriveStraightRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DriveStraightRequest> _instance;
} _DriveStraightRequest_default_instance_;
class DriveStraightResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DriveStraightResponse> _instance;
} _DriveStraightResponse_default_instance_;
class TurnInPlaceRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<TurnInPlaceRequest> _instance;
} _TurnInPlaceRequest_default_instance_;
class TurnInPlaceResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<TurnInPlaceResponse> _instance;
} _TurnInPlaceResponse_default_instance_;
class SetHeadAngleRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SetHeadAngleRequest> _instance;
} _SetHeadAngleRequest_default_instance_;
class SetHeadAngleResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SetHeadAngleResponse> _instance;
} _SetHeadAngleResponse_default_instance_;
class SetLiftHeightRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SetLiftHeightRequest> _instance;
} _SetLiftHeightRequest_default_instance_;
class SetLiftHeightResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SetLiftHeightResponse> _instance;
} _SetLiftHeightResponse_default_instance_;
class TurnTowardsFaceRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<TurnTowardsFaceRequest> _instance;
} _TurnTowardsFaceRequest_default_instance_;
class TurnTowardsFaceResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<TurnTowardsFaceResponse> _instance;
} _TurnTowardsFaceResponse_default_instance_;
class GoToObjectRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<GoToObjectRequest> _instance;
} _GoToObjectRequest_default_instance_;
class GoToObjectResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<GoToObjectResponse> _instance;
} _GoToObjectResponse_default_instance_;
class RollObjectRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RollObjectRequest> _instance;
} _RollObjectRequest_default_instance_;
class RollObjectResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RollObjectResponse> _instance;
} _RollObjectResponse_default_instance_;
class PopAWheelieRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PopAWheelieRequest> _instance;
} _PopAWheelieRequest_default_instance_;
class PopAWheelieResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PopAWheelieResponse> _instance;
} _PopAWheelieResponse_default_instance_;
class PickupObjectRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PickupObjectRequest> _instance;
} _PickupObjectRequest_default_instance_;
class PickupObjectResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PickupObjectResponse> _instance;
} _PickupObjectResponse_default_instance_;
class PlaceObjectOnGroundHereRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PlaceObjectOnGroundHereRequest> _instance;
} _PlaceObjectOnGroundHereRequest_default_instance_;
class PlaceObjectOnGroundHereResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PlaceObjectOnGroundHereResponse> _instance;
} _PlaceObjectOnGroundHereResponse_default_instance_;
class BatteryStateRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BatteryStateRequest> _instance;
} _BatteryStateRequest_default_instance_;
class BatteryStateResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BatteryStateResponse> _instance;
} _BatteryStateResponse_default_instance_;
class CubeBatteryDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CubeBattery> _instance;
} _CubeBattery_default_instance_;
class VersionStateRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<VersionStateRequest> _instance;
} _VersionStateRequest_default_instance_;
class VersionStateResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<VersionStateResponse> _instance;
} _VersionStateResponse_default_instance_;
class SayTextRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SayTextRequest> _instance;
} _SayTextRequest_default_instance_;
class SayTextResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SayTextResponse> _instance;
} _SayTextResponse_default_instance_;
class StimulationInfoDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<StimulationInfo> _instance;
} _StimulationInfo_default_instance_;
class AudioSendModeRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AudioSendModeRequest> _instance;
} _AudioSendModeRequest_default_instance_;
class AudioSendModeChangedDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AudioSendModeChanged> _instance;
} _AudioSendModeChanged_default_instance_;
class AudioChunkDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AudioChunk> _instance;
} _AudioChunk_default_instance_;
class AudioFeedRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AudioFeedRequest> _instance;
} _AudioFeedRequest_default_instance_;
class AudioFeedResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AudioFeedResponse> _instance;
} _AudioFeedResponse_default_instance_;
class ExternalAudioStreamPrepareDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ExternalAudioStreamPrepare> _instance;
} _ExternalAudioStreamPrepare_default_instance_;
class ExternalAudioStreamChunkDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ExternalAudioStreamChunk> _instance;
} _ExternalAudioStreamChunk_default_instance_;
class ExternalAudioStreamCompleteDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ExternalAudioStreamComplete> _instance;
} _ExternalAudioStreamComplete_default_instance_;
class ExternalAudioStreamCancelDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ExternalAudioStreamCancel> _instance;
} _ExternalAudioStreamCancel_default_instance_;
class ExternalAudioStreamRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ExternalAudioStreamRequest> _instance;
  const ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* audio_stream_prepare_;
  const ::Anki::Vector::external_interface::ExternalAudioStreamChunk* audio_stream_chunk_;
  const ::Anki::Vector::external_interface::ExternalAudioStreamComplete* audio_stream_complete_;
  const ::Anki::Vector::external_interface::ExternalAudioStreamCancel* audio_stream_cancel_;
} _ExternalAudioStreamRequest_default_instance_;
class ExternalAudioStreamPlaybackCompleteDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ExternalAudioStreamPlaybackComplete> _instance;
} _ExternalAudioStreamPlaybackComplete_default_instance_;
class ExternalAudioStreamPlaybackFailureDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ExternalAudioStreamPlaybackFailure> _instance;
} _ExternalAudioStreamPlaybackFailure_default_instance_;
class ExternalAudioStreamBufferOverrunDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ExternalAudioStreamBufferOverrun> _instance;
} _ExternalAudioStreamBufferOverrun_default_instance_;
class ExternalAudioStreamResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ExternalAudioStreamResponse> _instance;
  const ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* audio_stream_playback_complete_;
  const ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* audio_stream_buffer_overrun_;
  const ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* audio_stream_playback_failyer_;
} _ExternalAudioStreamResponse_default_instance_;
class MasterVolumeRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MasterVolumeRequest> _instance;
} _MasterVolumeRequest_default_instance_;
class MasterVolumeResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MasterVolumeResponse> _instance;
} _MasterVolumeResponse_default_instance_;
class EnableMarkerDetectionRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EnableMarkerDetectionRequest> _instance;
} _EnableMarkerDetectionRequest_default_instance_;
class EnableMarkerDetectionResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EnableMarkerDetectionResponse> _instance;
} _EnableMarkerDetectionResponse_default_instance_;
class EnableFaceDetectionRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EnableFaceDetectionRequest> _instance;
} _EnableFaceDetectionRequest_default_instance_;
class EnableFaceDetectionResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EnableFaceDetectionResponse> _instance;
} _EnableFaceDetectionResponse_default_instance_;
class EnableMotionDetectionRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EnableMotionDetectionRequest> _instance;
} _EnableMotionDetectionRequest_default_instance_;
class EnableMotionDetectionResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EnableMotionDetectionResponse> _instance;
} _EnableMotionDetectionResponse_default_instance_;
class EnableMirrorModeRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EnableMirrorModeRequest> _instance;
} _EnableMirrorModeRequest_default_instance_;
class EnableMirrorModeResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EnableMirrorModeResponse> _instance;
} _EnableMirrorModeResponse_default_instance_;
class MirrorModeDisabledDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MirrorModeDisabled> _instance;
} _MirrorModeDisabled_default_instance_;
class EnableImageStreamingRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EnableImageStreamingRequest> _instance;
} _EnableImageStreamingRequest_default_instance_;
class EnableImageStreamingResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<EnableImageStreamingResponse> _instance;
} _EnableImageStreamingResponse_default_instance_;
class IsImageStreamingEnabledRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<IsImageStreamingEnabledRequest> _instance;
} _IsImageStreamingEnabledRequest_default_instance_;
class IsImageStreamingEnabledResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<IsImageStreamingEnabledResponse> _instance;
} _IsImageStreamingEnabledResponse_default_instance_;
class VisionModesAutoDisabledDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<VisionModesAutoDisabled> _instance;
} _VisionModesAutoDisabled_default_instance_;
class ImageChunkDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ImageChunk> _instance;
} _ImageChunk_default_instance_;
class CameraFeedRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CameraFeedRequest> _instance;
} _CameraFeedRequest_default_instance_;
class CameraFeedResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CameraFeedResponse> _instance;
} _CameraFeedResponse_default_instance_;
class CaptureSingleImageRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CaptureSingleImageRequest> _instance;
} _CaptureSingleImageRequest_default_instance_;
class CaptureSingleImageResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CaptureSingleImageResponse> _instance;
} _CaptureSingleImageResponse_default_instance_;
class SetEyeColorRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SetEyeColorRequest> _instance;
} _SetEyeColorRequest_default_instance_;
class SetEyeColorResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SetEyeColorResponse> _instance;
} _SetEyeColorResponse_default_instance_;
class CameraConfigRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CameraConfigRequest> _instance;
} _CameraConfigRequest_default_instance_;
class CameraConfigResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CameraConfigResponse> _instance;
} _CameraConfigResponse_default_instance_;
class SetCameraSettingsRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SetCameraSettingsRequest> _instance;
} _SetCameraSettingsRequest_default_instance_;
class SetCameraSettingsResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SetCameraSettingsResponse> _instance;
} _SetCameraSettingsResponse_default_instance_;
class CameraSettingsUpdateDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CameraSettingsUpdate> _instance;
} _CameraSettingsUpdate_default_instance_;
class SDKInitializationRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SDKInitializationRequest> _instance;
} _SDKInitializationRequest_default_instance_;
class SDKInitializationResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SDKInitializationResponse> _instance;
} _SDKInitializationResponse_default_instance_;
class AppDisconnectedDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AppDisconnected> _instance;
} _AppDisconnected_default_instance_;
class AppIntentRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AppIntentRequest> _instance;
} _AppIntentRequest_default_instance_;
class AppIntentResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AppIntentResponse> _instance;
} _AppIntentResponse_default_instance_;
class FeatureStatusDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<FeatureStatus> _instance;
} _FeatureStatus_default_instance_;
class OnboardingDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Onboarding> _instance;
  const ::Anki::Vector::external_interface::OnboardingState* onboarding_state_;
  const ::Anki::Vector::external_interface::OnboardingWakeUpFinished* onboarding_wake_up_finished_;
  const ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* onboarding_1p0_charging_info_;
} _Onboarding_default_instance_;
class RobotHistoryRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RobotHistoryRequest> _instance;
} _RobotHistoryRequest_default_instance_;
class RobotHistoryResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RobotHistoryResponse> _instance;
} _RobotHistoryResponse_default_instance_;
class OnboardingStateDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingState> _instance;
} _OnboardingState_default_instance_;
class OnboardingStateRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingStateRequest> _instance;
} _OnboardingStateRequest_default_instance_;
class OnboardingStateResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingStateResponse> _instance;
} _OnboardingStateResponse_default_instance_;
class OnboardingSetPhaseRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingSetPhaseRequest> _instance;
} _OnboardingSetPhaseRequest_default_instance_;
class OnboardingSetPhaseResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingSetPhaseResponse> _instance;
} _OnboardingSetPhaseResponse_default_instance_;
class OnboardingPhaseProgressRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingPhaseProgressRequest> _instance;
} _OnboardingPhaseProgressRequest_default_instance_;
class OnboardingPhaseProgressResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingPhaseProgressResponse> _instance;
} _OnboardingPhaseProgressResponse_default_instance_;
class OnboardingChargeInfoRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingChargeInfoRequest> _instance;
} _OnboardingChargeInfoRequest_default_instance_;
class OnboardingChargeInfoResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingChargeInfoResponse> _instance;
} _OnboardingChargeInfoResponse_default_instance_;
class OnboardingSkipOnboardingDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingSkipOnboarding> _instance;
} _OnboardingSkipOnboarding_default_instance_;
class OnboardingRestartDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingRestart> _instance;
} _OnboardingRestart_default_instance_;
class OnboardingMarkCompleteAndExitDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingMarkCompleteAndExit> _instance;
} _OnboardingMarkCompleteAndExit_default_instance_;
class OnboardingInputRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingInputRequest> _instance;
  const ::Anki::Vector::external_interface::OnboardingCompleteRequest* onboarding_complete_request_;
  const ::Anki::Vector::external_interface::OnboardingWakeUpRequest* onboarding_wake_up_request_;
  const ::Anki::Vector::external_interface::OnboardingSkipOnboarding* onboarding_skip_onboarding_;
  const ::Anki::Vector::external_interface::OnboardingRestart* onboarding_restart_;
  const ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* onboarding_wake_up_started_request_;
  const ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* onboarding_set_phase_request_;
  const ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* onboarding_phase_progress_request_;
  const ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* onboarding_charge_info_request_;
  const ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* onboarding_mark_complete_and_exit_;
} _OnboardingInputRequest_default_instance_;
class OnboardingInputResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingInputResponse> _instance;
  const ::Anki::Vector::external_interface::OnboardingCompleteResponse* onboarding_complete_response_;
  const ::Anki::Vector::external_interface::OnboardingWakeUpResponse* onboarding_wake_up_response_;
  const ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* onboarding_wake_up_started_response_;
  const ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* onboarding_set_phase_response_;
  const ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* onboarding_phase_progress_response_;
  const ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* onboarding_charge_info_response_;
} _OnboardingInputResponse_default_instance_;
class OnboardingCompleteRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingCompleteRequest> _instance;
} _OnboardingCompleteRequest_default_instance_;
class OnboardingCompleteResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingCompleteResponse> _instance;
} _OnboardingCompleteResponse_default_instance_;
class OnboardingWakeUpStartedRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingWakeUpStartedRequest> _instance;
} _OnboardingWakeUpStartedRequest_default_instance_;
class OnboardingWakeUpStartedResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingWakeUpStartedResponse> _instance;
} _OnboardingWakeUpStartedResponse_default_instance_;
class OnboardingWakeUpRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingWakeUpRequest> _instance;
} _OnboardingWakeUpRequest_default_instance_;
class OnboardingWakeUpResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingWakeUpResponse> _instance;
} _OnboardingWakeUpResponse_default_instance_;
class Onboarding1p0ChargingInfoDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Onboarding1p0ChargingInfo> _instance;
} _Onboarding1p0ChargingInfo_default_instance_;
class OnboardingWakeUpFinishedDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<OnboardingWakeUpFinished> _instance;
} _OnboardingWakeUpFinished_default_instance_;
class FeatureFlagRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<FeatureFlagRequest> _instance;
} _FeatureFlagRequest_default_instance_;
class FeatureFlagResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<FeatureFlagResponse> _instance;
} _FeatureFlagResponse_default_instance_;
class FeatureFlagListRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<FeatureFlagListRequest> _instance;
} _FeatureFlagListRequest_default_instance_;
class FeatureFlagListResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<FeatureFlagListResponse> _instance;
} _FeatureFlagListResponse_default_instance_;
class AttentionTransferDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AttentionTransfer> _instance;
} _AttentionTransfer_default_instance_;
class LatestAttentionTransferRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LatestAttentionTransferRequest> _instance;
} _LatestAttentionTransferRequest_default_instance_;
class LatestAttentionTransferDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LatestAttentionTransfer> _instance;
  const ::Anki::Vector::external_interface::AttentionTransfer* attention_transfer_;
} _LatestAttentionTransfer_default_instance_;
class LatestAttentionTransferResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LatestAttentionTransferResponse> _instance;
} _LatestAttentionTransferResponse_default_instance_;
class UpdateAndRestartRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateAndRestartRequest> _instance;
} _UpdateAndRestartRequest_default_instance_;
class UpdateAndRestartResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UpdateAndRestartResponse> _instance;
} _UpdateAndRestartResponse_default_instance_;
class CheckUpdateStatusRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CheckUpdateStatusRequest> _instance;
} _CheckUpdateStatusRequest_default_instance_;
class CheckUpdateStatusResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CheckUpdateStatusResponse> _instance;
} _CheckUpdateStatusResponse_default_instance_;
class UploadDebugLogsRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UploadDebugLogsRequest> _instance;
} _UploadDebugLogsRequest_default_instance_;
class UploadDebugLogsResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<UploadDebugLogsResponse> _instance;
} _UploadDebugLogsResponse_default_instance_;
class CheckCloudRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CheckCloudRequest> _instance;
} _CheckCloudRequest_default_instance_;
class CheckCloudResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CheckCloudResponse> _instance;
} _CheckCloudResponse_default_instance_;
class _FakeAlexaUsageDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<_FakeAlexaUsage> _instance;
} __FakeAlexaUsage_default_instance_;
}  // namespace external_interface
}  // namespace Vector
}  // namespace Anki
static void InitDefaultsscc_info_AccelData_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AccelData_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AccelData();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AccelData::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ActionResult_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ActionResult_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ActionResult();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ActionResult::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_Animation_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_Animation_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::Animation();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::Animation::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_AnimationTrigger_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AnimationTrigger_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AnimationTrigger();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AnimationTrigger::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_AppDisconnected_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AppDisconnected_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AppDisconnected();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AppDisconnected::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_AppIntentRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AppIntentRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AppIntentRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AppIntentRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_AppIntentResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AppIntentResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AppIntentResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AppIntentResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_AppIntentResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_AppIntentResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_AttentionTransfer_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AttentionTransfer_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AttentionTransfer();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AttentionTransfer::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_AudioChunk_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AudioChunk_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AudioChunk();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AudioChunk::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_AudioFeedRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AudioFeedRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AudioFeedRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AudioFeedRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_AudioFeedResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AudioFeedResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AudioFeedResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AudioFeedResponse::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_AudioSendModeChanged_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AudioSendModeChanged_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AudioSendModeChanged();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AudioSendModeChanged::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_AudioSendModeRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_AudioSendModeRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::AudioSendModeRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::AudioSendModeRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_BatteryStateRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_BatteryStateRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::BatteryStateRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::BatteryStateRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_BatteryStateResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_BatteryStateResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::BatteryStateResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::BatteryStateResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_BatteryStateResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_BatteryStateResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_CubeBattery_messages_2eproto.base,}};

static void InitDefaultsscc_info_CameraConfigRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CameraConfigRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CameraConfigRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CameraConfigRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CameraConfigResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CameraConfigResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CameraConfigResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CameraConfigResponse::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CameraFeedRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CameraFeedRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CameraFeedRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CameraFeedRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CameraFeedResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CameraFeedResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CameraFeedResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CameraFeedResponse::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CameraSettingsUpdate_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CameraSettingsUpdate_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CameraSettingsUpdate();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CameraSettingsUpdate::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CancelActionByIdTagRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CancelActionByIdTagRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CancelActionByIdTagRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CancelActionByIdTagRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CancelActionByIdTagResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CancelActionByIdTagResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CancelActionByIdTagResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CancelActionByIdTagResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CancelActionByIdTagResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_CancelActionByIdTagResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_CancelBehaviorRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CancelBehaviorRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CancelBehaviorRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CancelBehaviorRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CancelBehaviorResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CancelBehaviorResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CancelBehaviorResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CancelBehaviorResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CancelBehaviorResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_CancelBehaviorResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_CancelFaceEnrollmentRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CancelFaceEnrollmentRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CancelFaceEnrollmentRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CancelFaceEnrollmentRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CancelFaceEnrollmentResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CancelFaceEnrollmentResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CancelFaceEnrollmentResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CancelFaceEnrollmentResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CancelFaceEnrollmentResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_CancelFaceEnrollmentResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_CaptureSingleImageRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CaptureSingleImageRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CaptureSingleImageRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CaptureSingleImageRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CaptureSingleImageResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CaptureSingleImageResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CaptureSingleImageResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CaptureSingleImageResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CaptureSingleImageResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_CaptureSingleImageResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_CheckCloudRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CheckCloudRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CheckCloudRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CheckCloudRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CheckCloudResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CheckCloudResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CheckCloudResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CheckCloudResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CheckCloudResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_CheckCloudResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_CheckUpdateStatusRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CheckUpdateStatusRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CheckUpdateStatusRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CheckUpdateStatusRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CheckUpdateStatusResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CheckUpdateStatusResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CheckUpdateStatusResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CheckUpdateStatusResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CheckUpdateStatusResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_CheckUpdateStatusResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_CladPoint_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CladPoint_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CladPoint();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CladPoint::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CladRect_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CladRect_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CladRect();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CladRect::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CubeBattery_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CubeBattery_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CubeBattery();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CubeBattery::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_DeletePhotoRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DeletePhotoRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DeletePhotoRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DeletePhotoRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_DeletePhotoResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DeletePhotoResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DeletePhotoResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DeletePhotoResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DeletePhotoResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_DeletePhotoResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_DisplayFaceImageRGBRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DisplayFaceImageRGBRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DisplayFaceImageRGBRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DisplayFaceImageRGBRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_DisplayFaceImageRGBResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DisplayFaceImageRGBResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DisplayFaceImageRGBResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DisplayFaceImageRGBResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DisplayFaceImageRGBResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_DisplayFaceImageRGBResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_DockWithCubeRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DockWithCubeRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DockWithCubeRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DockWithCubeRequest::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DockWithCubeRequest_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_DockWithCubeRequest_messages_2eproto}, {
      &scc_info_PathMotionProfile_messages_2eproto.base,}};

static void InitDefaultsscc_info_DockWithCubeResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DockWithCubeResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DockWithCubeResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DockWithCubeResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_DockWithCubeResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_DockWithCubeResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_ActionResult_messages_2eproto.base,}};

static void InitDefaultsscc_info_DriveOffChargerRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DriveOffChargerRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DriveOffChargerRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DriveOffChargerRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_DriveOffChargerResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DriveOffChargerResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DriveOffChargerResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DriveOffChargerResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DriveOffChargerResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_DriveOffChargerResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_DriveOnChargerRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DriveOnChargerRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DriveOnChargerRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DriveOnChargerRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_DriveOnChargerResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DriveOnChargerResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DriveOnChargerResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DriveOnChargerResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DriveOnChargerResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_DriveOnChargerResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_DriveStraightRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DriveStraightRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DriveStraightRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DriveStraightRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_DriveStraightResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DriveStraightResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DriveStraightResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DriveStraightResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_DriveStraightResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_DriveStraightResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_ActionResult_messages_2eproto.base,}};

static void InitDefaultsscc_info_DriveWheelsRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DriveWheelsRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DriveWheelsRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DriveWheelsRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_DriveWheelsResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DriveWheelsResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DriveWheelsResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DriveWheelsResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DriveWheelsResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_DriveWheelsResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_EnableFaceDetectionRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EnableFaceDetectionRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EnableFaceDetectionRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EnableFaceDetectionRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_EnableFaceDetectionResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EnableFaceDetectionResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EnableFaceDetectionResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EnableFaceDetectionResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EnableFaceDetectionResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_EnableFaceDetectionResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_EnableImageStreamingRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EnableImageStreamingRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EnableImageStreamingRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EnableImageStreamingRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_EnableImageStreamingResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EnableImageStreamingResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EnableImageStreamingResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EnableImageStreamingResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EnableImageStreamingResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_EnableImageStreamingResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_EnableMarkerDetectionRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EnableMarkerDetectionRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EnableMarkerDetectionRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EnableMarkerDetectionRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_EnableMarkerDetectionResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EnableMarkerDetectionResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EnableMarkerDetectionResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EnableMarkerDetectionResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EnableMarkerDetectionResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_EnableMarkerDetectionResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_EnableMirrorModeRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EnableMirrorModeRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EnableMirrorModeRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EnableMirrorModeRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_EnableMirrorModeResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EnableMirrorModeResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EnableMirrorModeResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EnableMirrorModeResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EnableMirrorModeResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_EnableMirrorModeResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_EnableMotionDetectionRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EnableMotionDetectionRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EnableMotionDetectionRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EnableMotionDetectionRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_EnableMotionDetectionResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EnableMotionDetectionResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EnableMotionDetectionResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EnableMotionDetectionResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EnableMotionDetectionResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_EnableMotionDetectionResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_EnrollFaceRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EnrollFaceRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EnrollFaceRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EnrollFaceRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_EnrollFaceResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EnrollFaceResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EnrollFaceResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EnrollFaceResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EnrollFaceResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_EnrollFaceResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_EraseAllEnrolledFacesRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EraseAllEnrolledFacesRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EraseAllEnrolledFacesRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EraseAllEnrolledFacesRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_EraseAllEnrolledFacesResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EraseAllEnrolledFacesResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EraseAllEnrolledFacesResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EraseAllEnrolledFacesResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EraseAllEnrolledFacesResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_EraseAllEnrolledFacesResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_EraseEnrolledFaceByIDRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EraseEnrolledFaceByIDRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EraseEnrolledFaceByIDRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EraseEnrolledFaceByIDRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_EraseEnrolledFaceByIDResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_EraseEnrolledFaceByIDResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::EraseEnrolledFaceByIDResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::EraseEnrolledFaceByIDResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_EraseEnrolledFaceByIDResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_EraseEnrolledFaceByIDResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_ExternalAudioStreamBufferOverrun_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ExternalAudioStreamBufferOverrun_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ExternalAudioStreamCancel_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ExternalAudioStreamCancel_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ExternalAudioStreamCancel();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ExternalAudioStreamCancel::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ExternalAudioStreamChunk_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ExternalAudioStreamChunk_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ExternalAudioStreamChunk();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ExternalAudioStreamChunk::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ExternalAudioStreamComplete_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ExternalAudioStreamComplete_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ExternalAudioStreamComplete();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ExternalAudioStreamComplete::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ExternalAudioStreamPlaybackComplete_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ExternalAudioStreamPlaybackComplete_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ExternalAudioStreamPlaybackFailure_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ExternalAudioStreamPlaybackFailure_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ExternalAudioStreamPrepare_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ExternalAudioStreamPrepare_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ExternalAudioStreamPrepare();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ExternalAudioStreamPrepare::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ExternalAudioStreamRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ExternalAudioStreamRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ExternalAudioStreamRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ExternalAudioStreamRequest::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<4> scc_info_ExternalAudioStreamRequest_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 4, 0, InitDefaultsscc_info_ExternalAudioStreamRequest_messages_2eproto}, {
      &scc_info_ExternalAudioStreamPrepare_messages_2eproto.base,
      &scc_info_ExternalAudioStreamChunk_messages_2eproto.base,
      &scc_info_ExternalAudioStreamComplete_messages_2eproto.base,
      &scc_info_ExternalAudioStreamCancel_messages_2eproto.base,}};

static void InitDefaultsscc_info_ExternalAudioStreamResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ExternalAudioStreamResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ExternalAudioStreamResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ExternalAudioStreamResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_ExternalAudioStreamResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, 0, InitDefaultsscc_info_ExternalAudioStreamResponse_messages_2eproto}, {
      &scc_info_ExternalAudioStreamPlaybackComplete_messages_2eproto.base,
      &scc_info_ExternalAudioStreamBufferOverrun_messages_2eproto.base,
      &scc_info_ExternalAudioStreamPlaybackFailure_messages_2eproto.base,}};

static void InitDefaultsscc_info_FaceEnrollmentCompleted_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_FaceEnrollmentCompleted_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::FaceEnrollmentCompleted();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::FaceEnrollmentCompleted::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_FeatureFlagListRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_FeatureFlagListRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::FeatureFlagListRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::FeatureFlagListRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_FeatureFlagListResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_FeatureFlagListResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::FeatureFlagListResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::FeatureFlagListResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_FeatureFlagListResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_FeatureFlagListResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_FeatureFlagRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_FeatureFlagRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::FeatureFlagRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::FeatureFlagRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_FeatureFlagResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_FeatureFlagResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::FeatureFlagResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::FeatureFlagResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_FeatureFlagResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_FeatureFlagResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_FeatureStatus_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_FeatureStatus_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::FeatureStatus();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::FeatureStatus::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_FindFacesRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_FindFacesRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::FindFacesRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::FindFacesRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_FindFacesResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_FindFacesResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::FindFacesResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::FindFacesResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_FindFacesResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_FindFacesResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_GoToObjectRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_GoToObjectRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::GoToObjectRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::GoToObjectRequest::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_GoToObjectRequest_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_GoToObjectRequest_messages_2eproto}, {
      &scc_info_PathMotionProfile_messages_2eproto.base,}};

static void InitDefaultsscc_info_GoToObjectResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_GoToObjectResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::GoToObjectResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::GoToObjectResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_GoToObjectResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_GoToObjectResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_ActionResult_messages_2eproto.base,}};

static void InitDefaultsscc_info_GoToPoseRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_GoToPoseRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::GoToPoseRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::GoToPoseRequest::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_GoToPoseRequest_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_GoToPoseRequest_messages_2eproto}, {
      &scc_info_PathMotionProfile_messages_2eproto.base,}};

static void InitDefaultsscc_info_GoToPoseResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_GoToPoseResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::GoToPoseResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::GoToPoseResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_GoToPoseResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_GoToPoseResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_ActionResult_messages_2eproto.base,}};

static void InitDefaultsscc_info_GyroData_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_GyroData_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::GyroData();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::GyroData::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ImageChunk_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ImageChunk_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ImageChunk();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ImageChunk::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_IsImageStreamingEnabledRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_IsImageStreamingEnabledRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_IsImageStreamingEnabledResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_IsImageStreamingEnabledResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_KeepAlivePing_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_KeepAlivePing_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::KeepAlivePing();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::KeepAlivePing::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_LatestAttentionTransfer_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_LatestAttentionTransfer_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::LatestAttentionTransfer();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::LatestAttentionTransfer::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_LatestAttentionTransfer_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_LatestAttentionTransfer_messages_2eproto}, {
      &scc_info_AttentionTransfer_messages_2eproto.base,}};

static void InitDefaultsscc_info_LatestAttentionTransferRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_LatestAttentionTransferRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::LatestAttentionTransferRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::LatestAttentionTransferRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_LatestAttentionTransferResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_LatestAttentionTransferResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::LatestAttentionTransferResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::LatestAttentionTransferResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_LatestAttentionTransferResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_LatestAttentionTransferResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_LatestAttentionTransfer_messages_2eproto.base,}};

static void InitDefaultsscc_info_ListAnimationTriggersRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ListAnimationTriggersRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ListAnimationTriggersRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ListAnimationTriggersRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ListAnimationTriggersResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ListAnimationTriggersResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ListAnimationTriggersResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ListAnimationTriggersResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_ListAnimationTriggersResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_ListAnimationTriggersResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_AnimationTrigger_messages_2eproto.base,}};

static void InitDefaultsscc_info_ListAnimationsRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ListAnimationsRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ListAnimationsRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ListAnimationsRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ListAnimationsResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ListAnimationsResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ListAnimationsResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ListAnimationsResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_ListAnimationsResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_ListAnimationsResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_Animation_messages_2eproto.base,}};

static void InitDefaultsscc_info_LoadedKnownFace_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_LoadedKnownFace_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::LoadedKnownFace();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::LoadedKnownFace::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_LookAroundInPlaceRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_LookAroundInPlaceRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::LookAroundInPlaceRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::LookAroundInPlaceRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_LookAroundInPlaceResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_LookAroundInPlaceResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::LookAroundInPlaceResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::LookAroundInPlaceResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_LookAroundInPlaceResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_LookAroundInPlaceResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_MasterVolumeRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_MasterVolumeRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::MasterVolumeRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::MasterVolumeRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_MasterVolumeResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_MasterVolumeResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::MasterVolumeResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::MasterVolumeResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MasterVolumeResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_MasterVolumeResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_MeetVictorFaceScanComplete_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_MeetVictorFaceScanComplete_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::MeetVictorFaceScanComplete();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::MeetVictorFaceScanComplete::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_MeetVictorFaceScanStarted_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_MeetVictorFaceScanStarted_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::MeetVictorFaceScanStarted();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::MeetVictorFaceScanStarted::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_MirrorModeDisabled_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_MirrorModeDisabled_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::MirrorModeDisabled();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::MirrorModeDisabled::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_MoveHeadRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_MoveHeadRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::MoveHeadRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::MoveHeadRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_MoveHeadResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_MoveHeadResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::MoveHeadResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::MoveHeadResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MoveHeadResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_MoveHeadResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_MoveLiftRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_MoveLiftRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::MoveLiftRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::MoveLiftRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_MoveLiftResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_MoveLiftResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::MoveLiftResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::MoveLiftResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MoveLiftResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_MoveLiftResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_Onboarding_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_Onboarding_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::Onboarding();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::Onboarding::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Onboarding_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, 0, InitDefaultsscc_info_Onboarding_messages_2eproto}, {
      &scc_info_OnboardingState_messages_2eproto.base,
      &scc_info_OnboardingWakeUpFinished_messages_2eproto.base,
      &scc_info_Onboarding1p0ChargingInfo_messages_2eproto.base,}};

static void InitDefaultsscc_info_Onboarding1p0ChargingInfo_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_Onboarding1p0ChargingInfo_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_OnboardingChargeInfoRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingChargeInfoRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingChargeInfoRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingChargeInfoRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_OnboardingChargeInfoResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingChargeInfoResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingChargeInfoResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingChargeInfoResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_OnboardingChargeInfoResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_OnboardingChargeInfoResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_OnboardingCompleteRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingCompleteRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingCompleteRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingCompleteRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_OnboardingCompleteResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingCompleteResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingCompleteResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingCompleteResponse::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_OnboardingInputRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingInputRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingInputRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingInputRequest::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<9> scc_info_OnboardingInputRequest_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 9, 0, InitDefaultsscc_info_OnboardingInputRequest_messages_2eproto}, {
      &scc_info_OnboardingCompleteRequest_messages_2eproto.base,
      &scc_info_OnboardingWakeUpRequest_messages_2eproto.base,
      &scc_info_OnboardingSkipOnboarding_messages_2eproto.base,
      &scc_info_OnboardingRestart_messages_2eproto.base,
      &scc_info_OnboardingWakeUpStartedRequest_messages_2eproto.base,
      &scc_info_OnboardingSetPhaseRequest_messages_2eproto.base,
      &scc_info_OnboardingPhaseProgressRequest_messages_2eproto.base,
      &scc_info_OnboardingChargeInfoRequest_messages_2eproto.base,
      &scc_info_OnboardingMarkCompleteAndExit_messages_2eproto.base,}};

static void InitDefaultsscc_info_OnboardingInputResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingInputResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingInputResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingInputResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<7> scc_info_OnboardingInputResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 7, 0, InitDefaultsscc_info_OnboardingInputResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_OnboardingCompleteResponse_messages_2eproto.base,
      &scc_info_OnboardingWakeUpResponse_messages_2eproto.base,
      &scc_info_OnboardingWakeUpStartedResponse_messages_2eproto.base,
      &scc_info_OnboardingSetPhaseResponse_messages_2eproto.base,
      &scc_info_OnboardingPhaseProgressResponse_messages_2eproto.base,
      &scc_info_OnboardingChargeInfoResponse_messages_2eproto.base,}};

static void InitDefaultsscc_info_OnboardingMarkCompleteAndExit_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingMarkCompleteAndExit_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_OnboardingPhaseProgressRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingPhaseProgressRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_OnboardingPhaseProgressResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingPhaseProgressResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_OnboardingPhaseProgressResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_OnboardingPhaseProgressResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_OnboardingRestart_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingRestart_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingRestart();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingRestart::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_OnboardingSetPhaseRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingSetPhaseRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingSetPhaseRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingSetPhaseRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_OnboardingSetPhaseResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingSetPhaseResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingSetPhaseResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingSetPhaseResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_OnboardingSetPhaseResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_OnboardingSetPhaseResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_OnboardingSkipOnboarding_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingSkipOnboarding_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingSkipOnboarding();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingSkipOnboarding::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_OnboardingState_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingState_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingState();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingState::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_OnboardingStateRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingStateRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingStateRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingStateRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_OnboardingStateResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingStateResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingStateResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingStateResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_OnboardingStateResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_OnboardingStateResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_OnboardingState_messages_2eproto.base,}};

static void InitDefaultsscc_info_OnboardingWakeUpFinished_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingWakeUpFinished_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingWakeUpFinished();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingWakeUpFinished::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_OnboardingWakeUpRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingWakeUpRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingWakeUpRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingWakeUpRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_OnboardingWakeUpResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingWakeUpResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingWakeUpResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingWakeUpResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_OnboardingWakeUpResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_OnboardingWakeUpResponse_messages_2eproto}, {
      &scc_info_Onboarding1p0ChargingInfo_messages_2eproto.base,}};

static void InitDefaultsscc_info_OnboardingWakeUpStartedRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingWakeUpStartedRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_OnboardingWakeUpStartedResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_OnboardingWakeUpStartedResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_PathMotionProfile_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PathMotionProfile_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PathMotionProfile();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PathMotionProfile::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_PhotoInfo_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PhotoInfo_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PhotoInfo();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PhotoInfo::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_PhotoPathMessage_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PhotoPathMessage_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PhotoPathMessage();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PhotoPathMessage::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_PhotoRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PhotoRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PhotoRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PhotoRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_PhotoResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PhotoResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PhotoResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PhotoResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_PhotoResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_PhotoResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_PhotoTaken_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PhotoTaken_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PhotoTaken();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PhotoTaken::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_PhotosInfoRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PhotosInfoRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PhotosInfoRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PhotosInfoRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_PhotosInfoResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PhotosInfoResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PhotosInfoResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PhotosInfoResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_PhotosInfoResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_PhotosInfoResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_PhotoInfo_messages_2eproto.base,}};

static void InitDefaultsscc_info_PickupObjectRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PickupObjectRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PickupObjectRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PickupObjectRequest::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_PickupObjectRequest_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_PickupObjectRequest_messages_2eproto}, {
      &scc_info_PathMotionProfile_messages_2eproto.base,}};

static void InitDefaultsscc_info_PickupObjectResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PickupObjectResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PickupObjectResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PickupObjectResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_PickupObjectResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_PickupObjectResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_ActionResult_messages_2eproto.base,}};

static void InitDefaultsscc_info_PlaceObjectOnGroundHereRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PlaceObjectOnGroundHereRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_PlaceObjectOnGroundHereResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PlaceObjectOnGroundHereResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_PlaceObjectOnGroundHereResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_PlaceObjectOnGroundHereResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_ActionResult_messages_2eproto.base,}};

static void InitDefaultsscc_info_PlayAnimationRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PlayAnimationRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PlayAnimationRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PlayAnimationRequest::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_PlayAnimationRequest_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_PlayAnimationRequest_messages_2eproto}, {
      &scc_info_Animation_messages_2eproto.base,}};

static void InitDefaultsscc_info_PlayAnimationResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PlayAnimationResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PlayAnimationResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PlayAnimationResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_PlayAnimationResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_PlayAnimationResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_Animation_messages_2eproto.base,}};

static void InitDefaultsscc_info_PlayAnimationTriggerRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PlayAnimationTriggerRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PlayAnimationTriggerRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PlayAnimationTriggerRequest::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_PlayAnimationTriggerRequest_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_PlayAnimationTriggerRequest_messages_2eproto}, {
      &scc_info_AnimationTrigger_messages_2eproto.base,}};

static void InitDefaultsscc_info_PopAWheelieRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PopAWheelieRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PopAWheelieRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PopAWheelieRequest::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_PopAWheelieRequest_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_PopAWheelieRequest_messages_2eproto}, {
      &scc_info_PathMotionProfile_messages_2eproto.base,}};

static void InitDefaultsscc_info_PopAWheelieResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PopAWheelieResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PopAWheelieResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PopAWheelieResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_PopAWheelieResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_PopAWheelieResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_ActionResult_messages_2eproto.base,}};

static void InitDefaultsscc_info_PoseStruct_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_PoseStruct_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::PoseStruct();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::PoseStruct::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ProxData_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ProxData_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ProxData();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ProxData::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_RequestEnrolledNamesRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_RequestEnrolledNamesRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::RequestEnrolledNamesRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::RequestEnrolledNamesRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_RequestEnrolledNamesResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_RequestEnrolledNamesResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::RequestEnrolledNamesResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::RequestEnrolledNamesResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_RequestEnrolledNamesResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_RequestEnrolledNamesResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_LoadedKnownFace_messages_2eproto.base,}};

static void InitDefaultsscc_info_RobotChangedObservedFaceID_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_RobotChangedObservedFaceID_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::RobotChangedObservedFaceID();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::RobotChangedObservedFaceID::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_RobotErasedEnrolledFace_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_RobotErasedEnrolledFace_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::RobotErasedEnrolledFace();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::RobotErasedEnrolledFace::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_RobotHistoryRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_RobotHistoryRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::RobotHistoryRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::RobotHistoryRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_RobotHistoryResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_RobotHistoryResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::RobotHistoryResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::RobotHistoryResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_RobotHistoryResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_RobotHistoryResponse_messages_2eproto}, {
      &scc_info_TimeStampedStatus_messages_2eproto.base,}};

static void InitDefaultsscc_info_RobotObservedFace_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_RobotObservedFace_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::RobotObservedFace();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::RobotObservedFace::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_RobotObservedFace_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, 0, InitDefaultsscc_info_RobotObservedFace_messages_2eproto}, {
      &scc_info_PoseStruct_messages_2eproto.base,
      &scc_info_CladRect_messages_2eproto.base,
      &scc_info_CladPoint_messages_2eproto.base,}};

static void InitDefaultsscc_info_RobotObservedMotion_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_RobotObservedMotion_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::RobotObservedMotion();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::RobotObservedMotion::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_RobotRenamedEnrolledFace_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_RobotRenamedEnrolledFace_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::RobotRenamedEnrolledFace();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::RobotRenamedEnrolledFace::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_RobotState_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_RobotState_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::RobotState();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::RobotState::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<5> scc_info_RobotState_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 5, 0, InitDefaultsscc_info_RobotState_messages_2eproto}, {
      &scc_info_PoseStruct_messages_2eproto.base,
      &scc_info_AccelData_messages_2eproto.base,
      &scc_info_GyroData_messages_2eproto.base,
      &scc_info_ProxData_messages_2eproto.base,
      &scc_info_TouchData_messages_2eproto.base,}};

static void InitDefaultsscc_info_RollBlockRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_RollBlockRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::RollBlockRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::RollBlockRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_RollBlockResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_RollBlockResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::RollBlockResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::RollBlockResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_RollBlockResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_RollBlockResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_RollObjectRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_RollObjectRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::RollObjectRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::RollObjectRequest::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_RollObjectRequest_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_RollObjectRequest_messages_2eproto}, {
      &scc_info_PathMotionProfile_messages_2eproto.base,}};

static void InitDefaultsscc_info_RollObjectResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_RollObjectResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::RollObjectResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::RollObjectResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_RollObjectResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_RollObjectResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_ActionResult_messages_2eproto.base,}};

static void InitDefaultsscc_info_SDKInitializationRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SDKInitializationRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SDKInitializationRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SDKInitializationRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_SDKInitializationResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SDKInitializationResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SDKInitializationResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SDKInitializationResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SDKInitializationResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_SDKInitializationResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_SayTextRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SayTextRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SayTextRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SayTextRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_SayTextResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SayTextResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SayTextResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SayTextResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SayTextResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_SayTextResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_SetCameraSettingsRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SetCameraSettingsRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SetCameraSettingsRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SetCameraSettingsRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_SetCameraSettingsResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SetCameraSettingsResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SetCameraSettingsResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SetCameraSettingsResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SetCameraSettingsResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_SetCameraSettingsResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_SetEyeColorRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SetEyeColorRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SetEyeColorRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SetEyeColorRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_SetEyeColorResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SetEyeColorResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SetEyeColorResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SetEyeColorResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SetEyeColorResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_SetEyeColorResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_SetFaceToEnrollRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SetFaceToEnrollRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SetFaceToEnrollRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SetFaceToEnrollRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_SetFaceToEnrollResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SetFaceToEnrollResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SetFaceToEnrollResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SetFaceToEnrollResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SetFaceToEnrollResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_SetFaceToEnrollResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_SetHeadAngleRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SetHeadAngleRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SetHeadAngleRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SetHeadAngleRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_SetHeadAngleResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SetHeadAngleResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SetHeadAngleResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SetHeadAngleResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SetHeadAngleResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_SetHeadAngleResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_ActionResult_messages_2eproto.base,}};

static void InitDefaultsscc_info_SetLiftHeightRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SetLiftHeightRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SetLiftHeightRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SetLiftHeightRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_SetLiftHeightResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SetLiftHeightResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SetLiftHeightResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SetLiftHeightResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SetLiftHeightResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_SetLiftHeightResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_ActionResult_messages_2eproto.base,}};

static void InitDefaultsscc_info_Status_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_Status_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::Status();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::Status::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<4> scc_info_Status_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 4, 0, InitDefaultsscc_info_Status_messages_2eproto}, {
      &scc_info_FeatureStatus_messages_2eproto.base,
      &scc_info_MeetVictorFaceScanStarted_messages_2eproto.base,
      &scc_info_MeetVictorFaceScanComplete_messages_2eproto.base,
      &scc_info_FaceEnrollmentCompleted_messages_2eproto.base,}};

static void InitDefaultsscc_info_StimulationInfo_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_StimulationInfo_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::StimulationInfo();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::StimulationInfo::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_StopAllMotorsRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_StopAllMotorsRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::StopAllMotorsRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::StopAllMotorsRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_StopAllMotorsResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_StopAllMotorsResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::StopAllMotorsResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::StopAllMotorsResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_StopAllMotorsResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_StopAllMotorsResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_ThumbnailPathMessage_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ThumbnailPathMessage_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ThumbnailPathMessage();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ThumbnailPathMessage::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ThumbnailRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ThumbnailRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ThumbnailRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ThumbnailRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ThumbnailResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ThumbnailResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ThumbnailResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ThumbnailResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ThumbnailResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_ThumbnailResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_TimeStampedStatus_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_TimeStampedStatus_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::TimeStampedStatus();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::TimeStampedStatus::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_TimeStampedStatus_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_TimeStampedStatus_messages_2eproto}, {
      &scc_info_Status_messages_2eproto.base,}};

static void InitDefaultsscc_info_TouchData_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_TouchData_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::TouchData();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::TouchData::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_TurnInPlaceRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_TurnInPlaceRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::TurnInPlaceRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::TurnInPlaceRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_TurnInPlaceResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_TurnInPlaceResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::TurnInPlaceResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::TurnInPlaceResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_TurnInPlaceResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_TurnInPlaceResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_ActionResult_messages_2eproto.base,}};

static void InitDefaultsscc_info_TurnTowardsFaceRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_TurnTowardsFaceRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::TurnTowardsFaceRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::TurnTowardsFaceRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_TurnTowardsFaceResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_TurnTowardsFaceResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::TurnTowardsFaceResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::TurnTowardsFaceResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_TurnTowardsFaceResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_TurnTowardsFaceResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,
      &scc_info_ActionResult_messages_2eproto.base,}};

static void InitDefaultsscc_info_UnexpectedMovement_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_UnexpectedMovement_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::UnexpectedMovement();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::UnexpectedMovement::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_UpdateAndRestartRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_UpdateAndRestartRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::UpdateAndRestartRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::UpdateAndRestartRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_UpdateAndRestartResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_UpdateAndRestartResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::UpdateAndRestartResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::UpdateAndRestartResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_UpdateAndRestartResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_UpdateAndRestartResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_UpdateEnrolledFaceByIDRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_UpdateEnrolledFaceByIDRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::UpdateEnrolledFaceByIDRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::UpdateEnrolledFaceByIDRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_UpdateEnrolledFaceByIDResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_UpdateEnrolledFaceByIDResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::UpdateEnrolledFaceByIDResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::UpdateEnrolledFaceByIDResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_UpdateEnrolledFaceByIDResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_UpdateEnrolledFaceByIDResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_UploadDebugLogsRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_UploadDebugLogsRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::UploadDebugLogsRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::UploadDebugLogsRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_UploadDebugLogsResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_UploadDebugLogsResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::UploadDebugLogsResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::UploadDebugLogsResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_UploadDebugLogsResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_UploadDebugLogsResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_UserIntent_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_UserIntent_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::UserIntent();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::UserIntent::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_VersionStateRequest_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_VersionStateRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::VersionStateRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::VersionStateRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_VersionStateResponse_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_VersionStateResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::VersionStateResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::VersionStateResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_VersionStateResponse_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_VersionStateResponse_messages_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_VisionModesAutoDisabled_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_VisionModesAutoDisabled_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::VisionModesAutoDisabled();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::VisionModesAutoDisabled::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_WakeWord_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_WakeWord_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::WakeWord();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::WakeWord::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_WakeWord_messages_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_WakeWord_messages_2eproto}, {
      &scc_info_WakeWordBegin_messages_2eproto.base,
      &scc_info_WakeWordEnd_messages_2eproto.base,}};

static void InitDefaultsscc_info_WakeWordBegin_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_WakeWordBegin_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::WakeWordBegin();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::WakeWordBegin::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_WakeWordEnd_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_WakeWordEnd_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::WakeWordEnd();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::WakeWordEnd::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info__FakeAlexaUsage_messages_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::__FakeAlexaUsage_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::_FakeAlexaUsage();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::_FakeAlexaUsage::InitAsDefaultInstance();
}

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

static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_messages_2eproto[208];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_messages_2eproto[22];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_messages_2eproto = nullptr;

const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_messages_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::KeepAlivePing, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AnimationTrigger, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AnimationTrigger, name_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Animation, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Animation, name_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveWheelsRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveWheelsRequest, left_wheel_mmps_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveWheelsRequest, right_wheel_mmps_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveWheelsRequest, left_wheel_mmps2_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveWheelsRequest, right_wheel_mmps2_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveWheelsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveWheelsResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::MoveHeadRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::MoveHeadRequest, speed_rad_per_sec_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::MoveHeadResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::MoveHeadResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::MoveLiftRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::MoveLiftRequest, speed_rad_per_sec_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::MoveLiftResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::MoveLiftResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::StopAllMotorsRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::StopAllMotorsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::StopAllMotorsResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationTriggerRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationTriggerRequest, animation_trigger_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationTriggerRequest, loops_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationTriggerRequest, use_lift_safe_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationTriggerRequest, ignore_body_track_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationTriggerRequest, ignore_head_track_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationTriggerRequest, ignore_lift_track_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationRequest, animation_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationRequest, loops_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationRequest, ignore_body_track_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationRequest, ignore_head_track_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationRequest, ignore_lift_track_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationResponse, result_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlayAnimationResponse, animation_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ListAnimationsRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ListAnimationsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ListAnimationsResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ListAnimationsResponse, animation_names_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ListAnimationTriggersRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ListAnimationTriggersResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ListAnimationTriggersResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ListAnimationTriggersResponse, animation_trigger_names_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DisplayFaceImageRGBRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DisplayFaceImageRGBRequest, face_data_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DisplayFaceImageRGBRequest, duration_ms_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DisplayFaceImageRGBRequest, interrupt_running_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DisplayFaceImageRGBResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DisplayFaceImageRGBResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::MeetVictorFaceScanStarted, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::MeetVictorFaceScanComplete, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Status, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Status, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::Anki::Vector::external_interface::StatusDefaultTypeInternal, feature_status_),
  offsetof(::Anki::Vector::external_interface::StatusDefaultTypeInternal, meet_victor_face_scan_started_),
  offsetof(::Anki::Vector::external_interface::StatusDefaultTypeInternal, meet_victor_face_scan_complete_),
  offsetof(::Anki::Vector::external_interface::StatusDefaultTypeInternal, face_enrollment_completed_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Status, status_type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::WakeWord, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::WakeWord, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::Anki::Vector::external_interface::WakeWordDefaultTypeInternal, wake_word_begin_),
  offsetof(::Anki::Vector::external_interface::WakeWordDefaultTypeInternal, wake_word_end_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::WakeWord, wake_word_type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TimeStampedStatus, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TimeStampedStatus, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TimeStampedStatus, timestamp_utc_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PoseStruct, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PoseStruct, x_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PoseStruct, y_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PoseStruct, z_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PoseStruct, q0_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PoseStruct, q1_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PoseStruct, q2_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PoseStruct, q3_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PoseStruct, origin_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AccelData, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AccelData, x_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AccelData, y_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AccelData, z_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GyroData, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GyroData, x_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GyroData, y_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GyroData, z_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ProxData, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ProxData, distance_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ProxData, signal_quality_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ProxData, unobstructed_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ProxData, found_object_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ProxData, is_lift_in_fov_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TouchData, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TouchData, raw_touch_value_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TouchData, is_being_touched_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, pose_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, pose_angle_rad_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, pose_pitch_rad_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, left_wheel_speed_mmps_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, right_wheel_speed_mmps_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, head_angle_rad_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, lift_height_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, accel_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, gyro_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, carrying_object_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, carrying_object_on_top_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, head_tracking_object_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, localized_to_object_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, last_image_time_stamp_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, prox_data_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotState, touch_data_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CladPoint, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CladPoint, x_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CladPoint, y_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CladRect, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CladRect, x_top_left_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CladRect, y_top_left_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CladRect, width_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CladRect, height_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, timestamp_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, img_area_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, img_x_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, img_y_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, ground_area_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, ground_x_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, ground_y_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, top_img_area_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, top_img_x_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, top_img_y_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, bottom_img_area_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, bottom_img_x_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, bottom_img_y_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, left_img_area_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, left_img_x_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, left_img_y_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, right_img_area_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, right_img_x_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedMotion, right_img_y_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotErasedEnrolledFace, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotErasedEnrolledFace, face_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotErasedEnrolledFace, name_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UnexpectedMovement, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UnexpectedMovement, timestamp_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UnexpectedMovement, movement_type_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UnexpectedMovement, movement_side_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedFace, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedFace, face_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedFace, timestamp_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedFace, pose_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedFace, img_rect_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedFace, name_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedFace, expression_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedFace, expression_values_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedFace, left_eye_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedFace, right_eye_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedFace, nose_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedFace, mouth_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotChangedObservedFaceID, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotChangedObservedFaceID, old_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotChangedObservedFaceID, new_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FaceEnrollmentCompleted, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FaceEnrollmentCompleted, result_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FaceEnrollmentCompleted, face_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FaceEnrollmentCompleted, name_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CancelFaceEnrollmentRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CancelFaceEnrollmentResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CancelFaceEnrollmentResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RequestEnrolledNamesRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LoadedKnownFace, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LoadedKnownFace, seconds_since_first_enrolled_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LoadedKnownFace, seconds_since_last_updated_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LoadedKnownFace, seconds_since_last_seen_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LoadedKnownFace, last_seen_seconds_since_epoch_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LoadedKnownFace, face_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LoadedKnownFace, name_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotRenamedEnrolledFace, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotRenamedEnrolledFace, face_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotRenamedEnrolledFace, name_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RequestEnrolledNamesResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RequestEnrolledNamesResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RequestEnrolledNamesResponse, faces_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateEnrolledFaceByIDRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateEnrolledFaceByIDRequest, face_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateEnrolledFaceByIDRequest, old_name_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateEnrolledFaceByIDRequest, new_name_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateEnrolledFaceByIDResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateEnrolledFaceByIDResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EraseEnrolledFaceByIDRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EraseEnrolledFaceByIDRequest, face_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EraseEnrolledFaceByIDResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EraseEnrolledFaceByIDResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EraseAllEnrolledFacesRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EraseAllEnrolledFacesResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EraseAllEnrolledFacesResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetFaceToEnrollRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetFaceToEnrollRequest, name_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetFaceToEnrollRequest, observed_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetFaceToEnrollRequest, save_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetFaceToEnrollRequest, save_to_robot_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetFaceToEnrollRequest, say_name_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetFaceToEnrollRequest, use_music_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetFaceToEnrollResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetFaceToEnrollResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnrollFaceRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnrollFaceResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnrollFaceResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnrollFaceResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveOffChargerRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveOffChargerResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveOffChargerResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveOffChargerResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveOnChargerRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveOnChargerResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveOnChargerResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveOnChargerResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FindFacesRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FindFacesResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FindFacesResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FindFacesResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LookAroundInPlaceRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LookAroundInPlaceResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LookAroundInPlaceResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LookAroundInPlaceResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RollBlockRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RollBlockResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RollBlockResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RollBlockResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::WakeWordBegin, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::WakeWordEnd, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::WakeWordEnd, intent_heard_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::WakeWordEnd, intent_json_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UserIntent, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UserIntent, intent_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UserIntent, json_data_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoInfo, photo_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoInfo, timestamp_utc_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoInfo, photo_copied_to_app_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoInfo, thumb_copied_to_app_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotosInfoRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotosInfoResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotosInfoResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotosInfoResponse, photo_infos_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoRequest, photo_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoPathMessage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoPathMessage, success_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoPathMessage, full_path_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoResponse, success_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoResponse, image_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ThumbnailRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ThumbnailRequest, photo_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ThumbnailPathMessage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ThumbnailPathMessage, success_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ThumbnailPathMessage, full_path_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ThumbnailResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ThumbnailResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ThumbnailResponse, success_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ThumbnailResponse, image_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DeletePhotoRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DeletePhotoRequest, photo_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DeletePhotoResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DeletePhotoResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DeletePhotoResponse, success_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoTaken, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PhotoTaken, photo_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PathMotionProfile, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PathMotionProfile, speed_mmps_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PathMotionProfile, accel_mmps2_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PathMotionProfile, decel_mmps2_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PathMotionProfile, point_turn_speed_rad_per_sec_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PathMotionProfile, point_turn_accel_rad_per_sec2_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PathMotionProfile, point_turn_decel_rad_per_sec2_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PathMotionProfile, dock_speed_mmps_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PathMotionProfile, dock_accel_mmps2_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PathMotionProfile, dock_decel_mmps2_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PathMotionProfile, reverse_speed_mmps_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PathMotionProfile, is_custom_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ActionResult, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ActionResult, code_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CancelActionByIdTagRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CancelActionByIdTagRequest, id_tag_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CancelActionByIdTagResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CancelActionByIdTagResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CancelBehaviorRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CancelBehaviorResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CancelBehaviorResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToPoseRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToPoseRequest, x_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToPoseRequest, y_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToPoseRequest, rad_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToPoseRequest, motion_prof_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToPoseRequest, id_tag_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToPoseRequest, num_retries_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToPoseResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToPoseResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToPoseResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DockWithCubeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DockWithCubeRequest, object_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DockWithCubeRequest, distance_from_marker_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DockWithCubeRequest, approach_angle_rad_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DockWithCubeRequest, alignment_type_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DockWithCubeRequest, use_approach_angle_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DockWithCubeRequest, use_pre_dock_pose_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DockWithCubeRequest, motion_prof_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DockWithCubeRequest, id_tag_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DockWithCubeRequest, num_retries_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DockWithCubeResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DockWithCubeResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DockWithCubeResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveStraightRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveStraightRequest, speed_mmps_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveStraightRequest, dist_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveStraightRequest, should_play_animation_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveStraightRequest, id_tag_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveStraightRequest, num_retries_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveStraightResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveStraightResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DriveStraightResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnInPlaceRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnInPlaceRequest, angle_rad_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnInPlaceRequest, speed_rad_per_sec_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnInPlaceRequest, accel_rad_per_sec2_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnInPlaceRequest, tol_rad_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnInPlaceRequest, is_absolute_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnInPlaceRequest, id_tag_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnInPlaceRequest, num_retries_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnInPlaceResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnInPlaceResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnInPlaceResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetHeadAngleRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetHeadAngleRequest, angle_rad_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetHeadAngleRequest, max_speed_rad_per_sec_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetHeadAngleRequest, accel_rad_per_sec2_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetHeadAngleRequest, duration_sec_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetHeadAngleRequest, id_tag_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetHeadAngleRequest, num_retries_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetHeadAngleResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetHeadAngleResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetHeadAngleResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetLiftHeightRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetLiftHeightRequest, height_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetLiftHeightRequest, max_speed_rad_per_sec_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetLiftHeightRequest, accel_rad_per_sec2_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetLiftHeightRequest, duration_sec_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetLiftHeightRequest, id_tag_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetLiftHeightRequest, num_retries_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetLiftHeightResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetLiftHeightResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetLiftHeightResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnTowardsFaceRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnTowardsFaceRequest, face_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnTowardsFaceRequest, max_turn_angle_rad_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnTowardsFaceRequest, id_tag_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnTowardsFaceRequest, num_retries_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnTowardsFaceResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnTowardsFaceResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::TurnTowardsFaceResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToObjectRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToObjectRequest, object_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToObjectRequest, motion_prof_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToObjectRequest, distance_from_object_origin_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToObjectRequest, use_pre_dock_pose_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToObjectRequest, id_tag_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToObjectRequest, num_retries_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToObjectResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToObjectResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::GoToObjectResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RollObjectRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RollObjectRequest, object_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RollObjectRequest, motion_prof_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RollObjectRequest, approach_angle_rad_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RollObjectRequest, use_approach_angle_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RollObjectRequest, use_pre_dock_pose_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RollObjectRequest, id_tag_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RollObjectRequest, num_retries_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RollObjectResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RollObjectResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RollObjectResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PopAWheelieRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PopAWheelieRequest, object_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PopAWheelieRequest, motion_prof_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PopAWheelieRequest, approach_angle_rad_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PopAWheelieRequest, use_approach_angle_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PopAWheelieRequest, use_pre_dock_pose_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PopAWheelieRequest, id_tag_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PopAWheelieRequest, num_retries_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PopAWheelieResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PopAWheelieResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PopAWheelieResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PickupObjectRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PickupObjectRequest, object_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PickupObjectRequest, motion_prof_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PickupObjectRequest, approach_angle_rad_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PickupObjectRequest, use_approach_angle_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PickupObjectRequest, use_pre_dock_pose_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PickupObjectRequest, id_tag_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PickupObjectRequest, num_retries_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PickupObjectResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PickupObjectResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PickupObjectResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest, id_tag_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest, num_retries_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse, result_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::BatteryStateRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::BatteryStateResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::BatteryStateResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::BatteryStateResponse, battery_level_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::BatteryStateResponse, battery_volts_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::BatteryStateResponse, is_charging_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::BatteryStateResponse, is_on_charger_platform_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::BatteryStateResponse, suggested_charger_sec_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::BatteryStateResponse, cube_battery_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CubeBattery, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CubeBattery, level_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CubeBattery, factory_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CubeBattery, battery_volts_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CubeBattery, time_since_last_reading_sec_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::VersionStateRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::VersionStateResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::VersionStateResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::VersionStateResponse, os_version_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::VersionStateResponse, engine_build_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SayTextRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SayTextRequest, text_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SayTextRequest, use_vector_voice_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SayTextRequest, duration_scalar_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SayTextRequest, pitch_scalar_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SayTextResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SayTextResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SayTextResponse, state_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::StimulationInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::StimulationInfo, emotion_events_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::StimulationInfo, value_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::StimulationInfo, velocity_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::StimulationInfo, accel_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::StimulationInfo, value_before_event_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::StimulationInfo, min_value_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::StimulationInfo, max_value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioSendModeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioSendModeRequest, mode_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioSendModeChanged, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioSendModeChanged, mode_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioChunk, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioChunk, robot_time_stamp_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioChunk, group_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioChunk, chunk_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioChunk, audio_chunk_count_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioChunk, signal_power_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioChunk, direction_strengths_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioChunk, source_direction_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioChunk, source_confidence_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioChunk, noise_floor_power_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioFeedRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioFeedResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioFeedResponse, robot_time_stamp_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioFeedResponse, group_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioFeedResponse, signal_power_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioFeedResponse, direction_strengths_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioFeedResponse, source_direction_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioFeedResponse, source_confidence_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AudioFeedResponse, noise_floor_power_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamPrepare, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamPrepare, audio_frame_rate_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamPrepare, audio_volume_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamChunk, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamChunk, audio_chunk_size_bytes_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamChunk, audio_chunk_samples_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamComplete, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamCancel, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamRequest, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::Anki::Vector::external_interface::ExternalAudioStreamRequestDefaultTypeInternal, audio_stream_prepare_),
  offsetof(::Anki::Vector::external_interface::ExternalAudioStreamRequestDefaultTypeInternal, audio_stream_chunk_),
  offsetof(::Anki::Vector::external_interface::ExternalAudioStreamRequestDefaultTypeInternal, audio_stream_complete_),
  offsetof(::Anki::Vector::external_interface::ExternalAudioStreamRequestDefaultTypeInternal, audio_stream_cancel_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamRequest, audio_request_type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun, audio_samples_sent_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun, audio_samples_played_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamResponse, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::Anki::Vector::external_interface::ExternalAudioStreamResponseDefaultTypeInternal, audio_stream_playback_complete_),
  offsetof(::Anki::Vector::external_interface::ExternalAudioStreamResponseDefaultTypeInternal, audio_stream_buffer_overrun_),
  offsetof(::Anki::Vector::external_interface::ExternalAudioStreamResponseDefaultTypeInternal, audio_stream_playback_failyer_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ExternalAudioStreamResponse, audio_response_type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::MasterVolumeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::MasterVolumeRequest, volume_level_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::MasterVolumeResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::MasterVolumeResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableMarkerDetectionRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableMarkerDetectionRequest, enable_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableMarkerDetectionResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableMarkerDetectionResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableFaceDetectionRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableFaceDetectionRequest, enable_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableFaceDetectionRequest, enable_smile_detection_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableFaceDetectionRequest, enable_expression_estimation_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableFaceDetectionRequest, enable_blink_detection_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableFaceDetectionRequest, enable_gaze_detection_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableFaceDetectionResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableFaceDetectionResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableMotionDetectionRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableMotionDetectionRequest, enable_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableMotionDetectionResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableMotionDetectionResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableMirrorModeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableMirrorModeRequest, enable_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableMirrorModeResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableMirrorModeResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::MirrorModeDisabled, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableImageStreamingRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableImageStreamingRequest, enable_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableImageStreamingRequest, enable_high_resolution_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableImageStreamingResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::EnableImageStreamingResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::IsImageStreamingEnabledRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::IsImageStreamingEnabledResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::IsImageStreamingEnabledResponse, is_image_streaming_enabled_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::VisionModesAutoDisabled, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ImageChunk, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ImageChunk, frame_time_stamp_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ImageChunk, image_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ImageChunk, width_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ImageChunk, height_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ImageChunk, image_encoding_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ImageChunk, display_index_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ImageChunk, image_chunk_count_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ImageChunk, chunk_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ImageChunk, data_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraFeedRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraFeedResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraFeedResponse, frame_time_stamp_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraFeedResponse, image_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraFeedResponse, image_encoding_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraFeedResponse, data_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CaptureSingleImageRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CaptureSingleImageRequest, enable_high_resolution_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CaptureSingleImageResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CaptureSingleImageResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CaptureSingleImageResponse, frame_time_stamp_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CaptureSingleImageResponse, image_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CaptureSingleImageResponse, image_encoding_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CaptureSingleImageResponse, data_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetEyeColorRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetEyeColorRequest, hue_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetEyeColorRequest, saturation_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetEyeColorResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetEyeColorResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraConfigRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraConfigResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraConfigResponse, focal_length_x_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraConfigResponse, focal_length_y_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraConfigResponse, center_x_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraConfigResponse, center_y_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraConfigResponse, fov_x_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraConfigResponse, fov_y_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraConfigResponse, min_camera_exposure_time_ms_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraConfigResponse, max_camera_exposure_time_ms_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraConfigResponse, min_camera_gain_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraConfigResponse, max_camera_gain_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCameraSettingsRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCameraSettingsRequest, gain_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCameraSettingsRequest, exposure_ms_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCameraSettingsRequest, enable_auto_exposure_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCameraSettingsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCameraSettingsResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCameraSettingsResponse, status_message_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraSettingsUpdate, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraSettingsUpdate, gain_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraSettingsUpdate, exposure_ms_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CameraSettingsUpdate, auto_exposure_enabled_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SDKInitializationRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SDKInitializationRequest, sdk_module_version_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SDKInitializationRequest, python_version_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SDKInitializationRequest, python_implementation_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SDKInitializationRequest, os_version_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SDKInitializationRequest, cpu_version_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SDKInitializationResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SDKInitializationResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AppDisconnected, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AppIntentRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AppIntentRequest, intent_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AppIntentRequest, param_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AppIntentResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AppIntentResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FeatureStatus, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FeatureStatus, feature_name_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FeatureStatus, source_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Onboarding, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Onboarding, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::Anki::Vector::external_interface::OnboardingDefaultTypeInternal, onboarding_state_),
  offsetof(::Anki::Vector::external_interface::OnboardingDefaultTypeInternal, onboarding_wake_up_finished_),
  offsetof(::Anki::Vector::external_interface::OnboardingDefaultTypeInternal, onboarding_1p0_charging_info_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Onboarding, onboarding_type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotHistoryRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotHistoryResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotHistoryResponse, messages_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingState, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingState, stage_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingStateRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingStateResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingStateResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingStateResponse, onboarding_state_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingSetPhaseRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingSetPhaseRequest, phase_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingSetPhaseResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingSetPhaseResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingSetPhaseResponse, phase_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingSetPhaseResponse, phase_state_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingPhaseProgressRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingPhaseProgressResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingPhaseProgressResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingPhaseProgressResponse, last_set_phase_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingPhaseProgressResponse, last_set_phase_state_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingPhaseProgressResponse, percent_completed_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingChargeInfoRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingChargeInfoResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingChargeInfoResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingChargeInfoResponse, on_charger_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingChargeInfoResponse, needs_to_charge_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingChargeInfoResponse, required_charge_time_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingSkipOnboarding, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingRestart, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingInputRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingInputRequest, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::Anki::Vector::external_interface::OnboardingInputRequestDefaultTypeInternal, onboarding_complete_request_),
  offsetof(::Anki::Vector::external_interface::OnboardingInputRequestDefaultTypeInternal, onboarding_wake_up_request_),
  offsetof(::Anki::Vector::external_interface::OnboardingInputRequestDefaultTypeInternal, onboarding_skip_onboarding_),
  offsetof(::Anki::Vector::external_interface::OnboardingInputRequestDefaultTypeInternal, onboarding_restart_),
  offsetof(::Anki::Vector::external_interface::OnboardingInputRequestDefaultTypeInternal, onboarding_wake_up_started_request_),
  offsetof(::Anki::Vector::external_interface::OnboardingInputRequestDefaultTypeInternal, onboarding_set_phase_request_),
  offsetof(::Anki::Vector::external_interface::OnboardingInputRequestDefaultTypeInternal, onboarding_phase_progress_request_),
  offsetof(::Anki::Vector::external_interface::OnboardingInputRequestDefaultTypeInternal, onboarding_charge_info_request_),
  offsetof(::Anki::Vector::external_interface::OnboardingInputRequestDefaultTypeInternal, onboarding_mark_complete_and_exit_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingInputRequest, oneof_message_type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingInputResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingInputResponse, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingInputResponse, status_),
  offsetof(::Anki::Vector::external_interface::OnboardingInputResponseDefaultTypeInternal, onboarding_complete_response_),
  offsetof(::Anki::Vector::external_interface::OnboardingInputResponseDefaultTypeInternal, onboarding_wake_up_response_),
  offsetof(::Anki::Vector::external_interface::OnboardingInputResponseDefaultTypeInternal, onboarding_wake_up_started_response_),
  offsetof(::Anki::Vector::external_interface::OnboardingInputResponseDefaultTypeInternal, onboarding_set_phase_response_),
  offsetof(::Anki::Vector::external_interface::OnboardingInputResponseDefaultTypeInternal, onboarding_phase_progress_response_),
  offsetof(::Anki::Vector::external_interface::OnboardingInputResponseDefaultTypeInternal, onboarding_charge_info_response_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingInputResponse, oneof_message_type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingCompleteRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingCompleteResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingCompleteResponse, completed_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse, already_started_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingWakeUpRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingWakeUpResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingWakeUpResponse, waking_up_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingWakeUpResponse, charging_info_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Onboarding1p0ChargingInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Onboarding1p0ChargingInfo, on_charger_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Onboarding1p0ChargingInfo, needs_to_charge_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::Onboarding1p0ChargingInfo, suggested_charger_time_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::OnboardingWakeUpFinished, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FeatureFlagRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FeatureFlagRequest, feature_name_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FeatureFlagResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FeatureFlagResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FeatureFlagResponse, valid_feature_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FeatureFlagResponse, feature_enabled_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FeatureFlagListRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FeatureFlagListRequest, request_list_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FeatureFlagListResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FeatureFlagListResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FeatureFlagListResponse, list_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AttentionTransfer, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AttentionTransfer, reason_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::AttentionTransfer, seconds_ago_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LatestAttentionTransferRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LatestAttentionTransfer, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LatestAttentionTransfer, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::Anki::Vector::external_interface::LatestAttentionTransferDefaultTypeInternal, attention_transfer_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LatestAttentionTransfer, oneof_message_type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LatestAttentionTransferResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LatestAttentionTransferResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::LatestAttentionTransferResponse, latest_attention_transfer_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateAndRestartRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateAndRestartResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UpdateAndRestartResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckUpdateStatusRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckUpdateStatusResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckUpdateStatusResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckUpdateStatusResponse, update_status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckUpdateStatusResponse, expected_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckUpdateStatusResponse, progress_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckUpdateStatusResponse, update_version_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckUpdateStatusResponse, update_phase_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckUpdateStatusResponse, error_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckUpdateStatusResponse, exit_code_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UploadDebugLogsRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UploadDebugLogsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UploadDebugLogsResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::UploadDebugLogsResponse, url_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckCloudRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckCloudResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckCloudResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckCloudResponse, code_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckCloudResponse, status_message_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckCloudResponse, num_packets_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CheckCloudResponse, expected_packets_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::_FakeAlexaUsage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::_FakeAlexaUsage, ignored_),
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::Anki::Vector::external_interface::KeepAlivePing)},
  { 5, -1, sizeof(::Anki::Vector::external_interface::AnimationTrigger)},
  { 11, -1, sizeof(::Anki::Vector::external_interface::Animation)},
  { 17, -1, sizeof(::Anki::Vector::external_interface::DriveWheelsRequest)},
  { 26, -1, sizeof(::Anki::Vector::external_interface::DriveWheelsResponse)},
  { 32, -1, sizeof(::Anki::Vector::external_interface::MoveHeadRequest)},
  { 38, -1, sizeof(::Anki::Vector::external_interface::MoveHeadResponse)},
  { 44, -1, sizeof(::Anki::Vector::external_interface::MoveLiftRequest)},
  { 50, -1, sizeof(::Anki::Vector::external_interface::MoveLiftResponse)},
  { 56, -1, sizeof(::Anki::Vector::external_interface::StopAllMotorsRequest)},
  { 61, -1, sizeof(::Anki::Vector::external_interface::StopAllMotorsResponse)},
  { 67, -1, sizeof(::Anki::Vector::external_interface::PlayAnimationTriggerRequest)},
  { 78, -1, sizeof(::Anki::Vector::external_interface::PlayAnimationRequest)},
  { 88, -1, sizeof(::Anki::Vector::external_interface::PlayAnimationResponse)},
  { 96, -1, sizeof(::Anki::Vector::external_interface::ListAnimationsRequest)},
  { 101, -1, sizeof(::Anki::Vector::external_interface::ListAnimationsResponse)},
  { 108, -1, sizeof(::Anki::Vector::external_interface::ListAnimationTriggersRequest)},
  { 113, -1, sizeof(::Anki::Vector::external_interface::ListAnimationTriggersResponse)},
  { 120, -1, sizeof(::Anki::Vector::external_interface::DisplayFaceImageRGBRequest)},
  { 128, -1, sizeof(::Anki::Vector::external_interface::DisplayFaceImageRGBResponse)},
  { 134, -1, sizeof(::Anki::Vector::external_interface::MeetVictorFaceScanStarted)},
  { 139, -1, sizeof(::Anki::Vector::external_interface::MeetVictorFaceScanComplete)},
  { 144, -1, sizeof(::Anki::Vector::external_interface::Status)},
  { 154, -1, sizeof(::Anki::Vector::external_interface::WakeWord)},
  { 162, -1, sizeof(::Anki::Vector::external_interface::TimeStampedStatus)},
  { 169, -1, sizeof(::Anki::Vector::external_interface::PoseStruct)},
  { 182, -1, sizeof(::Anki::Vector::external_interface::AccelData)},
  { 190, -1, sizeof(::Anki::Vector::external_interface::GyroData)},
  { 198, -1, sizeof(::Anki::Vector::external_interface::ProxData)},
  { 208, -1, sizeof(::Anki::Vector::external_interface::TouchData)},
  { 215, -1, sizeof(::Anki::Vector::external_interface::RobotState)},
  { 237, -1, sizeof(::Anki::Vector::external_interface::CladPoint)},
  { 244, -1, sizeof(::Anki::Vector::external_interface::CladRect)},
  { 253, -1, sizeof(::Anki::Vector::external_interface::RobotObservedMotion)},
  { 277, -1, sizeof(::Anki::Vector::external_interface::RobotErasedEnrolledFace)},
  { 284, -1, sizeof(::Anki::Vector::external_interface::UnexpectedMovement)},
  { 292, -1, sizeof(::Anki::Vector::external_interface::RobotObservedFace)},
  { 308, -1, sizeof(::Anki::Vector::external_interface::RobotChangedObservedFaceID)},
  { 315, -1, sizeof(::Anki::Vector::external_interface::FaceEnrollmentCompleted)},
  { 323, -1, sizeof(::Anki::Vector::external_interface::CancelFaceEnrollmentRequest)},
  { 328, -1, sizeof(::Anki::Vector::external_interface::CancelFaceEnrollmentResponse)},
  { 334, -1, sizeof(::Anki::Vector::external_interface::RequestEnrolledNamesRequest)},
  { 339, -1, sizeof(::Anki::Vector::external_interface::LoadedKnownFace)},
  { 350, -1, sizeof(::Anki::Vector::external_interface::RobotRenamedEnrolledFace)},
  { 357, -1, sizeof(::Anki::Vector::external_interface::RequestEnrolledNamesResponse)},
  { 364, -1, sizeof(::Anki::Vector::external_interface::UpdateEnrolledFaceByIDRequest)},
  { 372, -1, sizeof(::Anki::Vector::external_interface::UpdateEnrolledFaceByIDResponse)},
  { 378, -1, sizeof(::Anki::Vector::external_interface::EraseEnrolledFaceByIDRequest)},
  { 384, -1, sizeof(::Anki::Vector::external_interface::EraseEnrolledFaceByIDResponse)},
  { 390, -1, sizeof(::Anki::Vector::external_interface::EraseAllEnrolledFacesRequest)},
  { 395, -1, sizeof(::Anki::Vector::external_interface::EraseAllEnrolledFacesResponse)},
  { 401, -1, sizeof(::Anki::Vector::external_interface::SetFaceToEnrollRequest)},
  { 412, -1, sizeof(::Anki::Vector::external_interface::SetFaceToEnrollResponse)},
  { 418, -1, sizeof(::Anki::Vector::external_interface::EnrollFaceRequest)},
  { 423, -1, sizeof(::Anki::Vector::external_interface::EnrollFaceResponse)},
  { 430, -1, sizeof(::Anki::Vector::external_interface::DriveOffChargerRequest)},
  { 435, -1, sizeof(::Anki::Vector::external_interface::DriveOffChargerResponse)},
  { 442, -1, sizeof(::Anki::Vector::external_interface::DriveOnChargerRequest)},
  { 447, -1, sizeof(::Anki::Vector::external_interface::DriveOnChargerResponse)},
  { 454, -1, sizeof(::Anki::Vector::external_interface::FindFacesRequest)},
  { 459, -1, sizeof(::Anki::Vector::external_interface::FindFacesResponse)},
  { 466, -1, sizeof(::Anki::Vector::external_interface::LookAroundInPlaceRequest)},
  { 471, -1, sizeof(::Anki::Vector::external_interface::LookAroundInPlaceResponse)},
  { 478, -1, sizeof(::Anki::Vector::external_interface::RollBlockRequest)},
  { 483, -1, sizeof(::Anki::Vector::external_interface::RollBlockResponse)},
  { 490, -1, sizeof(::Anki::Vector::external_interface::WakeWordBegin)},
  { 495, -1, sizeof(::Anki::Vector::external_interface::WakeWordEnd)},
  { 502, -1, sizeof(::Anki::Vector::external_interface::UserIntent)},
  { 509, -1, sizeof(::Anki::Vector::external_interface::PhotoInfo)},
  { 518, -1, sizeof(::Anki::Vector::external_interface::PhotosInfoRequest)},
  { 523, -1, sizeof(::Anki::Vector::external_interface::PhotosInfoResponse)},
  { 530, -1, sizeof(::Anki::Vector::external_interface::PhotoRequest)},
  { 536, -1, sizeof(::Anki::Vector::external_interface::PhotoPathMessage)},
  { 543, -1, sizeof(::Anki::Vector::external_interface::PhotoResponse)},
  { 551, -1, sizeof(::Anki::Vector::external_interface::ThumbnailRequest)},
  { 557, -1, sizeof(::Anki::Vector::external_interface::ThumbnailPathMessage)},
  { 564, -1, sizeof(::Anki::Vector::external_interface::ThumbnailResponse)},
  { 572, -1, sizeof(::Anki::Vector::external_interface::DeletePhotoRequest)},
  { 578, -1, sizeof(::Anki::Vector::external_interface::DeletePhotoResponse)},
  { 585, -1, sizeof(::Anki::Vector::external_interface::PhotoTaken)},
  { 591, -1, sizeof(::Anki::Vector::external_interface::PathMotionProfile)},
  { 607, -1, sizeof(::Anki::Vector::external_interface::ActionResult)},
  { 613, -1, sizeof(::Anki::Vector::external_interface::CancelActionByIdTagRequest)},
  { 619, -1, sizeof(::Anki::Vector::external_interface::CancelActionByIdTagResponse)},
  { 625, -1, sizeof(::Anki::Vector::external_interface::CancelBehaviorRequest)},
  { 630, -1, sizeof(::Anki::Vector::external_interface::CancelBehaviorResponse)},
  { 636, -1, sizeof(::Anki::Vector::external_interface::GoToPoseRequest)},
  { 647, -1, sizeof(::Anki::Vector::external_interface::GoToPoseResponse)},
  { 654, -1, sizeof(::Anki::Vector::external_interface::DockWithCubeRequest)},
  { 668, -1, sizeof(::Anki::Vector::external_interface::DockWithCubeResponse)},
  { 675, -1, sizeof(::Anki::Vector::external_interface::DriveStraightRequest)},
  { 685, -1, sizeof(::Anki::Vector::external_interface::DriveStraightResponse)},
  { 692, -1, sizeof(::Anki::Vector::external_interface::TurnInPlaceRequest)},
  { 704, -1, sizeof(::Anki::Vector::external_interface::TurnInPlaceResponse)},
  { 711, -1, sizeof(::Anki::Vector::external_interface::SetHeadAngleRequest)},
  { 722, -1, sizeof(::Anki::Vector::external_interface::SetHeadAngleResponse)},
  { 729, -1, sizeof(::Anki::Vector::external_interface::SetLiftHeightRequest)},
  { 740, -1, sizeof(::Anki::Vector::external_interface::SetLiftHeightResponse)},
  { 747, -1, sizeof(::Anki::Vector::external_interface::TurnTowardsFaceRequest)},
  { 756, -1, sizeof(::Anki::Vector::external_interface::TurnTowardsFaceResponse)},
  { 763, -1, sizeof(::Anki::Vector::external_interface::GoToObjectRequest)},
  { 774, -1, sizeof(::Anki::Vector::external_interface::GoToObjectResponse)},
  { 781, -1, sizeof(::Anki::Vector::external_interface::RollObjectRequest)},
  { 793, -1, sizeof(::Anki::Vector::external_interface::RollObjectResponse)},
  { 800, -1, sizeof(::Anki::Vector::external_interface::PopAWheelieRequest)},
  { 812, -1, sizeof(::Anki::Vector::external_interface::PopAWheelieResponse)},
  { 819, -1, sizeof(::Anki::Vector::external_interface::PickupObjectRequest)},
  { 831, -1, sizeof(::Anki::Vector::external_interface::PickupObjectResponse)},
  { 838, -1, sizeof(::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest)},
  { 845, -1, sizeof(::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse)},
  { 852, -1, sizeof(::Anki::Vector::external_interface::BatteryStateRequest)},
  { 857, -1, sizeof(::Anki::Vector::external_interface::BatteryStateResponse)},
  { 869, -1, sizeof(::Anki::Vector::external_interface::CubeBattery)},
  { 878, -1, sizeof(::Anki::Vector::external_interface::VersionStateRequest)},
  { 883, -1, sizeof(::Anki::Vector::external_interface::VersionStateResponse)},
  { 891, -1, sizeof(::Anki::Vector::external_interface::SayTextRequest)},
  { 900, -1, sizeof(::Anki::Vector::external_interface::SayTextResponse)},
  { 907, -1, sizeof(::Anki::Vector::external_interface::StimulationInfo)},
  { 919, -1, sizeof(::Anki::Vector::external_interface::AudioSendModeRequest)},
  { 925, -1, sizeof(::Anki::Vector::external_interface::AudioSendModeChanged)},
  { 931, -1, sizeof(::Anki::Vector::external_interface::AudioChunk)},
  { 945, -1, sizeof(::Anki::Vector::external_interface::AudioFeedRequest)},
  { 950, -1, sizeof(::Anki::Vector::external_interface::AudioFeedResponse)},
  { 962, -1, sizeof(::Anki::Vector::external_interface::ExternalAudioStreamPrepare)},
  { 969, -1, sizeof(::Anki::Vector::external_interface::ExternalAudioStreamChunk)},
  { 976, -1, sizeof(::Anki::Vector::external_interface::ExternalAudioStreamComplete)},
  { 981, -1, sizeof(::Anki::Vector::external_interface::ExternalAudioStreamCancel)},
  { 986, -1, sizeof(::Anki::Vector::external_interface::ExternalAudioStreamRequest)},
  { 996, -1, sizeof(::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete)},
  { 1001, -1, sizeof(::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure)},
  { 1006, -1, sizeof(::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun)},
  { 1013, -1, sizeof(::Anki::Vector::external_interface::ExternalAudioStreamResponse)},
  { 1022, -1, sizeof(::Anki::Vector::external_interface::MasterVolumeRequest)},
  { 1028, -1, sizeof(::Anki::Vector::external_interface::MasterVolumeResponse)},
  { 1034, -1, sizeof(::Anki::Vector::external_interface::EnableMarkerDetectionRequest)},
  { 1040, -1, sizeof(::Anki::Vector::external_interface::EnableMarkerDetectionResponse)},
  { 1046, -1, sizeof(::Anki::Vector::external_interface::EnableFaceDetectionRequest)},
  { 1056, -1, sizeof(::Anki::Vector::external_interface::EnableFaceDetectionResponse)},
  { 1062, -1, sizeof(::Anki::Vector::external_interface::EnableMotionDetectionRequest)},
  { 1068, -1, sizeof(::Anki::Vector::external_interface::EnableMotionDetectionResponse)},
  { 1074, -1, sizeof(::Anki::Vector::external_interface::EnableMirrorModeRequest)},
  { 1080, -1, sizeof(::Anki::Vector::external_interface::EnableMirrorModeResponse)},
  { 1086, -1, sizeof(::Anki::Vector::external_interface::MirrorModeDisabled)},
  { 1091, -1, sizeof(::Anki::Vector::external_interface::EnableImageStreamingRequest)},
  { 1098, -1, sizeof(::Anki::Vector::external_interface::EnableImageStreamingResponse)},
  { 1104, -1, sizeof(::Anki::Vector::external_interface::IsImageStreamingEnabledRequest)},
  { 1109, -1, sizeof(::Anki::Vector::external_interface::IsImageStreamingEnabledResponse)},
  { 1115, -1, sizeof(::Anki::Vector::external_interface::VisionModesAutoDisabled)},
  { 1120, -1, sizeof(::Anki::Vector::external_interface::ImageChunk)},
  { 1134, -1, sizeof(::Anki::Vector::external_interface::CameraFeedRequest)},
  { 1139, -1, sizeof(::Anki::Vector::external_interface::CameraFeedResponse)},
  { 1148, -1, sizeof(::Anki::Vector::external_interface::CaptureSingleImageRequest)},
  { 1154, -1, sizeof(::Anki::Vector::external_interface::CaptureSingleImageResponse)},
  { 1164, -1, sizeof(::Anki::Vector::external_interface::SetEyeColorRequest)},
  { 1171, -1, sizeof(::Anki::Vector::external_interface::SetEyeColorResponse)},
  { 1177, -1, sizeof(::Anki::Vector::external_interface::CameraConfigRequest)},
  { 1182, -1, sizeof(::Anki::Vector::external_interface::CameraConfigResponse)},
  { 1197, -1, sizeof(::Anki::Vector::external_interface::SetCameraSettingsRequest)},
  { 1205, -1, sizeof(::Anki::Vector::external_interface::SetCameraSettingsResponse)},
  { 1212, -1, sizeof(::Anki::Vector::external_interface::CameraSettingsUpdate)},
  { 1220, -1, sizeof(::Anki::Vector::external_interface::SDKInitializationRequest)},
  { 1230, -1, sizeof(::Anki::Vector::external_interface::SDKInitializationResponse)},
  { 1236, -1, sizeof(::Anki::Vector::external_interface::AppDisconnected)},
  { 1241, -1, sizeof(::Anki::Vector::external_interface::AppIntentRequest)},
  { 1248, -1, sizeof(::Anki::Vector::external_interface::AppIntentResponse)},
  { 1254, -1, sizeof(::Anki::Vector::external_interface::FeatureStatus)},
  { 1261, -1, sizeof(::Anki::Vector::external_interface::Onboarding)},
  { 1270, -1, sizeof(::Anki::Vector::external_interface::RobotHistoryRequest)},
  { 1275, -1, sizeof(::Anki::Vector::external_interface::RobotHistoryResponse)},
  { 1281, -1, sizeof(::Anki::Vector::external_interface::OnboardingState)},
  { 1287, -1, sizeof(::Anki::Vector::external_interface::OnboardingStateRequest)},
  { 1292, -1, sizeof(::Anki::Vector::external_interface::OnboardingStateResponse)},
  { 1299, -1, sizeof(::Anki::Vector::external_interface::OnboardingSetPhaseRequest)},
  { 1305, -1, sizeof(::Anki::Vector::external_interface::OnboardingSetPhaseResponse)},
  { 1313, -1, sizeof(::Anki::Vector::external_interface::OnboardingPhaseProgressRequest)},
  { 1318, -1, sizeof(::Anki::Vector::external_interface::OnboardingPhaseProgressResponse)},
  { 1327, -1, sizeof(::Anki::Vector::external_interface::OnboardingChargeInfoRequest)},
  { 1332, -1, sizeof(::Anki::Vector::external_interface::OnboardingChargeInfoResponse)},
  { 1341, -1, sizeof(::Anki::Vector::external_interface::OnboardingSkipOnboarding)},
  { 1346, -1, sizeof(::Anki::Vector::external_interface::OnboardingRestart)},
  { 1351, -1, sizeof(::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit)},
  { 1356, -1, sizeof(::Anki::Vector::external_interface::OnboardingInputRequest)},
  { 1371, -1, sizeof(::Anki::Vector::external_interface::OnboardingInputResponse)},
  { 1384, -1, sizeof(::Anki::Vector::external_interface::OnboardingCompleteRequest)},
  { 1389, -1, sizeof(::Anki::Vector::external_interface::OnboardingCompleteResponse)},
  { 1395, -1, sizeof(::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest)},
  { 1400, -1, sizeof(::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse)},
  { 1406, -1, sizeof(::Anki::Vector::external_interface::OnboardingWakeUpRequest)},
  { 1411, -1, sizeof(::Anki::Vector::external_interface::OnboardingWakeUpResponse)},
  { 1418, -1, sizeof(::Anki::Vector::external_interface::Onboarding1p0ChargingInfo)},
  { 1426, -1, sizeof(::Anki::Vector::external_interface::OnboardingWakeUpFinished)},
  { 1431, -1, sizeof(::Anki::Vector::external_interface::FeatureFlagRequest)},
  { 1437, -1, sizeof(::Anki::Vector::external_interface::FeatureFlagResponse)},
  { 1445, -1, sizeof(::Anki::Vector::external_interface::FeatureFlagListRequest)},
  { 1451, -1, sizeof(::Anki::Vector::external_interface::FeatureFlagListResponse)},
  { 1458, -1, sizeof(::Anki::Vector::external_interface::AttentionTransfer)},
  { 1465, -1, sizeof(::Anki::Vector::external_interface::LatestAttentionTransferRequest)},
  { 1470, -1, sizeof(::Anki::Vector::external_interface::LatestAttentionTransfer)},
  { 1477, -1, sizeof(::Anki::Vector::external_interface::LatestAttentionTransferResponse)},
  { 1484, -1, sizeof(::Anki::Vector::external_interface::UpdateAndRestartRequest)},
  { 1489, -1, sizeof(::Anki::Vector::external_interface::UpdateAndRestartResponse)},
  { 1495, -1, sizeof(::Anki::Vector::external_interface::CheckUpdateStatusRequest)},
  { 1500, -1, sizeof(::Anki::Vector::external_interface::CheckUpdateStatusResponse)},
  { 1513, -1, sizeof(::Anki::Vector::external_interface::UploadDebugLogsRequest)},
  { 1518, -1, sizeof(::Anki::Vector::external_interface::UploadDebugLogsResponse)},
  { 1525, -1, sizeof(::Anki::Vector::external_interface::CheckCloudRequest)},
  { 1530, -1, sizeof(::Anki::Vector::external_interface::CheckCloudResponse)},
  { 1540, -1, sizeof(::Anki::Vector::external_interface::_FakeAlexaUsage)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_KeepAlivePing_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AnimationTrigger_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_Animation_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DriveWheelsRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DriveWheelsResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_MoveHeadRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_MoveHeadResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_MoveLiftRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_MoveLiftResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_StopAllMotorsRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_StopAllMotorsResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PlayAnimationTriggerRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PlayAnimationRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PlayAnimationResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ListAnimationsRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ListAnimationsResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ListAnimationTriggersRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ListAnimationTriggersResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DisplayFaceImageRGBRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DisplayFaceImageRGBResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_MeetVictorFaceScanStarted_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_MeetVictorFaceScanComplete_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_Status_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_WakeWord_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_TimeStampedStatus_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PoseStruct_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AccelData_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_GyroData_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ProxData_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_TouchData_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RobotState_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CladPoint_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CladRect_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RobotObservedMotion_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RobotErasedEnrolledFace_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UnexpectedMovement_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RobotObservedFace_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RobotChangedObservedFaceID_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_FaceEnrollmentCompleted_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CancelFaceEnrollmentRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CancelFaceEnrollmentResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RequestEnrolledNamesRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_LoadedKnownFace_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RobotRenamedEnrolledFace_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RequestEnrolledNamesResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UpdateEnrolledFaceByIDRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UpdateEnrolledFaceByIDResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EraseEnrolledFaceByIDRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EraseEnrolledFaceByIDResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EraseAllEnrolledFacesRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EraseAllEnrolledFacesResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SetFaceToEnrollRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SetFaceToEnrollResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EnrollFaceRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EnrollFaceResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DriveOffChargerRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DriveOffChargerResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DriveOnChargerRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DriveOnChargerResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_FindFacesRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_FindFacesResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_LookAroundInPlaceRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_LookAroundInPlaceResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RollBlockRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RollBlockResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_WakeWordBegin_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_WakeWordEnd_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UserIntent_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PhotoInfo_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PhotosInfoRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PhotosInfoResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PhotoRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PhotoPathMessage_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PhotoResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ThumbnailRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ThumbnailPathMessage_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ThumbnailResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DeletePhotoRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DeletePhotoResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PhotoTaken_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PathMotionProfile_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ActionResult_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CancelActionByIdTagRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CancelActionByIdTagResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CancelBehaviorRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CancelBehaviorResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_GoToPoseRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_GoToPoseResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DockWithCubeRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DockWithCubeResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DriveStraightRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DriveStraightResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_TurnInPlaceRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_TurnInPlaceResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SetHeadAngleRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SetHeadAngleResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SetLiftHeightRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SetLiftHeightResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_TurnTowardsFaceRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_TurnTowardsFaceResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_GoToObjectRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_GoToObjectResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RollObjectRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RollObjectResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PopAWheelieRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PopAWheelieResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PickupObjectRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PickupObjectResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PlaceObjectOnGroundHereRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_PlaceObjectOnGroundHereResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_BatteryStateRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_BatteryStateResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CubeBattery_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_VersionStateRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_VersionStateResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SayTextRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SayTextResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_StimulationInfo_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AudioSendModeRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AudioSendModeChanged_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AudioChunk_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AudioFeedRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AudioFeedResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ExternalAudioStreamPrepare_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ExternalAudioStreamChunk_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ExternalAudioStreamComplete_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ExternalAudioStreamCancel_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ExternalAudioStreamRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ExternalAudioStreamPlaybackComplete_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ExternalAudioStreamPlaybackFailure_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ExternalAudioStreamBufferOverrun_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ExternalAudioStreamResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_MasterVolumeRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_MasterVolumeResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EnableMarkerDetectionRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EnableMarkerDetectionResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EnableFaceDetectionRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EnableFaceDetectionResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EnableMotionDetectionRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EnableMotionDetectionResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EnableMirrorModeRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EnableMirrorModeResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_MirrorModeDisabled_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EnableImageStreamingRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_EnableImageStreamingResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_IsImageStreamingEnabledRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_IsImageStreamingEnabledResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_VisionModesAutoDisabled_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ImageChunk_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CameraFeedRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CameraFeedResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CaptureSingleImageRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CaptureSingleImageResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SetEyeColorRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SetEyeColorResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CameraConfigRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CameraConfigResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SetCameraSettingsRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SetCameraSettingsResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CameraSettingsUpdate_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SDKInitializationRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SDKInitializationResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AppDisconnected_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AppIntentRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AppIntentResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_FeatureStatus_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_Onboarding_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RobotHistoryRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RobotHistoryResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingState_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingStateRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingStateResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingSetPhaseRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingSetPhaseResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingPhaseProgressRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingPhaseProgressResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingChargeInfoRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingChargeInfoResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingSkipOnboarding_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingRestart_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingMarkCompleteAndExit_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingInputRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingInputResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingCompleteRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingCompleteResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingWakeUpStartedRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingWakeUpStartedResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingWakeUpRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingWakeUpResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_Onboarding1p0ChargingInfo_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_OnboardingWakeUpFinished_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_FeatureFlagRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_FeatureFlagResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_FeatureFlagListRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_FeatureFlagListResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_AttentionTransfer_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_LatestAttentionTransferRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_LatestAttentionTransfer_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_LatestAttentionTransferResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UpdateAndRestartRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UpdateAndRestartResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CheckUpdateStatusRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CheckUpdateStatusResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UploadDebugLogsRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_UploadDebugLogsResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CheckCloudRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CheckCloudResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::__FakeAlexaUsage_default_instance_),
};

const char descriptor_table_protodef_messages_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\016messages.proto\022\036Anki.Vector.external_i"
  "nterface\032\025response_status.proto\032\020extensi"
  "ons.proto\032\013alexa.proto\"\017\n\rKeepAlivePing\""
  " \n\020AnimationTrigger\022\014\n\004name\030\001 \001(\t\"\031\n\tAni"
  "mation\022\014\n\004name\030\001 \001(\t\"|\n\022DriveWheelsReque"
  "st\022\027\n\017left_wheel_mmps\030\001 \001(\002\022\030\n\020right_whe"
  "el_mmps\030\002 \001(\002\022\030\n\020left_wheel_mmps2\030\003 \001(\002\022"
  "\031\n\021right_wheel_mmps2\030\004 \001(\002\"U\n\023DriveWheel"
  "sResponse\022>\n\006status\030\001 \001(\0132..Anki.Vector."
  "external_interface.ResponseStatus\",\n\017Mov"
  "eHeadRequest\022\031\n\021speed_rad_per_sec\030\001 \001(\002\""
  "R\n\020MoveHeadResponse\022>\n\006status\030\001 \001(\0132..An"
  "ki.Vector.external_interface.ResponseSta"
  "tus\",\n\017MoveLiftRequest\022\031\n\021speed_rad_per_"
  "sec\030\001 \001(\002\"R\n\020MoveLiftResponse\022>\n\006status\030"
  "\001 \001(\0132..Anki.Vector.external_interface.R"
  "esponseStatus\"\026\n\024StopAllMotorsRequest\"W\n"
  "\025StopAllMotorsResponse\022>\n\006status\030\001 \001(\0132."
  ".Anki.Vector.external_interface.Response"
  "Status\"\341\001\n\033PlayAnimationTriggerRequest\022K"
  "\n\021animation_trigger\030\001 \001(\01320.Anki.Vector."
  "external_interface.AnimationTrigger\022\r\n\005l"
  "oops\030\002 \001(\r\022\025\n\ruse_lift_safe\030\003 \001(\010\022\031\n\021ign"
  "ore_body_track\030\004 \001(\010\022\031\n\021ignore_head_trac"
  "k\030\005 \001(\010\022\031\n\021ignore_lift_track\030\006 \001(\010\"\264\001\n\024P"
  "layAnimationRequest\022<\n\tanimation\030\001 \001(\0132)"
  ".Anki.Vector.external_interface.Animatio"
  "n\022\r\n\005loops\030\002 \001(\r\022\031\n\021ignore_body_track\030\003 "
  "\001(\010\022\031\n\021ignore_head_track\030\004 \001(\010\022\031\n\021ignore"
  "_lift_track\030\005 \001(\010\"\326\001\n\025PlayAnimationRespo"
  "nse\022>\n\006status\030\001 \001(\0132..Anki.Vector.extern"
  "al_interface.ResponseStatus\022\?\n\006result\030\002 "
  "\001(\0162/.Anki.Vector.external_interface.Beh"
  "aviorResults\022<\n\tanimation\030\003 \001(\0132).Anki.V"
  "ector.external_interface.Animation\"\027\n\025Li"
  "stAnimationsRequest\"\234\001\n\026ListAnimationsRe"
  "sponse\022>\n\006status\030\001 \001(\0132..Anki.Vector.ext"
  "ernal_interface.ResponseStatus\022B\n\017animat"
  "ion_names\030\002 \003(\0132).Anki.Vector.external_i"
  "nterface.Animation\"\036\n\034ListAnimationTrigg"
  "ersRequest\"\262\001\n\035ListAnimationTriggersResp"
  "onse\022>\n\006status\030\001 \001(\0132..Anki.Vector.exter"
  "nal_interface.ResponseStatus\022Q\n\027animatio"
  "n_trigger_names\030\002 \003(\01320.Anki.Vector.exte"
  "rnal_interface.AnimationTrigger\"_\n\032Displ"
  "ayFaceImageRGBRequest\022\021\n\tface_data\030\001 \001(\014"
  "\022\023\n\013duration_ms\030\002 \001(\r\022\031\n\021interrupt_runni"
  "ng\030\003 \001(\010\"]\n\033DisplayFaceImageRGBResponse\022"
  ">\n\006status\030\001 \001(\0132..Anki.Vector.external_i"
  "nterface.ResponseStatus\"\033\n\031MeetVictorFac"
  "eScanStarted\"\034\n\032MeetVictorFaceScanComple"
  "te\"\210\003\n\006Status\022G\n\016feature_status\030\001 \001(\0132-."
  "Anki.Vector.external_interface.FeatureSt"
  "atusH\000\022b\n\035meet_victor_face_scan_started\030"
  "\002 \001(\01329.Anki.Vector.external_interface.M"
  "eetVictorFaceScanStartedH\000\022d\n\036meet_victo"
  "r_face_scan_complete\030\003 \001(\0132:.Anki.Vector"
  ".external_interface.MeetVictorFaceScanCo"
  "mpleteH\000\022\\\n\031face_enrollment_completed\030\004 "
  "\001(\01327.Anki.Vector.external_interface.Fac"
  "eEnrollmentCompletedH\000B\r\n\013status_type\"\254\001"
  "\n\010WakeWord\022H\n\017wake_word_begin\030\001 \001(\0132-.An"
  "ki.Vector.external_interface.WakeWordBeg"
  "inH\000\022D\n\rwake_word_end\030\002 \001(\0132+.Anki.Vecto"
  "r.external_interface.WakeWordEndH\000B\020\n\016wa"
  "ke_word_type\"b\n\021TimeStampedStatus\0226\n\006sta"
  "tus\030\001 \001(\0132&.Anki.Vector.external_interfa"
  "ce.Status\022\025\n\rtimestamp_utc\030\002 \001(\r\"p\n\nPose"
  "Struct\022\t\n\001x\030\001 \001(\002\022\t\n\001y\030\002 \001(\002\022\t\n\001z\030\003 \001(\002\022"
  "\n\n\002q0\030\004 \001(\002\022\n\n\002q1\030\005 \001(\002\022\n\n\002q2\030\006 \001(\002\022\n\n\002q"
  "3\030\007 \001(\002\022\021\n\torigin_id\030\010 \001(\r\",\n\tAccelData\022"
  "\t\n\001x\030\001 \001(\002\022\t\n\001y\030\002 \001(\002\022\t\n\001z\030\003 \001(\002\"+\n\010Gyro"
  "Data\022\t\n\001x\030\001 \001(\002\022\t\n\001y\030\002 \001(\002\022\t\n\001z\030\003 \001(\002\"{\n"
  "\010ProxData\022\023\n\013distance_mm\030\001 \001(\r\022\026\n\016signal"
  "_quality\030\002 \001(\002\022\024\n\014unobstructed\030\003 \001(\010\022\024\n\014"
  "found_object\030\004 \001(\010\022\026\n\016is_lift_in_fov\030\005 \001"
  "(\010\">\n\tTouchData\022\027\n\017raw_touch_value\030\001 \001(\r"
  "\022\030\n\020is_being_touched\030\002 \001(\010\"\202\005\n\nRobotStat"
  "e\0228\n\004pose\030\001 \001(\0132*.Anki.Vector.external_i"
  "nterface.PoseStruct\022\026\n\016pose_angle_rad\030\002 "
  "\001(\002\022\026\n\016pose_pitch_rad\030\003 \001(\002\022\035\n\025left_whee"
  "l_speed_mmps\030\004 \001(\002\022\036\n\026right_wheel_speed_"
  "mmps\030\005 \001(\002\022\026\n\016head_angle_rad\030\006 \001(\002\022\026\n\016li"
  "ft_height_mm\030\007 \001(\002\0228\n\005accel\030\010 \001(\0132).Anki"
  ".Vector.external_interface.AccelData\0226\n\004"
  "gyro\030\t \001(\0132(.Anki.Vector.external_interf"
  "ace.GyroData\022\032\n\022carrying_object_id\030\n \001(\005"
  "\022!\n\031carrying_object_on_top_id\030\013 \001(\005\022\037\n\027h"
  "ead_tracking_object_id\030\014 \001(\005\022\036\n\026localize"
  "d_to_object_id\030\r \001(\005\022\035\n\025last_image_time_"
  "stamp\030\016 \001(\r\022\016\n\006status\030\017 \001(\r\022;\n\tprox_data"
  "\030\020 \001(\0132(.Anki.Vector.external_interface."
  "ProxData\022=\n\ntouch_data\030\021 \001(\0132).Anki.Vect"
  "or.external_interface.TouchData\"!\n\tCladP"
  "oint\022\t\n\001x\030\001 \001(\002\022\t\n\001y\030\002 \001(\002\"Q\n\010CladRect\022\022"
  "\n\nx_top_left\030\001 \001(\002\022\022\n\ny_top_left\030\002 \001(\002\022\r"
  "\n\005width\030\003 \001(\002\022\016\n\006height\030\004 \001(\002\"\223\003\n\023RobotO"
  "bservedMotion\022\021\n\ttimestamp\030\001 \001(\r\022\020\n\010img_"
  "area\030\002 \001(\002\022\r\n\005img_x\030\003 \001(\005\022\r\n\005img_y\030\004 \001(\005"
  "\022\023\n\013ground_area\030\005 \001(\002\022\020\n\010ground_x\030\006 \001(\005\022"
  "\020\n\010ground_y\030\007 \001(\005\022\024\n\014top_img_area\030\010 \001(\002\022"
  "\021\n\ttop_img_x\030\t \001(\005\022\021\n\ttop_img_y\030\n \001(\005\022\027\n"
  "\017bottom_img_area\030\013 \001(\002\022\024\n\014bottom_img_x\030\014"
  " \001(\005\022\024\n\014bottom_img_y\030\r \001(\005\022\025\n\rleft_img_a"
  "rea\030\016 \001(\002\022\022\n\nleft_img_x\030\017 \001(\005\022\022\n\nleft_im"
  "g_y\030\020 \001(\005\022\026\n\016right_img_area\030\021 \001(\002\022\023\n\013rig"
  "ht_img_x\030\022 \001(\005\022\023\n\013right_img_y\030\023 \001(\005\"8\n\027R"
  "obotErasedEnrolledFace\022\017\n\007face_id\030\001 \001(\005\022"
  "\014\n\004name\030\002 \001(\t\"\305\001\n\022UnexpectedMovement\022\021\n\t"
  "timestamp\030\001 \001(\r\022M\n\rmovement_type\030\002 \001(\01626"
  ".Anki.Vector.external_interface.Unexpect"
  "edMovementType\022M\n\rmovement_side\030\003 \001(\01626."
  "Anki.Vector.external_interface.Unexpecte"
  "dMovementSide\"\212\004\n\021RobotObservedFace\022\017\n\007f"
  "ace_id\030\001 \001(\005\022\021\n\ttimestamp\030\002 \001(\r\0228\n\004pose\030"
  "\003 \001(\0132*.Anki.Vector.external_interface.P"
  "oseStruct\022:\n\010img_rect\030\004 \001(\0132(.Anki.Vecto"
  "r.external_interface.CladRect\022\014\n\004name\030\005 "
  "\001(\t\022D\n\nexpression\030\006 \001(\01620.Anki.Vector.ex"
  "ternal_interface.FacialExpression\022\031\n\021exp"
  "ression_values\030\007 \003(\r\022;\n\010left_eye\030\010 \003(\0132)"
  ".Anki.Vector.external_interface.CladPoin"
  "t\022<\n\tright_eye\030\t \003(\0132).Anki.Vector.exter"
  "nal_interface.CladPoint\0227\n\004nose\030\n \003(\0132)."
  "Anki.Vector.external_interface.CladPoint"
  "\0228\n\005mouth\030\013 \003(\0132).Anki.Vector.external_i"
  "nterface.CladPoint\"<\n\032RobotChangedObserv"
  "edFaceID\022\016\n\006old_id\030\001 \001(\005\022\016\n\006new_id\030\002 \001(\005"
  "\"~\n\027FaceEnrollmentCompleted\022D\n\006result\030\001 "
  "\001(\01624.Anki.Vector.external_interface.Fac"
  "eEnrollmentResult\022\017\n\007face_id\030\002 \001(\005\022\014\n\004na"
  "me\030\003 \001(\t\"\035\n\033CancelFaceEnrollmentRequest\""
  "^\n\034CancelFaceEnrollmentResponse\022>\n\006statu"
  "s\030\001 \001(\0132..Anki.Vector.external_interface"
  ".ResponseStatus\"\035\n\033RequestEnrolledNamesR"
  "equest\"\302\001\n\017LoadedKnownFace\022$\n\034seconds_si"
  "nce_first_enrolled\030\001 \001(\003\022\"\n\032seconds_sinc"
  "e_last_updated\030\002 \001(\003\022\037\n\027seconds_since_la"
  "st_seen\030\003 \001(\003\022%\n\035last_seen_seconds_since"
  "_epoch\030\004 \001(\003\022\017\n\007face_id\030\005 \001(\005\022\014\n\004name\030\006 "
  "\001(\t\"9\n\030RobotRenamedEnrolledFace\022\017\n\007face_"
  "id\030\001 \001(\005\022\014\n\004name\030\002 \001(\t\"\236\001\n\034RequestEnroll"
  "edNamesResponse\022>\n\006status\030\001 \001(\0132..Anki.V"
  "ector.external_interface.ResponseStatus\022"
  ">\n\005faces\030\002 \003(\0132/.Anki.Vector.external_in"
  "terface.LoadedKnownFace\"T\n\035UpdateEnrolle"
  "dFaceByIDRequest\022\017\n\007face_id\030\001 \001(\005\022\020\n\010old"
  "_name\030\002 \001(\t\022\020\n\010new_name\030\003 \001(\t\"`\n\036UpdateE"
  "nrolledFaceByIDResponse\022>\n\006status\030\001 \001(\0132"
  "..Anki.Vector.external_interface.Respons"
  "eStatus\"/\n\034EraseEnrolledFaceByIDRequest\022"
  "\017\n\007face_id\030\001 \001(\005\"_\n\035EraseEnrolledFaceByI"
  "DResponse\022>\n\006status\030\001 \001(\0132..Anki.Vector."
  "external_interface.ResponseStatus\"\036\n\034Era"
  "seAllEnrolledFacesRequest\"_\n\035EraseAllEnr"
  "olledFacesResponse\022>\n\006status\030\001 \001(\0132..Ank"
  "i.Vector.external_interface.ResponseStat"
  "us\"\210\001\n\026SetFaceToEnrollRequest\022\014\n\004name\030\001 "
  "\001(\t\022\023\n\013observed_id\030\002 \001(\005\022\017\n\007save_id\030\003 \001("
  "\005\022\025\n\rsave_to_robot\030\004 \001(\010\022\020\n\010say_name\030\005 \001"
  "(\010\022\021\n\tuse_music\030\006 \001(\010\"Y\n\027SetFaceToEnroll"
  "Response\022>\n\006status\030\001 \001(\0132..Anki.Vector.e"
  "xternal_interface.ResponseStatus\"\023\n\021Enro"
  "llFaceRequest\"\225\001\n\022EnrollFaceResponse\022>\n\006"
  "status\030\001 \001(\0132..Anki.Vector.external_inte"
  "rface.ResponseStatus\022\?\n\006result\030\002 \001(\0162/.A"
  "nki.Vector.external_interface.BehaviorRe"
  "sults\"\030\n\026DriveOffChargerRequest\"\232\001\n\027Driv"
  "eOffChargerResponse\022>\n\006status\030\001 \001(\0132..An"
  "ki.Vector.external_interface.ResponseSta"
  "tus\022\?\n\006result\030\002 \001(\0162/.Anki.Vector.extern"
  "al_interface.BehaviorResults\"\027\n\025DriveOnC"
  "hargerRequest\"\231\001\n\026DriveOnChargerResponse"
  "\022>\n\006status\030\001 \001(\0132..Anki.Vector.external_"
  "interface.ResponseStatus\022\?\n\006result\030\002 \001(\016"
  "2/.Anki.Vector.external_interface.Behavi"
  "orResults\"\022\n\020FindFacesRequest\"\224\001\n\021FindFa"
  "cesResponse\022>\n\006status\030\001 \001(\0132..Anki.Vecto"
  "r.external_interface.ResponseStatus\022\?\n\006r"
  "esult\030\002 \001(\0162/.Anki.Vector.external_inter"
  "face.BehaviorResults\"\032\n\030LookAroundInPlac"
  "eRequest\"\234\001\n\031LookAroundInPlaceResponse\022>"
  "\n\006status\030\001 \001(\0132..Anki.Vector.external_in"
  "terface.ResponseStatus\022\?\n\006result\030\002 \001(\0162/"
  ".Anki.Vector.external_interface.Behavior"
  "Results\"\022\n\020RollBlockRequest\"\224\001\n\021RollBloc"
  "kResponse\022>\n\006status\030\001 \001(\0132..Anki.Vector."
  "external_interface.ResponseStatus\022\?\n\006res"
  "ult\030\002 \001(\0162/.Anki.Vector.external_interfa"
  "ce.BehaviorResults\"\017\n\rWakeWordBegin\"8\n\013W"
  "akeWordEnd\022\024\n\014intent_heard\030\001 \001(\010\022\023\n\013inte"
  "nt_json\030\002 \001(\t\"2\n\nUserIntent\022\021\n\tintent_id"
  "\030\001 \001(\r\022\021\n\tjson_data\030\002 \001(\t\"n\n\tPhotoInfo\022\020"
  "\n\010photo_id\030\001 \001(\r\022\025\n\rtimestamp_utc\030\002 \001(\r\022"
  "\033\n\023photo_copied_to_app\030\003 \001(\010\022\033\n\023thumb_co"
  "pied_to_app\030\004 \001(\010\"\023\n\021PhotosInfoRequest\"\224"
  "\001\n\022PhotosInfoResponse\022>\n\006status\030\001 \001(\0132.."
  "Anki.Vector.external_interface.ResponseS"
  "tatus\022>\n\013photo_infos\030\002 \003(\0132).Anki.Vector"
  ".external_interface.PhotoInfo\" \n\014PhotoRe"
  "quest\022\020\n\010photo_id\030\001 \001(\r\"6\n\020PhotoPathMess"
  "age\022\017\n\007success\030\001 \001(\010\022\021\n\tfull_path\030\002 \001(\t\""
  "o\n\rPhotoResponse\022>\n\006status\030\001 \001(\0132..Anki."
  "Vector.external_interface.ResponseStatus"
  "\022\017\n\007success\030\002 \001(\010\022\r\n\005image\030\003 \001(\014\"$\n\020Thum"
  "bnailRequest\022\020\n\010photo_id\030\001 \001(\r\":\n\024Thumbn"
  "ailPathMessage\022\017\n\007success\030\001 \001(\010\022\021\n\tfull_"
  "path\030\002 \001(\t\"s\n\021ThumbnailResponse\022>\n\006statu"
  "s\030\001 \001(\0132..Anki.Vector.external_interface"
  ".ResponseStatus\022\017\n\007success\030\002 \001(\010\022\r\n\005imag"
  "e\030\003 \001(\014\"&\n\022DeletePhotoRequest\022\020\n\010photo_i"
  "d\030\001 \001(\r\"f\n\023DeletePhotoResponse\022>\n\006status"
  "\030\001 \001(\0132..Anki.Vector.external_interface."
  "ResponseStatus\022\017\n\007success\030\002 \001(\010\"\036\n\nPhoto"
  "Taken\022\020\n\010photo_id\030\001 \001(\r\"\301\002\n\021PathMotionPr"
  "ofile\022\022\n\nspeed_mmps\030\001 \001(\002\022\023\n\013accel_mmps2"
  "\030\002 \001(\002\022\023\n\013decel_mmps2\030\003 \001(\002\022$\n\034point_tur"
  "n_speed_rad_per_sec\030\004 \001(\002\022%\n\035point_turn_"
  "accel_rad_per_sec2\030\005 \001(\002\022%\n\035point_turn_d"
  "ecel_rad_per_sec2\030\006 \001(\002\022\027\n\017dock_speed_mm"
  "ps\030\007 \001(\002\022\030\n\020dock_accel_mmps2\030\010 \001(\002\022\030\n\020do"
  "ck_decel_mmps2\030\t \001(\002\022\032\n\022reverse_speed_mm"
  "ps\030\n \001(\002\022\021\n\tis_custom\030\013 \001(\010\"\370\014\n\014ActionRe"
  "sult\022K\n\004code\030\001 \001(\0162=.Anki.Vector.externa"
  "l_interface.ActionResult.ActionResultCod"
  "e\"\232\014\n\020ActionResultCode\022\031\n\025ACTION_RESULT_"
  "SUCCESS\020\000\022\034\n\025ACTION_RESULT_RUNNING\020\200\200\200\010\022"
  ",\n%ACTION_RESULT_CANCELLED_WHILE_RUNNING"
  "\020\200\200\200\020\022\022\n\013NOT_STARTED\020\201\200\200\020\022\014\n\005ABORT\020\200\200\200\030\022"
  "\023\n\014ANIM_ABORTED\020\201\200\200\030\022\021\n\nBAD_MARKER\020\202\200\200\030\022"
  "\026\n\017BAD_MESSAGE_TAG\020\203\200\200\030\022\021\n\nBAD_OBJECT\020\204\200"
  "\200\030\022\017\n\010BAD_POSE\020\205\200\200\030\022\016\n\007BAD_TAG\020\206\200\200\030\022\036\n\027C"
  "HARGER_UNPLUGGED_ABORT\020\207\200\200\030\022!\n\032CLIFF_ALI"
  "GN_FAILED_TIMEOUT\020\210\200\200\030\022$\n\035CLIFF_ALIGN_FA"
  "ILED_NO_TURNING\020\211\200\200\030\022&\n\037CLIFF_ALIGN_FAIL"
  "ED_OVER_TURNING\020\212\200\200\030\022\"\n\033CLIFF_ALIGN_FAIL"
  "ED_NO_WHITE\020\213\200\200\030\022!\n\032CLIFF_ALIGN_FAILED_S"
  "TOPPED\020\214\200\200\030\022!\n\032FAILED_SETTING_CALIBRATIO"
  "N\020\215\200\200\030\022(\n!FOLLOWING_PATH_BUT_NOT_TRAVERS"
  "ING\020\216\200\200\030\022\022\n\013INTERRUPTED\020\217\200\200\030\022\037\n\030INVALID_"
  "OFF_TREADS_STATE\020\220\200\200\030\022\031\n\022MISMATCHED_UP_A"
  "XIS\020\221\200\200\030\022\023\n\014NO_ANIM_NAME\020\222\200\200\030\022\026\n\017NO_DIST"
  "ANCE_SET\020\223\200\200\030\022\016\n\007NO_FACE\020\224\200\200\030\022\022\n\013NO_GOAL"
  "_SET\020\225\200\200\030\022\031\n\022NO_PREACTION_POSES\020\226\200\200\030\022 \n\031"
  "NOT_CARRYING_OBJECT_ABORT\020\227\200\200\030\022\033\n\024NOT_ON"
  "_CHARGER_ABORT\020\230\200\200\030\022\025\n\016NULL_SUBACTION\020\231\200"
  "\200\030\022!\n\032PATH_PLANNING_FAILED_ABORT\020\232\200\200\030\022(\n"
  "!PICKUP_OBJECT_UNEXPECTEDLY_MOVING\020\233\200\200\030\022"
  "#\n\034SEND_MESSAGE_TO_ROBOT_FAILED\020\234\200\200\030\022\034\n\025"
  "STILL_CARRYING_OBJECT\020\235\200\200\030\022\016\n\007TIMEOUT\020\236\200"
  "\200\030\022\024\n\rTRACKS_LOCKED\020\237\200\200\030\022\035\n\026UNEXPECTED_D"
  "OCK_ACTION\020\240\200\200\030\022\030\n\021UNKNOWN_TOOL_CODE\020\241\200\200"
  "\030\022\034\n\025UPDATE_DERIVED_FAILED\020\242\200\200\030\022 \n\031VISUA"
  "L_OBSERVATION_FAILED\020\243\200\200\030\022 \n\031SHOULDNT_DR"
  "IVE_ON_CHARGER\020\244\200\200\030\022\014\n\005RETRY\020\200\200\200 \022#\n\034DID"
  "_NOT_REACH_PREACTION_POSE\020\201\200\200 \022\035\n\026FAILED"
  "_TRAVERSING_PATH\020\202\200\200 \022!\n\032LAST_PICK_AND_P"
  "LACE_FAILED\020\203\200\200 \022$\n\035MOTOR_STOPPED_MAKING"
  "_PROGRESS\020\204\200\200 \022 \n\031NOT_CARRYING_OBJECT_RE"
  "TRY\020\205\200\200 \022\033\n\024NOT_ON_CHARGER_RETRY\020\206\200\200 \022!\n"
  "\032PATH_PLANNING_FAILED_RETRY\020\207\200\200 \022\036\n\027PLAC"
  "EMENT_GOAL_NOT_FREE\020\210\200\200 \022,\n%PICKUP_OBJEC"
  "T_UNEXPECTEDLY_NOT_MOVING\020\211\200\200 \022\027\n\020STILL_"
  "ON_CHARGER\020\212\200\200 \022\035\n\026UNEXPECTED_PITCH_ANGL"
  "E\020\213\200\200 \",\n\032CancelActionByIdTagRequest\022\016\n\006"
  "id_tag\030\001 \001(\r\"]\n\033CancelActionByIdTagRespo"
  "nse\022>\n\006status\030\001 \001(\0132..Anki.Vector.extern"
  "al_interface.ResponseStatus\"\027\n\025CancelBeh"
  "aviorRequest\"X\n\026CancelBehaviorResponse\022>"
  "\n\006status\030\001 \001(\0132..Anki.Vector.external_in"
  "terface.ResponseStatus\"\247\001\n\017GoToPoseReque"
  "st\022\014\n\004x_mm\030\001 \001(\002\022\014\n\004y_mm\030\002 \001(\002\022\013\n\003rad\030\003 "
  "\001(\002\022F\n\013motion_prof\030\004 \001(\01321.Anki.Vector.e"
  "xternal_interface.PathMotionProfile\022\016\n\006i"
  "d_tag\030\005 \001(\005\022\023\n\013num_retries\030\006 \001(\005\"\220\001\n\020GoT"
  "oPoseResponse\022>\n\006status\030\001 \001(\0132..Anki.Vec"
  "tor.external_interface.ResponseStatus\022<\n"
  "\006result\030\002 \001(\0132,.Anki.Vector.external_int"
  "erface.ActionResult\"\320\002\n\023DockWithCubeRequ"
  "est\022\021\n\tobject_id\030\001 \001(\005\022\037\n\027distance_from_"
  "marker_mm\030\002 \001(\002\022\032\n\022approach_angle_rad\030\003 "
  "\001(\002\022E\n\016alignment_type\030\004 \001(\0162-.Anki.Vecto"
  "r.external_interface.AlignmentType\022\032\n\022us"
  "e_approach_angle\030\005 \001(\010\022\031\n\021use_pre_dock_p"
  "ose\030\006 \001(\010\022F\n\013motion_prof\030\007 \001(\01321.Anki.Ve"
  "ctor.external_interface.PathMotionProfil"
  "e\022\016\n\006id_tag\030\010 \001(\005\022\023\n\013num_retries\030\t \001(\005\"\224"
  "\001\n\024DockWithCubeResponse\022>\n\006status\030\001 \001(\0132"
  "..Anki.Vector.external_interface.Respons"
  "eStatus\022<\n\006result\030\002 \001(\0132,.Anki.Vector.ex"
  "ternal_interface.ActionResult\"\177\n\024DriveSt"
  "raightRequest\022\022\n\nspeed_mmps\030\001 \001(\002\022\017\n\007dis"
  "t_mm\030\002 \001(\002\022\035\n\025should_play_animation\030\003 \001("
  "\010\022\016\n\006id_tag\030\004 \001(\005\022\023\n\013num_retries\030\005 \001(\005\"\225"
  "\001\n\025DriveStraightResponse\022>\n\006status\030\001 \001(\013"
  "2..Anki.Vector.external_interface.Respon"
  "seStatus\022<\n\006result\030\002 \001(\0132,.Anki.Vector.e"
  "xternal_interface.ActionResult\"\251\001\n\022TurnI"
  "nPlaceRequest\022\021\n\tangle_rad\030\001 \001(\002\022\031\n\021spee"
  "d_rad_per_sec\030\002 \001(\002\022\032\n\022accel_rad_per_sec"
  "2\030\003 \001(\002\022\017\n\007tol_rad\030\004 \001(\002\022\023\n\013is_absolute\030"
  "\005 \001(\r\022\016\n\006id_tag\030\006 \001(\005\022\023\n\013num_retries\030\007 \001"
  "(\005\"\223\001\n\023TurnInPlaceResponse\022>\n\006status\030\001 \001"
  "(\0132..Anki.Vector.external_interface.Resp"
  "onseStatus\022<\n\006result\030\002 \001(\0132,.Anki.Vector"
  ".external_interface.ActionResult\"\236\001\n\023Set"
  "HeadAngleRequest\022\021\n\tangle_rad\030\001 \001(\002\022\035\n\025m"
  "ax_speed_rad_per_sec\030\002 \001(\002\022\032\n\022accel_rad_"
  "per_sec2\030\003 \001(\002\022\024\n\014duration_sec\030\004 \001(\002\022\016\n\006"
  "id_tag\030\005 \001(\005\022\023\n\013num_retries\030\006 \001(\005\"\224\001\n\024Se"
  "tHeadAngleResponse\022>\n\006status\030\001 \001(\0132..Ank"
  "i.Vector.external_interface.ResponseStat"
  "us\022<\n\006result\030\002 \001(\0132,.Anki.Vector.externa"
  "l_interface.ActionResult\"\237\001\n\024SetLiftHeig"
  "htRequest\022\021\n\theight_mm\030\001 \001(\002\022\035\n\025max_spee"
  "d_rad_per_sec\030\002 \001(\002\022\032\n\022accel_rad_per_sec"
  "2\030\003 \001(\002\022\024\n\014duration_sec\030\004 \001(\002\022\016\n\006id_tag\030"
  "\005 \001(\005\022\023\n\013num_retries\030\006 \001(\005\"\225\001\n\025SetLiftHe"
  "ightResponse\022>\n\006status\030\001 \001(\0132..Anki.Vect"
  "or.external_interface.ResponseStatus\022<\n\006"
  "result\030\002 \001(\0132,.Anki.Vector.external_inte"
  "rface.ActionResult\"j\n\026TurnTowardsFaceReq"
  "uest\022\017\n\007face_id\030\001 \001(\005\022\032\n\022max_turn_angle_"
  "rad\030\002 \001(\002\022\016\n\006id_tag\030\003 \001(\005\022\023\n\013num_retries"
  "\030\004 \001(\005\"\227\001\n\027TurnTowardsFaceResponse\022>\n\006st"
  "atus\030\001 \001(\0132..Anki.Vector.external_interf"
  "ace.ResponseStatus\022<\n\006result\030\002 \001(\0132,.Ank"
  "i.Vector.external_interface.ActionResult"
  "\"\326\001\n\021GoToObjectRequest\022\021\n\tobject_id\030\001 \001("
  "\005\022F\n\013motion_prof\030\002 \001(\01321.Anki.Vector.ext"
  "ernal_interface.PathMotionProfile\022&\n\036dis"
  "tance_from_object_origin_mm\030\003 \001(\002\022\031\n\021use"
  "_pre_dock_pose\030\004 \001(\010\022\016\n\006id_tag\030\005 \001(\005\022\023\n\013"
  "num_retries\030\006 \001(\005\"\222\001\n\022GoToObjectResponse"
  "\022>\n\006status\030\001 \001(\0132..Anki.Vector.external_"
  "interface.ResponseStatus\022<\n\006result\030\002 \001(\013"
  "2,.Anki.Vector.external_interface.Action"
  "Result\"\346\001\n\021RollObjectRequest\022\021\n\tobject_i"
  "d\030\001 \001(\005\022F\n\013motion_prof\030\002 \001(\01321.Anki.Vect"
  "or.external_interface.PathMotionProfile\022"
  "\032\n\022approach_angle_rad\030\003 \001(\002\022\032\n\022use_appro"
  "ach_angle\030\004 \001(\010\022\031\n\021use_pre_dock_pose\030\005 \001"
  "(\010\022\016\n\006id_tag\030\006 \001(\005\022\023\n\013num_retries\030\007 \001(\005\""
  "\222\001\n\022RollObjectResponse\022>\n\006status\030\001 \001(\0132."
  ".Anki.Vector.external_interface.Response"
  "Status\022<\n\006result\030\002 \001(\0132,.Anki.Vector.ext"
  "ernal_interface.ActionResult\"\347\001\n\022PopAWhe"
  "elieRequest\022\021\n\tobject_id\030\001 \001(\005\022F\n\013motion"
  "_prof\030\002 \001(\01321.Anki.Vector.external_inter"
  "face.PathMotionProfile\022\032\n\022approach_angle"
  "_rad\030\003 \001(\002\022\032\n\022use_approach_angle\030\004 \001(\010\022\031"
  "\n\021use_pre_dock_pose\030\005 \001(\010\022\016\n\006id_tag\030\006 \001("
  "\005\022\023\n\013num_retries\030\007 \001(\005\"\223\001\n\023PopAWheelieRe"
  "sponse\022>\n\006status\030\001 \001(\0132..Anki.Vector.ext"
  "ernal_interface.ResponseStatus\022<\n\006result"
  "\030\002 \001(\0132,.Anki.Vector.external_interface."
  "ActionResult\"\350\001\n\023PickupObjectRequest\022\021\n\t"
  "object_id\030\001 \001(\005\022F\n\013motion_prof\030\002 \001(\01321.A"
  "nki.Vector.external_interface.PathMotion"
  "Profile\022\032\n\022approach_angle_rad\030\003 \001(\002\022\032\n\022u"
  "se_approach_angle\030\004 \001(\010\022\031\n\021use_pre_dock_"
  "pose\030\005 \001(\010\022\016\n\006id_tag\030\006 \001(\005\022\023\n\013num_retrie"
  "s\030\007 \001(\005\"\224\001\n\024PickupObjectResponse\022>\n\006stat"
  "us\030\001 \001(\0132..Anki.Vector.external_interfac"
  "e.ResponseStatus\022<\n\006result\030\002 \001(\0132,.Anki."
  "Vector.external_interface.ActionResult\"E"
  "\n\036PlaceObjectOnGroundHereRequest\022\016\n\006id_t"
  "ag\030\001 \001(\005\022\023\n\013num_retries\030\002 \001(\005\"\237\001\n\037PlaceO"
  "bjectOnGroundHereResponse\022>\n\006status\030\001 \001("
  "\0132..Anki.Vector.external_interface.Respo"
  "nseStatus\022<\n\006result\030\002 \001(\0132,.Anki.Vector."
  "external_interface.ActionResult\"\025\n\023Batte"
  "ryStateRequest\"\311\002\n\024BatteryStateResponse\022"
  ">\n\006status\030\001 \001(\0132..Anki.Vector.external_i"
  "nterface.ResponseStatus\022C\n\rbattery_level"
  "\030\002 \001(\0162,.Anki.Vector.external_interface."
  "BatteryLevel\022\025\n\rbattery_volts\030\003 \001(\002\022\023\n\013i"
  "s_charging\030\004 \001(\010\022\036\n\026is_on_charger_platfo"
  "rm\030\005 \001(\010\022\035\n\025suggested_charger_sec\030\006 \001(\002\022"
  "A\n\014cube_battery\030\007 \001(\0132+.Anki.Vector.exte"
  "rnal_interface.CubeBattery\"\323\001\n\013CubeBatte"
  "ry\022K\n\005level\030\001 \001(\0162<.Anki.Vector.external"
  "_interface.CubeBattery.CubeBatteryLevel\022"
  "\022\n\nfactory_id\030\002 \001(\t\022\025\n\rbattery_volts\030\003 \001"
  "(\002\022#\n\033time_since_last_reading_sec\030\004 \001(\002\""
  "\'\n\020CubeBatteryLevel\022\007\n\003Low\020\000\022\n\n\006Normal\020\001"
  "\"\025\n\023VersionStateRequest\"\203\001\n\024VersionState"
  "Response\022>\n\006status\030\001 \001(\0132..Anki.Vector.e"
  "xternal_interface.ResponseStatus\022\022\n\nos_v"
  "ersion\030\002 \001(\t\022\027\n\017engine_build_id\030\003 \001(\t\"g\n"
  "\016SayTextRequest\022\014\n\004text\030\001 \001(\t\022\030\n\020use_vec"
  "tor_voice\030\002 \001(\010\022\027\n\017duration_scalar\030\003 \001(\002"
  "\022\024\n\014pitch_scalar\030\004 \001(\002\"\365\001\n\017SayTextRespon"
  "se\022>\n\006status\030\001 \001(\0132..Anki.Vector.externa"
  "l_interface.ResponseStatus\022M\n\005state\030\002 \001("
  "\0162>.Anki.Vector.external_interface.SayTe"
  "xtResponse.UtteranceState\"S\n\016UtteranceSt"
  "ate\022\013\n\007INVALID\020\000\022\016\n\nGENERATING\020\001\022\t\n\005READ"
  "Y\020\002\022\013\n\007PLAYING\020\003\022\014\n\010FINISHED\020\004\"\233\001\n\017Stimu"
  "lationInfo\022\026\n\016emotion_events\030\001 \003(\t\022\r\n\005va"
  "lue\030\002 \001(\002\022\020\n\010velocity\030\003 \001(\002\022\r\n\005accel\030\004 \001"
  "(\002\022\032\n\022value_before_event\030\005 \001(\002\022\021\n\tmin_va"
  "lue\030\006 \001(\002\022\021\n\tmax_value\030\007 \001(\002\"Y\n\024AudioSen"
  "dModeRequest\022A\n\004mode\030\001 \001(\01623.Anki.Vector"
  ".external_interface.AudioProcessingMode\""
  "Y\n\024AudioSendModeChanged\022A\n\004mode\030\001 \001(\01623."
  "Anki.Vector.external_interface.AudioProc"
  "essingMode\"\350\001\n\nAudioChunk\022\030\n\020robot_time_"
  "stamp\030\001 \001(\r\022\020\n\010group_id\030\002 \001(\r\022\020\n\010chunk_i"
  "d\030\003 \001(\r\022\031\n\021audio_chunk_count\030\004 \001(\r\022\024\n\014si"
  "gnal_power\030\005 \001(\014\022\033\n\023direction_strengths\030"
  "\006 \001(\014\022\030\n\020source_direction\030\007 \001(\r\022\031\n\021sourc"
  "e_confidence\030\010 \001(\r\022\031\n\021noise_floor_power\030"
  "\t \001(\r\"\022\n\020AudioFeedRequest\"\310\001\n\021AudioFeedR"
  "esponse\022\030\n\020robot_time_stamp\030\001 \001(\r\022\020\n\010gro"
  "up_id\030\002 \001(\r\022\024\n\014signal_power\030\003 \001(\014\022\033\n\023dir"
  "ection_strengths\030\004 \001(\014\022\030\n\020source_directi"
  "on\030\005 \001(\r\022\031\n\021source_confidence\030\006 \001(\r\022\031\n\021n"
  "oise_floor_power\030\007 \001(\r:\004\200\246\035\001\"L\n\032External"
  "AudioStreamPrepare\022\030\n\020audio_frame_rate\030\001"
  " \001(\r\022\024\n\014audio_volume\030\002 \001(\r\"W\n\030ExternalAu"
  "dioStreamChunk\022\036\n\026audio_chunk_size_bytes"
  "\030\001 \001(\r\022\033\n\023audio_chunk_samples\030\002 \001(\014\"\035\n\033E"
  "xternalAudioStreamComplete\"\033\n\031ExternalAu"
  "dioStreamCancel\"\236\003\n\032ExternalAudioStreamR"
  "equest\022Z\n\024audio_stream_prepare\030\001 \001(\0132:.A"
  "nki.Vector.external_interface.ExternalAu"
  "dioStreamPrepareH\000\022V\n\022audio_stream_chunk"
  "\030\002 \001(\01328.Anki.Vector.external_interface."
  "ExternalAudioStreamChunkH\000\022\\\n\025audio_stre"
  "am_complete\030\003 \001(\0132;.Anki.Vector.external"
  "_interface.ExternalAudioStreamCompleteH\000"
  "\022X\n\023audio_stream_cancel\030\004 \001(\01329.Anki.Vec"
  "tor.external_interface.ExternalAudioStre"
  "amCancelH\000B\024\n\022audio_request_type\"%\n#Exte"
  "rnalAudioStreamPlaybackComplete\"$\n\"Exter"
  "nalAudioStreamPlaybackFailure\"\\\n Externa"
  "lAudioStreamBufferOverrun\022\032\n\022audio_sampl"
  "es_sent\030\001 \001(\r\022\034\n\024audio_samples_played\030\002 "
  "\001(\r\"\371\002\n\033ExternalAudioStreamResponse\022m\n\036a"
  "udio_stream_playback_complete\030\001 \001(\0132C.An"
  "ki.Vector.external_interface.ExternalAud"
  "ioStreamPlaybackCompleteH\000\022g\n\033audio_stre"
  "am_buffer_overrun\030\002 \001(\0132@.Anki.Vector.ex"
  "ternal_interface.ExternalAudioStreamBuff"
  "erOverrunH\000\022k\n\035audio_stream_playback_fai"
  "lyer\030\003 \001(\0132B.Anki.Vector.external_interf"
  "ace.ExternalAudioStreamPlaybackFailureH\000"
  "B\025\n\023audio_response_type\"^\n\023MasterVolumeR"
  "equest\022G\n\014volume_level\030\001 \001(\01621.Anki.Vect"
  "or.external_interface.MasterVolumeLevel\""
  "V\n\024MasterVolumeResponse\022>\n\006status\030\001 \001(\0132"
  "..Anki.Vector.external_interface.Respons"
  "eStatus\".\n\034EnableMarkerDetectionRequest\022"
  "\016\n\006enable\030\001 \001(\010\"_\n\035EnableMarkerDetection"
  "Response\022>\n\006status\030\001 \001(\0132..Anki.Vector.e"
  "xternal_interface.ResponseStatus\"\261\001\n\032Ena"
  "bleFaceDetectionRequest\022\016\n\006enable\030\001 \001(\010\022"
  "\036\n\026enable_smile_detection\030\002 \001(\010\022$\n\034enabl"
  "e_expression_estimation\030\003 \001(\010\022\036\n\026enable_"
  "blink_detection\030\004 \001(\010\022\035\n\025enable_gaze_det"
  "ection\030\005 \001(\010\"]\n\033EnableFaceDetectionRespo"
  "nse\022>\n\006status\030\001 \001(\0132..Anki.Vector.extern"
  "al_interface.ResponseStatus\".\n\034EnableMot"
  "ionDetectionRequest\022\016\n\006enable\030\001 \001(\010\"_\n\035E"
  "nableMotionDetectionResponse\022>\n\006status\030\001"
  " \001(\0132..Anki.Vector.external_interface.Re"
  "sponseStatus\")\n\027EnableMirrorModeRequest\022"
  "\016\n\006enable\030\001 \001(\010\"Z\n\030EnableMirrorModeRespo"
  "nse\022>\n\006status\030\001 \001(\0132..Anki.Vector.extern"
  "al_interface.ResponseStatus\"\024\n\022MirrorMod"
  "eDisabled\"M\n\033EnableImageStreamingRequest"
  "\022\016\n\006enable\030\001 \001(\010\022\036\n\026enable_high_resoluti"
  "on\030\002 \001(\010\"^\n\034EnableImageStreamingResponse"
  "\022>\n\006status\030\001 \001(\0132..Anki.Vector.external_"
  "interface.ResponseStatus\" \n\036IsImageStrea"
  "mingEnabledRequest\"E\n\037IsImageStreamingEn"
  "abledResponse\022\"\n\032is_image_streaming_enab"
  "led\030\001 \001(\010\"\031\n\027VisionModesAutoDisabled\"\321\003\n"
  "\nImageChunk\022\030\n\020frame_time_stamp\030\001 \001(\r\022\020\n"
  "\010image_id\030\002 \001(\r\022\r\n\005width\030\003 \001(\r\022\016\n\006height"
  "\030\004 \001(\r\022P\n\016image_encoding\030\005 \001(\01628.Anki.Ve"
  "ctor.external_interface.ImageChunk.Image"
  "Encoding\022\025\n\rdisplay_index\030\006 \001(\r\022\031\n\021image"
  "_chunk_count\030\007 \001(\r\022\020\n\010chunk_id\030\010 \001(\r\022\014\n\004"
  "data\030\t \001(\014\"\323\001\n\rImageEncoding\022\027\n\023NONE_IMA"
  "GE_ENCODING\020\000\022\014\n\010RAW_GRAY\020\001\022\013\n\007RAW_RGB\020\002"
  "\022\010\n\004YUYV\020\003\022\014\n\010YUV420SP\020\004\022\t\n\005BAYER\020\005\022\r\n\tJ"
  "PEG_GRAY\020\006\022\016\n\nJPEG_COLOR\020\007\022\031\n\025JPEG_COLOR"
  "_HALF_WIDTH\020\010\022\027\n\023JPEG_MINIMIZED_GRAY\020\t\022\030"
  "\n\024JPEG_MINIMIZED_COLOR\020\n\"\023\n\021CameraFeedRe"
  "quest\"\246\001\n\022CameraFeedResponse\022\030\n\020frame_ti"
  "me_stamp\030\001 \001(\r\022\020\n\010image_id\030\002 \001(\r\022P\n\016imag"
  "e_encoding\030\003 \001(\01628.Anki.Vector.external_"
  "interface.ImageChunk.ImageEncoding\022\014\n\004da"
  "ta\030\004 \001(\014:\004\200\246\035\001\";\n\031CaptureSingleImageRequ"
  "est\022\036\n\026enable_high_resolution\030\001 \001(\010\"\350\001\n\032"
  "CaptureSingleImageResponse\022>\n\006status\030\001 \001"
  "(\0132..Anki.Vector.external_interface.Resp"
  "onseStatus\022\030\n\020frame_time_stamp\030\002 \001(\r\022\020\n\010"
  "image_id\030\003 \001(\r\022P\n\016image_encoding\030\004 \001(\01628"
  ".Anki.Vector.external_interface.ImageChu"
  "nk.ImageEncoding\022\014\n\004data\030\005 \001(\014\"5\n\022SetEye"
  "ColorRequest\022\013\n\003hue\030\001 \001(\002\022\022\n\nsaturation\030"
  "\002 \001(\002\"U\n\023SetEyeColorResponse\022>\n\006status\030\001"
  " \001(\0132..Anki.Vector.external_interface.Re"
  "sponseStatus\"\025\n\023CameraConfigRequest\"\204\002\n\024"
  "CameraConfigResponse\022\026\n\016focal_length_x\030\001"
  " \001(\002\022\026\n\016focal_length_y\030\002 \001(\002\022\020\n\010center_x"
  "\030\003 \001(\002\022\020\n\010center_y\030\004 \001(\002\022\r\n\005fov_x\030\005 \001(\002\022"
  "\r\n\005fov_y\030\006 \001(\002\022#\n\033min_camera_exposure_ti"
  "me_ms\030\007 \001(\r\022#\n\033max_camera_exposure_time_"
  "ms\030\010 \001(\r\022\027\n\017min_camera_gain\030\t \001(\002\022\027\n\017max"
  "_camera_gain\030\n \001(\002\"[\n\030SetCameraSettingsR"
  "equest\022\014\n\004gain\030\001 \001(\002\022\023\n\013exposure_ms\030\002 \001("
  "\r\022\034\n\024enable_auto_exposure\030\003 \001(\010\"s\n\031SetCa"
  "meraSettingsResponse\022>\n\006status\030\001 \001(\0132..A"
  "nki.Vector.external_interface.ResponseSt"
  "atus\022\026\n\016status_message\030\002 \001(\t\"X\n\024CameraSe"
  "ttingsUpdate\022\014\n\004gain\030\001 \001(\002\022\023\n\013exposure_m"
  "s\030\002 \001(\r\022\035\n\025auto_exposure_enabled\030\003 \001(\010\"\226"
  "\001\n\030SDKInitializationRequest\022\032\n\022sdk_modul"
  "e_version\030\001 \001(\t\022\026\n\016python_version\030\002 \001(\t\022"
  "\035\n\025python_implementation\030\003 \001(\t\022\022\n\nos_ver"
  "sion\030\004 \001(\t\022\023\n\013cpu_version\030\005 \001(\t\"[\n\031SDKIn"
  "itializationResponse\022>\n\006status\030\001 \001(\0132..A"
  "nki.Vector.external_interface.ResponseSt"
  "atus\"\021\n\017AppDisconnected\"1\n\020AppIntentRequ"
  "est\022\016\n\006intent\030\001 \001(\t\022\r\n\005param\030\002 \001(\t\"S\n\021Ap"
  "pIntentResponse\022>\n\006status\030\001 \001(\0132..Anki.V"
  "ector.external_interface.ResponseStatus\""
  "5\n\rFeatureStatus\022\024\n\014feature_name\030\001 \001(\t\022\016"
  "\n\006source\030\002 \001(\t\"\260\002\n\nOnboarding\022K\n\020onboard"
  "ing_state\030\001 \001(\0132/.Anki.Vector.external_i"
  "nterface.OnboardingStateH\000\022_\n\033onboarding"
  "_wake_up_finished\030\t \001(\01328.Anki.Vector.ex"
  "ternal_interface.OnboardingWakeUpFinishe"
  "dH\000\022a\n\034onboarding_1p0_charging_info\030\n \001("
  "\01329.Anki.Vector.external_interface.Onboa"
  "rding1p0ChargingInfoH\000B\021\n\017onboarding_typ"
  "e\"\025\n\023RobotHistoryRequest\"[\n\024RobotHistory"
  "Response\022C\n\010messages\030\001 \003(\01321.Anki.Vector"
  ".external_interface.TimeStampedStatus\"R\n"
  "\017OnboardingState\022\?\n\005stage\030\001 \001(\01620.Anki.V"
  "ector.external_interface.OnboardingStage"
  "s\"\030\n\026OnboardingStateRequest\"\244\001\n\027Onboardi"
  "ngStateResponse\022>\n\006status\030\001 \001(\0132..Anki.V"
  "ector.external_interface.ResponseStatus\022"
  "I\n\020onboarding_state\030\002 \001(\0132/.Anki.Vector."
  "external_interface.OnboardingState\"[\n\031On"
  "boardingSetPhaseRequest\022>\n\005phase\030\001 \001(\0162/"
  ".Anki.Vector.external_interface.Onboardi"
  "ngPhase\"\347\001\n\032OnboardingSetPhaseResponse\022>"
  "\n\006status\030\001 \001(\0132..Anki.Vector.external_in"
  "terface.ResponseStatus\022>\n\005phase\030\002 \001(\0162/."
  "Anki.Vector.external_interface.Onboardin"
  "gPhase\022I\n\013phase_state\030\003 \001(\01624.Anki.Vecto"
  "r.external_interface.OnboardingPhaseStat"
  "e\" \n\036OnboardingPhaseProgressRequest\"\231\002\n\037"
  "OnboardingPhaseProgressResponse\022>\n\006statu"
  "s\030\001 \001(\0132..Anki.Vector.external_interface"
  ".ResponseStatus\022G\n\016last_set_phase\030\002 \001(\0162"
  "/.Anki.Vector.external_interface.Onboard"
  "ingPhase\022R\n\024last_set_phase_state\030\003 \001(\01624"
  ".Anki.Vector.external_interface.Onboardi"
  "ngPhaseState\022\031\n\021percent_completed\030\004 \001(\005\""
  "\035\n\033OnboardingChargeInfoRequest\"\251\001\n\034Onboa"
  "rdingChargeInfoResponse\022>\n\006status\030\001 \001(\0132"
  "..Anki.Vector.external_interface.Respons"
  "eStatus\022\022\n\non_charger\030\002 \001(\010\022\027\n\017needs_to_"
  "charge\030\003 \001(\010\022\034\n\024required_charge_time\030\004 \001"
  "(\002\"\032\n\030OnboardingSkipOnboarding\"\023\n\021Onboar"
  "dingRestart\"\037\n\035OnboardingMarkCompleteAnd"
  "Exit\"\261\007\n\026OnboardingInputRequest\022`\n\033onboa"
  "rding_complete_request\030\001 \001(\01329.Anki.Vect"
  "or.external_interface.OnboardingComplete"
  "RequestH\000\022]\n\032onboarding_wake_up_request\030"
  "\002 \001(\01327.Anki.Vector.external_interface.O"
  "nboardingWakeUpRequestH\000\022^\n\032onboarding_s"
  "kip_onboarding\030\007 \001(\01328.Anki.Vector.exter"
  "nal_interface.OnboardingSkipOnboardingH\000"
  "\022O\n\022onboarding_restart\030\010 \001(\01321.Anki.Vect"
  "or.external_interface.OnboardingRestartH"
  "\000\022l\n\"onboarding_wake_up_started_request\030"
  "\t \001(\0132>.Anki.Vector.external_interface.O"
  "nboardingWakeUpStartedRequestH\000\022a\n\034onboa"
  "rding_set_phase_request\030\n \001(\01329.Anki.Vec"
  "tor.external_interface.OnboardingSetPhas"
  "eRequestH\000\022k\n!onboarding_phase_progress_"
  "request\030\013 \001(\0132>.Anki.Vector.external_int"
  "erface.OnboardingPhaseProgressRequestH\000\022"
  "e\n\036onboarding_charge_info_request\030\014 \001(\0132"
  ";.Anki.Vector.external_interface.Onboard"
  "ingChargeInfoRequestH\000\022j\n!onboarding_mar"
  "k_complete_and_exit\030\r \001(\0132=.Anki.Vector."
  "external_interface.OnboardingMarkComplet"
  "eAndExitH\000B\024\n\022oneof_message_type\"\341\005\n\027Onb"
  "oardingInputResponse\022>\n\006status\030\001 \001(\0132..A"
  "nki.Vector.external_interface.ResponseSt"
  "atus\022b\n\034onboarding_complete_response\030\002 \001"
  "(\0132:.Anki.Vector.external_interface.Onbo"
  "ardingCompleteResponseH\000\022_\n\033onboarding_w"
  "ake_up_response\030\003 \001(\01328.Anki.Vector.exte"
  "rnal_interface.OnboardingWakeUpResponseH"
  "\000\022n\n#onboarding_wake_up_started_response"
  "\030\006 \001(\0132\?.Anki.Vector.external_interface."
  "OnboardingWakeUpStartedResponseH\000\022c\n\035onb"
  "oarding_set_phase_response\030\007 \001(\0132:.Anki."
  "Vector.external_interface.OnboardingSetP"
  "haseResponseH\000\022m\n\"onboarding_phase_progr"
  "ess_response\030\010 \001(\0132\?.Anki.Vector.externa"
  "l_interface.OnboardingPhaseProgressRespo"
  "nseH\000\022g\n\037onboarding_charge_info_response"
  "\030\t \001(\0132<.Anki.Vector.external_interface."
  "OnboardingChargeInfoResponseH\000B\024\n\022oneof_"
  "message_type\"\033\n\031OnboardingCompleteReques"
  "t\"/\n\032OnboardingCompleteResponse\022\021\n\tcompl"
  "eted\030\001 \001(\010\" \n\036OnboardingWakeUpStartedReq"
  "uest\":\n\037OnboardingWakeUpStartedResponse\022"
  "\027\n\017already_started\030\001 \001(\010\"\031\n\027OnboardingWa"
  "keUpRequest\"\177\n\030OnboardingWakeUpResponse\022"
  "\021\n\twaking_up\030\001 \001(\010\022P\n\rcharging_info\030\002 \001("
  "\01329.Anki.Vector.external_interface.Onboa"
  "rding1p0ChargingInfo\"h\n\031Onboarding1p0Cha"
  "rgingInfo\022\022\n\non_charger\030\001 \001(\010\022\027\n\017needs_t"
  "o_charge\030\002 \001(\010\022\036\n\026suggested_charger_time"
  "\030\003 \001(\002\"\032\n\030OnboardingWakeUpFinished\"*\n\022Fe"
  "atureFlagRequest\022\024\n\014feature_name\030\001 \001(\t\"\205"
  "\001\n\023FeatureFlagResponse\022>\n\006status\030\001 \001(\0132."
  ".Anki.Vector.external_interface.Response"
  "Status\022\025\n\rvalid_feature\030\002 \001(\010\022\027\n\017feature"
  "_enabled\030\003 \001(\010\".\n\026FeatureFlagListRequest"
  "\022\024\n\014request_list\030\001 \003(\t\"g\n\027FeatureFlagLis"
  "tResponse\022>\n\006status\030\001 \001(\0132..Anki.Vector."
  "external_interface.ResponseStatus\022\014\n\004lis"
  "t\030\002 \003(\t\"q\n\021AttentionTransfer\022G\n\006reason\030\001"
  " \001(\01627.Anki.Vector.external_interface.At"
  "tentionTransferReason\022\023\n\013seconds_ago\030\002 \001"
  "(\002\" \n\036LatestAttentionTransferRequest\"\200\001\n"
  "\027LatestAttentionTransfer\022O\n\022attention_tr"
  "ansfer\030\001 \001(\01321.Anki.Vector.external_inte"
  "rface.AttentionTransferH\000B\024\n\022oneof_messa"
  "ge_type\"\275\001\n\037LatestAttentionTransferRespo"
  "nse\022>\n\006status\030\001 \001(\0132..Anki.Vector.extern"
  "al_interface.ResponseStatus\022Z\n\031latest_at"
  "tention_transfer\030\002 \001(\01327.Anki.Vector.ext"
  "ernal_interface.LatestAttentionTransfer\""
  "\031\n\027UpdateAndRestartRequest\"Z\n\030UpdateAndR"
  "estartResponse\022>\n\006status\030\001 \001(\0132..Anki.Ve"
  "ctor.external_interface.ResponseStatus\"\032"
  "\n\030CheckUpdateStatusRequest\"\375\003\n\031CheckUpda"
  "teStatusResponse\022>\n\006status\030\001 \001(\0132..Anki."
  "Vector.external_interface.ResponseStatus"
  "\022]\n\rupdate_status\030\002 \001(\0162F.Anki.Vector.ex"
  "ternal_interface.CheckUpdateStatusRespon"
  "se.UpdateStatus\022\020\n\010expected\030\003 \001(\003\022\020\n\010pro"
  "gress\030\004 \001(\003\022\026\n\016update_version\030\005 \001(\t\022\024\n\014u"
  "pdate_phase\030\006 \001(\t\022\r\n\005error\030\007 \001(\t\022\021\n\texit"
  "_code\030\010 \001(\003\"\306\001\n\014UpdateStatus\022\r\n\tNO_UPDAT"
  "E\020\000\022\'\n#READY_TO_REBOOT_INTO_NEW_OS_VERSI"
  "ON\020\001\022\030\n\024IN_PROGRESS_DOWNLOAD\020\002\022 \n\034FAILUR"
  "E_INTERRUPTED_DOWNLOAD\020\003\022\030\n\024IN_PROGRESS_"
  "STARTING\020\004\022\025\n\021IN_PROGRESS_OTHER\020\005\022\021\n\rFAI"
  "LURE_OTHER\020\006:\004\200\246\035\001\"\030\n\026UploadDebugLogsReq"
  "uest\"f\n\027UploadDebugLogsResponse\022>\n\006statu"
  "s\030\001 \001(\0132..Anki.Vector.external_interface"
  ".ResponseStatus\022\013\n\003url\030\002 \001(\t\"\023\n\021CheckClo"
  "udRequest\"\355\002\n\022CheckCloudResponse\022>\n\006stat"
  "us\030\001 \001(\0132..Anki.Vector.external_interfac"
  "e.ResponseStatus\022O\n\004code\030\002 \001(\0162A.Anki.Ve"
  "ctor.external_interface.CheckCloudRespon"
  "se.ConnectionCode\022\026\n\016status_message\030\003 \001("
  "\t\022\023\n\013num_packets\030\004 \001(\005\022\030\n\020expected_packe"
  "ts\030\005 \001(\005\"\177\n\016ConnectionCode\022\013\n\007UNKNOWN\020\000\022"
  "\r\n\tAVAILABLE\020\001\022\024\n\020BAD_CONNECTIVITY\020\002\022\016\n\n"
  "FAILED_TLS\020\003\022\017\n\013FAILED_AUTH\020\004\022\032\n\026INSUFFI"
  "CIENT_BANDWIDTH\020\005\"R\n\017_FakeAlexaUsage\022\?\n\007"
  "ignored\030\001 \001(\0162..Anki.Vector.external_int"
  "erface.AlexaAuthState*\334\004\n\013RobotStatus\022\025\n"
  "\021ROBOT_STATUS_NONE\020\000\022\032\n\026ROBOT_STATUS_IS_"
  "MOVING\020\001\022\"\n\036ROBOT_STATUS_IS_CARRYING_BLO"
  "CK\020\002\022&\n\"ROBOT_STATUS_IS_PICKING_OR_PLACI"
  "NG\020\004\022\035\n\031ROBOT_STATUS_IS_PICKED_UP\020\010\022\"\n\036R"
  "OBOT_STATUS_IS_BUTTON_PRESSED\020\020\022\033\n\027ROBOT"
  "_STATUS_IS_FALLING\020 \022\035\n\031ROBOT_STATUS_IS_"
  "ANIMATING\020@\022\034\n\027ROBOT_STATUS_IS_PATHING\020\200"
  "\001\022\035\n\030ROBOT_STATUS_LIFT_IN_POS\020\200\002\022\035\n\030ROBO"
  "T_STATUS_HEAD_IN_POS\020\200\004\022!\n\034ROBOT_STATUS_"
  "CALM_POWER_MODE\020\200\010\022\037\n\032ROBOT_STATUS_IS_ON"
  "_CHARGER\020\200 \022\035\n\030ROBOT_STATUS_IS_CHARGING\020"
  "\200@\022!\n\033ROBOT_STATUS_CLIFF_DETECTED\020\200\200\001\022$\n"
  "\036ROBOT_STATUS_ARE_WHEELS_MOVING\020\200\200\002\022 \n\032R"
  "OBOT_STATUS_IS_BEING_HELD\020\200\200\004\022%\n\037ROBOT_S"
  "TATUS_IS_MOTION_DETECTED\020\200\200\010*\215\001\n\026Unexpec"
  "tedMovementType\022\026\n\022TURNED_BUT_STOPPED\020\000\022"
  "\034\n\030TURNED_IN_SAME_DIRECTION\020\001\022 \n\034TURNED_"
  "IN_OPPOSITE_DIRECTION\020\002\022\033\n\027ROTATING_WITH"
  "OUT_MOTORS\020\003*O\n\026UnexpectedMovementSide\022\013"
  "\n\007UNKNOWN\020\000\022\t\n\005FRONT\020\001\022\010\n\004BACK\020\002\022\010\n\004LEFT"
  "\020\003\022\t\n\005RIGHT\020\004*\275\001\n\020FacialExpression\022\026\n\022EX"
  "PRESSION_UNKNOWN\020\000\022\026\n\022EXPRESSION_NEUTRAL"
  "\020\001\022\030\n\024EXPRESSION_HAPPINESS\020\002\022\027\n\023EXPRESSI"
  "ON_SURPRISE\020\003\022\024\n\020EXPRESSION_ANGER\020\004\022\026\n\022E"
  "XPRESSION_SADNESS\020\005\022\024\n\020EXPRESSION_COUNT\020"
  "\005\032\002\020\001*\314\001\n\024FaceEnrollmentResult\022\013\n\007SUCCES"
  "S\020\000\022\022\n\016SAW_WRONG_FACE\020\001\022\026\n\022SAW_MULTIPLE_"
  "FACES\020\002\022\r\n\tTIMED_OUT\020\003\022\017\n\013SAVE_FAILED\020\004\022"
  "\016\n\nINCOMPLETE\020\005\022\r\n\tCANCELLED\020\006\022\017\n\013NAME_I"
  "N_USE\020\007\022\026\n\022NAMED_STORAGE_FULL\020\010\022\023\n\017UNKNO"
  "WN_FAILURE\020\t*l\n\017BehaviorResults\022\032\n\026BEHAV"
  "IOR_INVALID_STATE\020\000\022\033\n\027BEHAVIOR_COMPLETE"
  "_STATE\020\001\022 \n\034BEHAVIOR_WONT_ACTIVATE_STATE"
  "\020\002*S\n\022ActionTagConstants\022\023\n\017INVALID_SDK_"
  "TAG\020\000\022\023\n\rFIRST_SDK_TAG\020\201\211z\022\023\n\014LAST_SDK_T"
  "AG\020\300\215\267\001*\236\001\n\rAlignmentType\022\032\n\026ALIGNMENT_T"
  "YPE_UNKNOWN\020\000\022\036\n\032ALIGNMENT_TYPE_LIFT_FIN"
  "GER\020\001\022\035\n\031ALIGNMENT_TYPE_LIFT_PLATE\020\002\022\027\n\023"
  "ALIGNMENT_TYPE_BODY\020\003\022\031\n\025ALIGNMENT_TYPE_"
  "CUSTOM\020\004*s\n\014BatteryLevel\022\031\n\025BATTERY_LEVE"
  "L_UNKNOWN\020\000\022\025\n\021BATTERY_LEVEL_LOW\020\001\022\031\n\025BA"
  "TTERY_LEVEL_NOMINAL\020\002\022\026\n\022BATTERY_LEVEL_F"
  "ULL\020\003*\314\001\n\016AudioConstants\022\030\n\024AUDIO_CONSTA"
  "NTS_NULL\020\000\022\034\n\030MIC_DETECTION_DIRECTIONS\020\014"
  "\022%\n SAMPLE_COUNTS_PER_ENGINE_MESSAGE\020\240\001\022"
  "\"\n\035SAMPLE_COUNTS_PER_SDK_MESSAGE\020\300\014\022\033\n\026M"
  "ICROPHONE_SAMPLE_RATE\020\211z\022\032\n\025PROCESSED_SA"
  "MPLE_RATE\020\200}*\205\001\n\023AudioProcessingMode\022\021\n\r"
  "AUDIO_UNKNOWN\020\000\022\r\n\tAUDIO_OFF\020\001\022\023\n\017AUDIO_"
  "FAST_MODE\020\002\022\032\n\026AUDIO_DIRECTIONAL_MODE\020\003\022"
  "\033\n\027AUDIO_VOICE_DETECT_MODE\020\004*v\n\021MasterVo"
  "lumeLevel\022\016\n\nVOLUME_LOW\020\000\022\025\n\021VOLUME_MEDI"
  "UM_LOW\020\001\022\021\n\rVOLUME_MEDIUM\020\002\022\026\n\022VOLUME_ME"
  "DIUM_HIGH\020\003\022\017\n\013VOLUME_HIGH\020\004*P\n\020Onboardi"
  "ngStages\022\016\n\nNotStarted\020\000\022\014\n\010TimedOut\020\001\022\014"
  "\n\010Complete\020\003\022\020\n\014DevDoNothing\020\004*\230\001\n\017Onboa"
  "rdingPhase\022\020\n\014InvalidPhase\020\000\022\013\n\007Default\020"
  "\001\022\017\n\013LookAtPhone\020\002\022\n\n\006WakeUp\020\003\022\016\n\nLookAt"
  "User\020\004\022\021\n\rTeachWakeWord\020\005\022\021\n\rTeachComeHe"
  "re\020\006\022\023\n\017TeachMeetVictor\020\007*b\n\024OnboardingP"
  "haseState\022\020\n\014PhaseInvalid\020\000\022\020\n\014PhasePend"
  "ing\020\001\022\023\n\017PhaseInProgress\020\002\022\021\n\rPhaseCompl"
  "ete\020\003*^\n\027AttentionTransferReason\022\013\n\007Inva"
  "lid\020\000\022\025\n\021NoCloudConnection\020\001\022\n\n\006NoWifi\020\002"
  "\022\023\n\017UnmatchedIntent\020\003B Z\036Anki.Vector.ext"
  "ernal_interfaceb\006proto3"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_messages_2eproto_deps[3] = {
  &::descriptor_table_alexa_2eproto,
  &::descriptor_table_extensions_2eproto,
  &::descriptor_table_response_5fstatus_2eproto,
};
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_messages_2eproto_sccs[208] = {
  &scc_info_AccelData_messages_2eproto.base,
  &scc_info_ActionResult_messages_2eproto.base,
  &scc_info_Animation_messages_2eproto.base,
  &scc_info_AnimationTrigger_messages_2eproto.base,
  &scc_info_AppDisconnected_messages_2eproto.base,
  &scc_info_AppIntentRequest_messages_2eproto.base,
  &scc_info_AppIntentResponse_messages_2eproto.base,
  &scc_info_AttentionTransfer_messages_2eproto.base,
  &scc_info_AudioChunk_messages_2eproto.base,
  &scc_info_AudioFeedRequest_messages_2eproto.base,
  &scc_info_AudioFeedResponse_messages_2eproto.base,
  &scc_info_AudioSendModeChanged_messages_2eproto.base,
  &scc_info_AudioSendModeRequest_messages_2eproto.base,
  &scc_info_BatteryStateRequest_messages_2eproto.base,
  &scc_info_BatteryStateResponse_messages_2eproto.base,
  &scc_info_CameraConfigRequest_messages_2eproto.base,
  &scc_info_CameraConfigResponse_messages_2eproto.base,
  &scc_info_CameraFeedRequest_messages_2eproto.base,
  &scc_info_CameraFeedResponse_messages_2eproto.base,
  &scc_info_CameraSettingsUpdate_messages_2eproto.base,
  &scc_info_CancelActionByIdTagRequest_messages_2eproto.base,
  &scc_info_CancelActionByIdTagResponse_messages_2eproto.base,
  &scc_info_CancelBehaviorRequest_messages_2eproto.base,
  &scc_info_CancelBehaviorResponse_messages_2eproto.base,
  &scc_info_CancelFaceEnrollmentRequest_messages_2eproto.base,
  &scc_info_CancelFaceEnrollmentResponse_messages_2eproto.base,
  &scc_info_CaptureSingleImageRequest_messages_2eproto.base,
  &scc_info_CaptureSingleImageResponse_messages_2eproto.base,
  &scc_info_CheckCloudRequest_messages_2eproto.base,
  &scc_info_CheckCloudResponse_messages_2eproto.base,
  &scc_info_CheckUpdateStatusRequest_messages_2eproto.base,
  &scc_info_CheckUpdateStatusResponse_messages_2eproto.base,
  &scc_info_CladPoint_messages_2eproto.base,
  &scc_info_CladRect_messages_2eproto.base,
  &scc_info_CubeBattery_messages_2eproto.base,
  &scc_info_DeletePhotoRequest_messages_2eproto.base,
  &scc_info_DeletePhotoResponse_messages_2eproto.base,
  &scc_info_DisplayFaceImageRGBRequest_messages_2eproto.base,
  &scc_info_DisplayFaceImageRGBResponse_messages_2eproto.base,
  &scc_info_DockWithCubeRequest_messages_2eproto.base,
  &scc_info_DockWithCubeResponse_messages_2eproto.base,
  &scc_info_DriveOffChargerRequest_messages_2eproto.base,
  &scc_info_DriveOffChargerResponse_messages_2eproto.base,
  &scc_info_DriveOnChargerRequest_messages_2eproto.base,
  &scc_info_DriveOnChargerResponse_messages_2eproto.base,
  &scc_info_DriveStraightRequest_messages_2eproto.base,
  &scc_info_DriveStraightResponse_messages_2eproto.base,
  &scc_info_DriveWheelsRequest_messages_2eproto.base,
  &scc_info_DriveWheelsResponse_messages_2eproto.base,
  &scc_info_EnableFaceDetectionRequest_messages_2eproto.base,
  &scc_info_EnableFaceDetectionResponse_messages_2eproto.base,
  &scc_info_EnableImageStreamingRequest_messages_2eproto.base,
  &scc_info_EnableImageStreamingResponse_messages_2eproto.base,
  &scc_info_EnableMarkerDetectionRequest_messages_2eproto.base,
  &scc_info_EnableMarkerDetectionResponse_messages_2eproto.base,
  &scc_info_EnableMirrorModeRequest_messages_2eproto.base,
  &scc_info_EnableMirrorModeResponse_messages_2eproto.base,
  &scc_info_EnableMotionDetectionRequest_messages_2eproto.base,
  &scc_info_EnableMotionDetectionResponse_messages_2eproto.base,
  &scc_info_EnrollFaceRequest_messages_2eproto.base,
  &scc_info_EnrollFaceResponse_messages_2eproto.base,
  &scc_info_EraseAllEnrolledFacesRequest_messages_2eproto.base,
  &scc_info_EraseAllEnrolledFacesResponse_messages_2eproto.base,
  &scc_info_EraseEnrolledFaceByIDRequest_messages_2eproto.base,
  &scc_info_EraseEnrolledFaceByIDResponse_messages_2eproto.base,
  &scc_info_ExternalAudioStreamBufferOverrun_messages_2eproto.base,
  &scc_info_ExternalAudioStreamCancel_messages_2eproto.base,
  &scc_info_ExternalAudioStreamChunk_messages_2eproto.base,
  &scc_info_ExternalAudioStreamComplete_messages_2eproto.base,
  &scc_info_ExternalAudioStreamPlaybackComplete_messages_2eproto.base,
  &scc_info_ExternalAudioStreamPlaybackFailure_messages_2eproto.base,
  &scc_info_ExternalAudioStreamPrepare_messages_2eproto.base,
  &scc_info_ExternalAudioStreamRequest_messages_2eproto.base,
  &scc_info_ExternalAudioStreamResponse_messages_2eproto.base,
  &scc_info_FaceEnrollmentCompleted_messages_2eproto.base,
  &scc_info_FeatureFlagListRequest_messages_2eproto.base,
  &scc_info_FeatureFlagListResponse_messages_2eproto.base,
  &scc_info_FeatureFlagRequest_messages_2eproto.base,
  &scc_info_FeatureFlagResponse_messages_2eproto.base,
  &scc_info_FeatureStatus_messages_2eproto.base,
  &scc_info_FindFacesRequest_messages_2eproto.base,
  &scc_info_FindFacesResponse_messages_2eproto.base,
  &scc_info_GoToObjectRequest_messages_2eproto.base,
  &scc_info_GoToObjectResponse_messages_2eproto.base,
  &scc_info_GoToPoseRequest_messages_2eproto.base,
  &scc_info_GoToPoseResponse_messages_2eproto.base,
  &scc_info_GyroData_messages_2eproto.base,
  &scc_info_ImageChunk_messages_2eproto.base,
  &scc_info_IsImageStreamingEnabledRequest_messages_2eproto.base,
  &scc_info_IsImageStreamingEnabledResponse_messages_2eproto.base,
  &scc_info_KeepAlivePing_messages_2eproto.base,
  &scc_info_LatestAttentionTransfer_messages_2eproto.base,
  &scc_info_LatestAttentionTransferRequest_messages_2eproto.base,
  &scc_info_LatestAttentionTransferResponse_messages_2eproto.base,
  &scc_info_ListAnimationTriggersRequest_messages_2eproto.base,
  &scc_info_ListAnimationTriggersResponse_messages_2eproto.base,
  &scc_info_ListAnimationsRequest_messages_2eproto.base,
  &scc_info_ListAnimationsResponse_messages_2eproto.base,
  &scc_info_LoadedKnownFace_messages_2eproto.base,
  &scc_info_LookAroundInPlaceRequest_messages_2eproto.base,
  &scc_info_LookAroundInPlaceResponse_messages_2eproto.base,
  &scc_info_MasterVolumeRequest_messages_2eproto.base,
  &scc_info_MasterVolumeResponse_messages_2eproto.base,
  &scc_info_MeetVictorFaceScanComplete_messages_2eproto.base,
  &scc_info_MeetVictorFaceScanStarted_messages_2eproto.base,
  &scc_info_MirrorModeDisabled_messages_2eproto.base,
  &scc_info_MoveHeadRequest_messages_2eproto.base,
  &scc_info_MoveHeadResponse_messages_2eproto.base,
  &scc_info_MoveLiftRequest_messages_2eproto.base,
  &scc_info_MoveLiftResponse_messages_2eproto.base,
  &scc_info_Onboarding_messages_2eproto.base,
  &scc_info_Onboarding1p0ChargingInfo_messages_2eproto.base,
  &scc_info_OnboardingChargeInfoRequest_messages_2eproto.base,
  &scc_info_OnboardingChargeInfoResponse_messages_2eproto.base,
  &scc_info_OnboardingCompleteRequest_messages_2eproto.base,
  &scc_info_OnboardingCompleteResponse_messages_2eproto.base,
  &scc_info_OnboardingInputRequest_messages_2eproto.base,
  &scc_info_OnboardingInputResponse_messages_2eproto.base,
  &scc_info_OnboardingMarkCompleteAndExit_messages_2eproto.base,
  &scc_info_OnboardingPhaseProgressRequest_messages_2eproto.base,
  &scc_info_OnboardingPhaseProgressResponse_messages_2eproto.base,
  &scc_info_OnboardingRestart_messages_2eproto.base,
  &scc_info_OnboardingSetPhaseRequest_messages_2eproto.base,
  &scc_info_OnboardingSetPhaseResponse_messages_2eproto.base,
  &scc_info_OnboardingSkipOnboarding_messages_2eproto.base,
  &scc_info_OnboardingState_messages_2eproto.base,
  &scc_info_OnboardingStateRequest_messages_2eproto.base,
  &scc_info_OnboardingStateResponse_messages_2eproto.base,
  &scc_info_OnboardingWakeUpFinished_messages_2eproto.base,
  &scc_info_OnboardingWakeUpRequest_messages_2eproto.base,
  &scc_info_OnboardingWakeUpResponse_messages_2eproto.base,
  &scc_info_OnboardingWakeUpStartedRequest_messages_2eproto.base,
  &scc_info_OnboardingWakeUpStartedResponse_messages_2eproto.base,
  &scc_info_PathMotionProfile_messages_2eproto.base,
  &scc_info_PhotoInfo_messages_2eproto.base,
  &scc_info_PhotoPathMessage_messages_2eproto.base,
  &scc_info_PhotoRequest_messages_2eproto.base,
  &scc_info_PhotoResponse_messages_2eproto.base,
  &scc_info_PhotoTaken_messages_2eproto.base,
  &scc_info_PhotosInfoRequest_messages_2eproto.base,
  &scc_info_PhotosInfoResponse_messages_2eproto.base,
  &scc_info_PickupObjectRequest_messages_2eproto.base,
  &scc_info_PickupObjectResponse_messages_2eproto.base,
  &scc_info_PlaceObjectOnGroundHereRequest_messages_2eproto.base,
  &scc_info_PlaceObjectOnGroundHereResponse_messages_2eproto.base,
  &scc_info_PlayAnimationRequest_messages_2eproto.base,
  &scc_info_PlayAnimationResponse_messages_2eproto.base,
  &scc_info_PlayAnimationTriggerRequest_messages_2eproto.base,
  &scc_info_PopAWheelieRequest_messages_2eproto.base,
  &scc_info_PopAWheelieResponse_messages_2eproto.base,
  &scc_info_PoseStruct_messages_2eproto.base,
  &scc_info_ProxData_messages_2eproto.base,
  &scc_info_RequestEnrolledNamesRequest_messages_2eproto.base,
  &scc_info_RequestEnrolledNamesResponse_messages_2eproto.base,
  &scc_info_RobotChangedObservedFaceID_messages_2eproto.base,
  &scc_info_RobotErasedEnrolledFace_messages_2eproto.base,
  &scc_info_RobotHistoryRequest_messages_2eproto.base,
  &scc_info_RobotHistoryResponse_messages_2eproto.base,
  &scc_info_RobotObservedFace_messages_2eproto.base,
  &scc_info_RobotObservedMotion_messages_2eproto.base,
  &scc_info_RobotRenamedEnrolledFace_messages_2eproto.base,
  &scc_info_RobotState_messages_2eproto.base,
  &scc_info_RollBlockRequest_messages_2eproto.base,
  &scc_info_RollBlockResponse_messages_2eproto.base,
  &scc_info_RollObjectRequest_messages_2eproto.base,
  &scc_info_RollObjectResponse_messages_2eproto.base,
  &scc_info_SDKInitializationRequest_messages_2eproto.base,
  &scc_info_SDKInitializationResponse_messages_2eproto.base,
  &scc_info_SayTextRequest_messages_2eproto.base,
  &scc_info_SayTextResponse_messages_2eproto.base,
  &scc_info_SetCameraSettingsRequest_messages_2eproto.base,
  &scc_info_SetCameraSettingsResponse_messages_2eproto.base,
  &scc_info_SetEyeColorRequest_messages_2eproto.base,
  &scc_info_SetEyeColorResponse_messages_2eproto.base,
  &scc_info_SetFaceToEnrollRequest_messages_2eproto.base,
  &scc_info_SetFaceToEnrollResponse_messages_2eproto.base,
  &scc_info_SetHeadAngleRequest_messages_2eproto.base,
  &scc_info_SetHeadAngleResponse_messages_2eproto.base,
  &scc_info_SetLiftHeightRequest_messages_2eproto.base,
  &scc_info_SetLiftHeightResponse_messages_2eproto.base,
  &scc_info_Status_messages_2eproto.base,
  &scc_info_StimulationInfo_messages_2eproto.base,
  &scc_info_StopAllMotorsRequest_messages_2eproto.base,
  &scc_info_StopAllMotorsResponse_messages_2eproto.base,
  &scc_info_ThumbnailPathMessage_messages_2eproto.base,
  &scc_info_ThumbnailRequest_messages_2eproto.base,
  &scc_info_ThumbnailResponse_messages_2eproto.base,
  &scc_info_TimeStampedStatus_messages_2eproto.base,
  &scc_info_TouchData_messages_2eproto.base,
  &scc_info_TurnInPlaceRequest_messages_2eproto.base,
  &scc_info_TurnInPlaceResponse_messages_2eproto.base,
  &scc_info_TurnTowardsFaceRequest_messages_2eproto.base,
  &scc_info_TurnTowardsFaceResponse_messages_2eproto.base,
  &scc_info_UnexpectedMovement_messages_2eproto.base,
  &scc_info_UpdateAndRestartRequest_messages_2eproto.base,
  &scc_info_UpdateAndRestartResponse_messages_2eproto.base,
  &scc_info_UpdateEnrolledFaceByIDRequest_messages_2eproto.base,
  &scc_info_UpdateEnrolledFaceByIDResponse_messages_2eproto.base,
  &scc_info_UploadDebugLogsRequest_messages_2eproto.base,
  &scc_info_UploadDebugLogsResponse_messages_2eproto.base,
  &scc_info_UserIntent_messages_2eproto.base,
  &scc_info_VersionStateRequest_messages_2eproto.base,
  &scc_info_VersionStateResponse_messages_2eproto.base,
  &scc_info_VisionModesAutoDisabled_messages_2eproto.base,
  &scc_info_WakeWord_messages_2eproto.base,
  &scc_info_WakeWordBegin_messages_2eproto.base,
  &scc_info_WakeWordEnd_messages_2eproto.base,
  &scc_info__FakeAlexaUsage_messages_2eproto.base,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_messages_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_messages_2eproto = {
  false, false, descriptor_table_protodef_messages_2eproto, "messages.proto", 29783,
  &descriptor_table_messages_2eproto_once, descriptor_table_messages_2eproto_sccs, descriptor_table_messages_2eproto_deps, 208, 3,
  schemas, file_default_instances, TableStruct_messages_2eproto::offsets,
  file_level_metadata_messages_2eproto, 208, file_level_enum_descriptors_messages_2eproto, file_level_service_descriptors_messages_2eproto,
};

// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_messages_2eproto = (static_cast<void>(::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_messages_2eproto)), true);
namespace Anki {
namespace Vector {
namespace external_interface {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ActionResult_ActionResultCode_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[0];
}
bool ActionResult_ActionResultCode_IsValid(int value) {
  switch (value) {
    case 0:
    case 16777216:
    case 33554432:
    case 33554433:
    case 50331648:
    case 50331649:
    case 50331650:
    case 50331651:
    case 50331652:
    case 50331653:
    case 50331654:
    case 50331655:
    case 50331656:
    case 50331657:
    case 50331658:
    case 50331659:
    case 50331660:
    case 50331661:
    case 50331662:
    case 50331663:
    case 50331664:
    case 50331665:
    case 50331666:
    case 50331667:
    case 50331668:
    case 50331669:
    case 50331670:
    case 50331671:
    case 50331672:
    case 50331673:
    case 50331674:
    case 50331675:
    case 50331676:
    case 50331677:
    case 50331678:
    case 50331679:
    case 50331680:
    case 50331681:
    case 50331682:
    case 50331683:
    case 50331684:
    case 67108864:
    case 67108865:
    case 67108866:
    case 67108867:
    case 67108868:
    case 67108869:
    case 67108870:
    case 67108871:
    case 67108872:
    case 67108873:
    case 67108874:
    case 67108875:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
constexpr ActionResult_ActionResultCode ActionResult::ACTION_RESULT_SUCCESS;
constexpr ActionResult_ActionResultCode ActionResult::ACTION_RESULT_RUNNING;
constexpr ActionResult_ActionResultCode ActionResult::ACTION_RESULT_CANCELLED_WHILE_RUNNING;
constexpr ActionResult_ActionResultCode ActionResult::NOT_STARTED;
constexpr ActionResult_ActionResultCode ActionResult::ABORT;
constexpr ActionResult_ActionResultCode ActionResult::ANIM_ABORTED;
constexpr ActionResult_ActionResultCode ActionResult::BAD_MARKER;
constexpr ActionResult_ActionResultCode ActionResult::BAD_MESSAGE_TAG;
constexpr ActionResult_ActionResultCode ActionResult::BAD_OBJECT;
constexpr ActionResult_ActionResultCode ActionResult::BAD_POSE;
constexpr ActionResult_ActionResultCode ActionResult::BAD_TAG;
constexpr ActionResult_ActionResultCode ActionResult::CHARGER_UNPLUGGED_ABORT;
constexpr ActionResult_ActionResultCode ActionResult::CLIFF_ALIGN_FAILED_TIMEOUT;
constexpr ActionResult_ActionResultCode ActionResult::CLIFF_ALIGN_FAILED_NO_TURNING;
constexpr ActionResult_ActionResultCode ActionResult::CLIFF_ALIGN_FAILED_OVER_TURNING;
constexpr ActionResult_ActionResultCode ActionResult::CLIFF_ALIGN_FAILED_NO_WHITE;
constexpr ActionResult_ActionResultCode ActionResult::CLIFF_ALIGN_FAILED_STOPPED;
constexpr ActionResult_ActionResultCode ActionResult::FAILED_SETTING_CALIBRATION;
constexpr ActionResult_ActionResultCode ActionResult::FOLLOWING_PATH_BUT_NOT_TRAVERSING;
constexpr ActionResult_ActionResultCode ActionResult::INTERRUPTED;
constexpr ActionResult_ActionResultCode ActionResult::INVALID_OFF_TREADS_STATE;
constexpr ActionResult_ActionResultCode ActionResult::MISMATCHED_UP_AXIS;
constexpr ActionResult_ActionResultCode ActionResult::NO_ANIM_NAME;
constexpr ActionResult_ActionResultCode ActionResult::NO_DISTANCE_SET;
constexpr ActionResult_ActionResultCode ActionResult::NO_FACE;
constexpr ActionResult_ActionResultCode ActionResult::NO_GOAL_SET;
constexpr ActionResult_ActionResultCode ActionResult::NO_PREACTION_POSES;
constexpr ActionResult_ActionResultCode ActionResult::NOT_CARRYING_OBJECT_ABORT;
constexpr ActionResult_ActionResultCode ActionResult::NOT_ON_CHARGER_ABORT;
constexpr ActionResult_ActionResultCode ActionResult::NULL_SUBACTION;
constexpr ActionResult_ActionResultCode ActionResult::PATH_PLANNING_FAILED_ABORT;
constexpr ActionResult_ActionResultCode ActionResult::PICKUP_OBJECT_UNEXPECTEDLY_MOVING;
constexpr ActionResult_ActionResultCode ActionResult::SEND_MESSAGE_TO_ROBOT_FAILED;
constexpr ActionResult_ActionResultCode ActionResult::STILL_CARRYING_OBJECT;
constexpr ActionResult_ActionResultCode ActionResult::TIMEOUT;
constexpr ActionResult_ActionResultCode ActionResult::TRACKS_LOCKED;
constexpr ActionResult_ActionResultCode ActionResult::UNEXPECTED_DOCK_ACTION;
constexpr ActionResult_ActionResultCode ActionResult::UNKNOWN_TOOL_CODE;
constexpr ActionResult_ActionResultCode ActionResult::UPDATE_DERIVED_FAILED;
constexpr ActionResult_ActionResultCode ActionResult::VISUAL_OBSERVATION_FAILED;
constexpr ActionResult_ActionResultCode ActionResult::SHOULDNT_DRIVE_ON_CHARGER;
constexpr ActionResult_ActionResultCode ActionResult::RETRY;
constexpr ActionResult_ActionResultCode ActionResult::DID_NOT_REACH_PREACTION_POSE;
constexpr ActionResult_ActionResultCode ActionResult::FAILED_TRAVERSING_PATH;
constexpr ActionResult_ActionResultCode ActionResult::LAST_PICK_AND_PLACE_FAILED;
constexpr ActionResult_ActionResultCode ActionResult::MOTOR_STOPPED_MAKING_PROGRESS;
constexpr ActionResult_ActionResultCode ActionResult::NOT_CARRYING_OBJECT_RETRY;
constexpr ActionResult_ActionResultCode ActionResult::NOT_ON_CHARGER_RETRY;
constexpr ActionResult_ActionResultCode ActionResult::PATH_PLANNING_FAILED_RETRY;
constexpr ActionResult_ActionResultCode ActionResult::PLACEMENT_GOAL_NOT_FREE;
constexpr ActionResult_ActionResultCode ActionResult::PICKUP_OBJECT_UNEXPECTEDLY_NOT_MOVING;
constexpr ActionResult_ActionResultCode ActionResult::STILL_ON_CHARGER;
constexpr ActionResult_ActionResultCode ActionResult::UNEXPECTED_PITCH_ANGLE;
constexpr ActionResult_ActionResultCode ActionResult::ActionResultCode_MIN;
constexpr ActionResult_ActionResultCode ActionResult::ActionResultCode_MAX;
constexpr int ActionResult::ActionResultCode_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CubeBattery_CubeBatteryLevel_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[1];
}
bool CubeBattery_CubeBatteryLevel_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
constexpr CubeBattery_CubeBatteryLevel CubeBattery::Low;
constexpr CubeBattery_CubeBatteryLevel CubeBattery::Normal;
constexpr CubeBattery_CubeBatteryLevel CubeBattery::CubeBatteryLevel_MIN;
constexpr CubeBattery_CubeBatteryLevel CubeBattery::CubeBatteryLevel_MAX;
constexpr int CubeBattery::CubeBatteryLevel_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SayTextResponse_UtteranceState_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[2];
}
bool SayTextResponse_UtteranceState_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
constexpr SayTextResponse_UtteranceState SayTextResponse::INVALID;
constexpr SayTextResponse_UtteranceState SayTextResponse::GENERATING;
constexpr SayTextResponse_UtteranceState SayTextResponse::READY;
constexpr SayTextResponse_UtteranceState SayTextResponse::PLAYING;
constexpr SayTextResponse_UtteranceState SayTextResponse::FINISHED;
constexpr SayTextResponse_UtteranceState SayTextResponse::UtteranceState_MIN;
constexpr SayTextResponse_UtteranceState SayTextResponse::UtteranceState_MAX;
constexpr int SayTextResponse::UtteranceState_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ImageChunk_ImageEncoding_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[3];
}
bool ImageChunk_ImageEncoding_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
constexpr ImageChunk_ImageEncoding ImageChunk::NONE_IMAGE_ENCODING;
constexpr ImageChunk_ImageEncoding ImageChunk::RAW_GRAY;
constexpr ImageChunk_ImageEncoding ImageChunk::RAW_RGB;
constexpr ImageChunk_ImageEncoding ImageChunk::YUYV;
constexpr ImageChunk_ImageEncoding ImageChunk::YUV420SP;
constexpr ImageChunk_ImageEncoding ImageChunk::BAYER;
constexpr ImageChunk_ImageEncoding ImageChunk::JPEG_GRAY;
constexpr ImageChunk_ImageEncoding ImageChunk::JPEG_COLOR;
constexpr ImageChunk_ImageEncoding ImageChunk::JPEG_COLOR_HALF_WIDTH;
constexpr ImageChunk_ImageEncoding ImageChunk::JPEG_MINIMIZED_GRAY;
constexpr ImageChunk_ImageEncoding ImageChunk::JPEG_MINIMIZED_COLOR;
constexpr ImageChunk_ImageEncoding ImageChunk::ImageEncoding_MIN;
constexpr ImageChunk_ImageEncoding ImageChunk::ImageEncoding_MAX;
constexpr int ImageChunk::ImageEncoding_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CheckUpdateStatusResponse_UpdateStatus_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[4];
}
bool CheckUpdateStatusResponse_UpdateStatus_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
constexpr CheckUpdateStatusResponse_UpdateStatus CheckUpdateStatusResponse::NO_UPDATE;
constexpr CheckUpdateStatusResponse_UpdateStatus CheckUpdateStatusResponse::READY_TO_REBOOT_INTO_NEW_OS_VERSION;
constexpr CheckUpdateStatusResponse_UpdateStatus CheckUpdateStatusResponse::IN_PROGRESS_DOWNLOAD;
constexpr CheckUpdateStatusResponse_UpdateStatus CheckUpdateStatusResponse::FAILURE_INTERRUPTED_DOWNLOAD;
constexpr CheckUpdateStatusResponse_UpdateStatus CheckUpdateStatusResponse::IN_PROGRESS_STARTING;
constexpr CheckUpdateStatusResponse_UpdateStatus CheckUpdateStatusResponse::IN_PROGRESS_OTHER;
constexpr CheckUpdateStatusResponse_UpdateStatus CheckUpdateStatusResponse::FAILURE_OTHER;
constexpr CheckUpdateStatusResponse_UpdateStatus CheckUpdateStatusResponse::UpdateStatus_MIN;
constexpr CheckUpdateStatusResponse_UpdateStatus CheckUpdateStatusResponse::UpdateStatus_MAX;
constexpr int CheckUpdateStatusResponse::UpdateStatus_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CheckCloudResponse_ConnectionCode_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[5];
}
bool CheckCloudResponse_ConnectionCode_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
constexpr CheckCloudResponse_ConnectionCode CheckCloudResponse::UNKNOWN;
constexpr CheckCloudResponse_ConnectionCode CheckCloudResponse::AVAILABLE;
constexpr CheckCloudResponse_ConnectionCode CheckCloudResponse::BAD_CONNECTIVITY;
constexpr CheckCloudResponse_ConnectionCode CheckCloudResponse::FAILED_TLS;
constexpr CheckCloudResponse_ConnectionCode CheckCloudResponse::FAILED_AUTH;
constexpr CheckCloudResponse_ConnectionCode CheckCloudResponse::INSUFFICIENT_BANDWIDTH;
constexpr CheckCloudResponse_ConnectionCode CheckCloudResponse::ConnectionCode_MIN;
constexpr CheckCloudResponse_ConnectionCode CheckCloudResponse::ConnectionCode_MAX;
constexpr int CheckCloudResponse::ConnectionCode_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RobotStatus_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[6];
}
bool RobotStatus_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 4:
    case 8:
    case 16:
    case 32:
    case 64:
    case 128:
    case 256:
    case 512:
    case 1024:
    case 4096:
    case 8192:
    case 16384:
    case 32768:
    case 65536:
    case 131072:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* UnexpectedMovementType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[7];
}
bool UnexpectedMovementType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* UnexpectedMovementSide_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[8];
}
bool UnexpectedMovementSide_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* FacialExpression_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[9];
}
bool FacialExpression_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* FaceEnrollmentResult_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[10];
}
bool FaceEnrollmentResult_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* BehaviorResults_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[11];
}
bool BehaviorResults_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ActionTagConstants_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[12];
}
bool ActionTagConstants_IsValid(int value) {
  switch (value) {
    case 0:
    case 2000001:
    case 3000000:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AlignmentType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[13];
}
bool AlignmentType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* BatteryLevel_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[14];
}
bool BatteryLevel_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AudioConstants_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[15];
}
bool AudioConstants_IsValid(int value) {
  switch (value) {
    case 0:
    case 12:
    case 160:
    case 1600:
    case 15625:
    case 16000:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AudioProcessingMode_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[16];
}
bool AudioProcessingMode_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* MasterVolumeLevel_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[17];
}
bool MasterVolumeLevel_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* OnboardingStages_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[18];
}
bool OnboardingStages_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* OnboardingPhase_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[19];
}
bool OnboardingPhase_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* OnboardingPhaseState_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[20];
}
bool OnboardingPhaseState_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AttentionTransferReason_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_messages_2eproto);
  return file_level_enum_descriptors_messages_2eproto[21];
}
bool AttentionTransferReason_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}


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

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

KeepAlivePing::KeepAlivePing(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.KeepAlivePing)
}
KeepAlivePing::KeepAlivePing(const KeepAlivePing& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.KeepAlivePing)
}

void KeepAlivePing::SharedCtor() {
}

KeepAlivePing::~KeepAlivePing() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.KeepAlivePing)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void KeepAlivePing::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.KeepAlivePing)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* KeepAlivePing::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  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:Anki.Vector.external_interface.KeepAlivePing)
  return target;
}

size_t KeepAlivePing::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.KeepAlivePing)
  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;

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

void KeepAlivePing::MergeFrom(const KeepAlivePing& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.KeepAlivePing)
  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;

}

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

void KeepAlivePing::CopyFrom(const KeepAlivePing& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.KeepAlivePing)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

AnimationTrigger::AnimationTrigger(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AnimationTrigger)
}
AnimationTrigger::AnimationTrigger(const AnimationTrigger& 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());
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AnimationTrigger)
}

void AnimationTrigger::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_AnimationTrigger_messages_2eproto.base);
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

AnimationTrigger::~AnimationTrigger() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AnimationTrigger)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void AnimationTrigger::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AnimationTrigger)
  ::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());
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AnimationTrigger::_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, "Anki.Vector.external_interface.AnimationTrigger.name"));
          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* AnimationTrigger::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AnimationTrigger)
  ::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,
      "Anki.Vector.external_interface.AnimationTrigger.name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_name(), 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:Anki.Vector.external_interface.AnimationTrigger)
  return target;
}

size_t AnimationTrigger::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AnimationTrigger)
  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());
  }

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

void AnimationTrigger::MergeFrom(const AnimationTrigger& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AnimationTrigger)
  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());
  }
}

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

void AnimationTrigger::CopyFrom(const AnimationTrigger& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AnimationTrigger)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

Animation::Animation(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.Animation)
}
Animation::Animation(const Animation& 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());
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.Animation)
}

void Animation::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Animation_messages_2eproto.base);
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

Animation::~Animation() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.Animation)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void Animation::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.Animation)
  ::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());
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Animation::_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, "Anki.Vector.external_interface.Animation.name"));
          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* Animation::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.Animation)
  ::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,
      "Anki.Vector.external_interface.Animation.name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_name(), 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:Anki.Vector.external_interface.Animation)
  return target;
}

size_t Animation::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.Animation)
  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());
  }

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

void Animation::MergeFrom(const Animation& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.Animation)
  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());
  }
}

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

void Animation::CopyFrom(const Animation& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.Animation)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

DriveWheelsRequest::DriveWheelsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DriveWheelsRequest)
}
DriveWheelsRequest::DriveWheelsRequest(const DriveWheelsRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&left_wheel_mmps_, &from.left_wheel_mmps_,
    static_cast<size_t>(reinterpret_cast<char*>(&right_wheel_mmps2_) -
    reinterpret_cast<char*>(&left_wheel_mmps_)) + sizeof(right_wheel_mmps2_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DriveWheelsRequest)
}

void DriveWheelsRequest::SharedCtor() {
  ::memset(&left_wheel_mmps_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&right_wheel_mmps2_) -
      reinterpret_cast<char*>(&left_wheel_mmps_)) + sizeof(right_wheel_mmps2_));
}

DriveWheelsRequest::~DriveWheelsRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DriveWheelsRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void DriveWheelsRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DriveWheelsRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

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

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

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

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

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

  // float right_wheel_mmps2 = 4;
  if (!(this->right_wheel_mmps2() <= 0 && this->right_wheel_mmps2() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_right_wheel_mmps2(), 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:Anki.Vector.external_interface.DriveWheelsRequest)
  return target;
}

size_t DriveWheelsRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DriveWheelsRequest)
  size_t total_size = 0;

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

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

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

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

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

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

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

void DriveWheelsRequest::MergeFrom(const DriveWheelsRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.DriveWheelsRequest)
  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.left_wheel_mmps() <= 0 && from.left_wheel_mmps() >= 0)) {
    _internal_set_left_wheel_mmps(from._internal_left_wheel_mmps());
  }
  if (!(from.right_wheel_mmps() <= 0 && from.right_wheel_mmps() >= 0)) {
    _internal_set_right_wheel_mmps(from._internal_right_wheel_mmps());
  }
  if (!(from.left_wheel_mmps2() <= 0 && from.left_wheel_mmps2() >= 0)) {
    _internal_set_left_wheel_mmps2(from._internal_left_wheel_mmps2());
  }
  if (!(from.right_wheel_mmps2() <= 0 && from.right_wheel_mmps2() >= 0)) {
    _internal_set_right_wheel_mmps2(from._internal_right_wheel_mmps2());
  }
}

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

void DriveWheelsRequest::CopyFrom(const DriveWheelsRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DriveWheelsRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void DriveWheelsResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_DriveWheelsResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class DriveWheelsResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const DriveWheelsResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
DriveWheelsResponse::_Internal::status(const DriveWheelsResponse* msg) {
  return *msg->status_;
}
void DriveWheelsResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
DriveWheelsResponse::DriveWheelsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DriveWheelsResponse)
}
DriveWheelsResponse::DriveWheelsResponse(const DriveWheelsResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DriveWheelsResponse)
}

void DriveWheelsResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DriveWheelsResponse_messages_2eproto.base);
  status_ = nullptr;
}

DriveWheelsResponse::~DriveWheelsResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DriveWheelsResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void DriveWheelsResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

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


void DriveWheelsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DriveWheelsResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DriveWheelsResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* DriveWheelsResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.DriveWheelsResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t DriveWheelsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DriveWheelsResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void DriveWheelsResponse::CopyFrom(const DriveWheelsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DriveWheelsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

MoveHeadRequest::MoveHeadRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.MoveHeadRequest)
}
MoveHeadRequest::MoveHeadRequest(const MoveHeadRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  speed_rad_per_sec_ = from.speed_rad_per_sec_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.MoveHeadRequest)
}

void MoveHeadRequest::SharedCtor() {
  speed_rad_per_sec_ = 0;
}

MoveHeadRequest::~MoveHeadRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.MoveHeadRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void MoveHeadRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.MoveHeadRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

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

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

  // float speed_rad_per_sec = 1;
  if (!(this->speed_rad_per_sec() <= 0 && this->speed_rad_per_sec() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_speed_rad_per_sec(), 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:Anki.Vector.external_interface.MoveHeadRequest)
  return target;
}

size_t MoveHeadRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.MoveHeadRequest)
  size_t total_size = 0;

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

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

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

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

void MoveHeadRequest::MergeFrom(const MoveHeadRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.MoveHeadRequest)
  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.speed_rad_per_sec() <= 0 && from.speed_rad_per_sec() >= 0)) {
    _internal_set_speed_rad_per_sec(from._internal_speed_rad_per_sec());
  }
}

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

void MoveHeadRequest::CopyFrom(const MoveHeadRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.MoveHeadRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void MoveHeadResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_MoveHeadResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class MoveHeadResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const MoveHeadResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
MoveHeadResponse::_Internal::status(const MoveHeadResponse* msg) {
  return *msg->status_;
}
void MoveHeadResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
MoveHeadResponse::MoveHeadResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.MoveHeadResponse)
}
MoveHeadResponse::MoveHeadResponse(const MoveHeadResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.MoveHeadResponse)
}

void MoveHeadResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MoveHeadResponse_messages_2eproto.base);
  status_ = nullptr;
}

MoveHeadResponse::~MoveHeadResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.MoveHeadResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void MoveHeadResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

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


void MoveHeadResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.MoveHeadResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MoveHeadResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* MoveHeadResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.MoveHeadResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t MoveHeadResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.MoveHeadResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void MoveHeadResponse::CopyFrom(const MoveHeadResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.MoveHeadResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

MoveLiftRequest::MoveLiftRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.MoveLiftRequest)
}
MoveLiftRequest::MoveLiftRequest(const MoveLiftRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  speed_rad_per_sec_ = from.speed_rad_per_sec_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.MoveLiftRequest)
}

void MoveLiftRequest::SharedCtor() {
  speed_rad_per_sec_ = 0;
}

MoveLiftRequest::~MoveLiftRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.MoveLiftRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void MoveLiftRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.MoveLiftRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

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

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

  // float speed_rad_per_sec = 1;
  if (!(this->speed_rad_per_sec() <= 0 && this->speed_rad_per_sec() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_speed_rad_per_sec(), 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:Anki.Vector.external_interface.MoveLiftRequest)
  return target;
}

size_t MoveLiftRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.MoveLiftRequest)
  size_t total_size = 0;

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

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

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

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

void MoveLiftRequest::MergeFrom(const MoveLiftRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.MoveLiftRequest)
  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.speed_rad_per_sec() <= 0 && from.speed_rad_per_sec() >= 0)) {
    _internal_set_speed_rad_per_sec(from._internal_speed_rad_per_sec());
  }
}

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

void MoveLiftRequest::CopyFrom(const MoveLiftRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.MoveLiftRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void MoveLiftResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_MoveLiftResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class MoveLiftResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const MoveLiftResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
MoveLiftResponse::_Internal::status(const MoveLiftResponse* msg) {
  return *msg->status_;
}
void MoveLiftResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
MoveLiftResponse::MoveLiftResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.MoveLiftResponse)
}
MoveLiftResponse::MoveLiftResponse(const MoveLiftResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.MoveLiftResponse)
}

void MoveLiftResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MoveLiftResponse_messages_2eproto.base);
  status_ = nullptr;
}

MoveLiftResponse::~MoveLiftResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.MoveLiftResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void MoveLiftResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

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


void MoveLiftResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.MoveLiftResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MoveLiftResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* MoveLiftResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.MoveLiftResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t MoveLiftResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.MoveLiftResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void MoveLiftResponse::CopyFrom(const MoveLiftResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.MoveLiftResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

StopAllMotorsRequest::StopAllMotorsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.StopAllMotorsRequest)
}
StopAllMotorsRequest::StopAllMotorsRequest(const StopAllMotorsRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.StopAllMotorsRequest)
}

void StopAllMotorsRequest::SharedCtor() {
}

StopAllMotorsRequest::~StopAllMotorsRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.StopAllMotorsRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void StopAllMotorsRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.StopAllMotorsRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* StopAllMotorsRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  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:Anki.Vector.external_interface.StopAllMotorsRequest)
  return target;
}

size_t StopAllMotorsRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.StopAllMotorsRequest)
  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;

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

void StopAllMotorsRequest::MergeFrom(const StopAllMotorsRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.StopAllMotorsRequest)
  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;

}

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

void StopAllMotorsRequest::CopyFrom(const StopAllMotorsRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.StopAllMotorsRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void StopAllMotorsResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_StopAllMotorsResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class StopAllMotorsResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const StopAllMotorsResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
StopAllMotorsResponse::_Internal::status(const StopAllMotorsResponse* msg) {
  return *msg->status_;
}
void StopAllMotorsResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
StopAllMotorsResponse::StopAllMotorsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.StopAllMotorsResponse)
}
StopAllMotorsResponse::StopAllMotorsResponse(const StopAllMotorsResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.StopAllMotorsResponse)
}

void StopAllMotorsResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_StopAllMotorsResponse_messages_2eproto.base);
  status_ = nullptr;
}

StopAllMotorsResponse::~StopAllMotorsResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.StopAllMotorsResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void StopAllMotorsResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

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


void StopAllMotorsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.StopAllMotorsResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* StopAllMotorsResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* StopAllMotorsResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.StopAllMotorsResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t StopAllMotorsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.StopAllMotorsResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void StopAllMotorsResponse::CopyFrom(const StopAllMotorsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.StopAllMotorsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void PlayAnimationTriggerRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_PlayAnimationTriggerRequest_default_instance_._instance.get_mutable()->animation_trigger_ = const_cast< ::Anki::Vector::external_interface::AnimationTrigger*>(
      ::Anki::Vector::external_interface::AnimationTrigger::internal_default_instance());
}
class PlayAnimationTriggerRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::AnimationTrigger& animation_trigger(const PlayAnimationTriggerRequest* msg);
};

const ::Anki::Vector::external_interface::AnimationTrigger&
PlayAnimationTriggerRequest::_Internal::animation_trigger(const PlayAnimationTriggerRequest* msg) {
  return *msg->animation_trigger_;
}
PlayAnimationTriggerRequest::PlayAnimationTriggerRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PlayAnimationTriggerRequest)
}
PlayAnimationTriggerRequest::PlayAnimationTriggerRequest(const PlayAnimationTriggerRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_animation_trigger()) {
    animation_trigger_ = new ::Anki::Vector::external_interface::AnimationTrigger(*from.animation_trigger_);
  } else {
    animation_trigger_ = nullptr;
  }
  ::memcpy(&loops_, &from.loops_,
    static_cast<size_t>(reinterpret_cast<char*>(&ignore_lift_track_) -
    reinterpret_cast<char*>(&loops_)) + sizeof(ignore_lift_track_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PlayAnimationTriggerRequest)
}

void PlayAnimationTriggerRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PlayAnimationTriggerRequest_messages_2eproto.base);
  ::memset(&animation_trigger_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&ignore_lift_track_) -
      reinterpret_cast<char*>(&animation_trigger_)) + sizeof(ignore_lift_track_));
}

PlayAnimationTriggerRequest::~PlayAnimationTriggerRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PlayAnimationTriggerRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PlayAnimationTriggerRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete animation_trigger_;
}

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


void PlayAnimationTriggerRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PlayAnimationTriggerRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && animation_trigger_ != nullptr) {
    delete animation_trigger_;
  }
  animation_trigger_ = nullptr;
  ::memset(&loops_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&ignore_lift_track_) -
      reinterpret_cast<char*>(&loops_)) + sizeof(ignore_lift_track_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PlayAnimationTriggerRequest::_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) {
      // .Anki.Vector.external_interface.AnimationTrigger animation_trigger = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_animation_trigger(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 loops = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          loops_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool use_lift_safe = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          use_lift_safe_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool ignore_body_track = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          ignore_body_track_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool ignore_head_track = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          ignore_head_track_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool ignore_lift_track = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          ignore_lift_track_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // .Anki.Vector.external_interface.AnimationTrigger animation_trigger = 1;
  if (this->has_animation_trigger()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::animation_trigger(this), target, stream);
  }

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

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

  // bool ignore_body_track = 4;
  if (this->ignore_body_track() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_ignore_body_track(), target);
  }

  // bool ignore_head_track = 5;
  if (this->ignore_head_track() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_ignore_head_track(), target);
  }

  // bool ignore_lift_track = 6;
  if (this->ignore_lift_track() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_ignore_lift_track(), 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:Anki.Vector.external_interface.PlayAnimationTriggerRequest)
  return target;
}

size_t PlayAnimationTriggerRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PlayAnimationTriggerRequest)
  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;

  // .Anki.Vector.external_interface.AnimationTrigger animation_trigger = 1;
  if (this->has_animation_trigger()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *animation_trigger_);
  }

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

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

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

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

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

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

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

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

  if (from.has_animation_trigger()) {
    _internal_mutable_animation_trigger()->::Anki::Vector::external_interface::AnimationTrigger::MergeFrom(from._internal_animation_trigger());
  }
  if (from.loops() != 0) {
    _internal_set_loops(from._internal_loops());
  }
  if (from.use_lift_safe() != 0) {
    _internal_set_use_lift_safe(from._internal_use_lift_safe());
  }
  if (from.ignore_body_track() != 0) {
    _internal_set_ignore_body_track(from._internal_ignore_body_track());
  }
  if (from.ignore_head_track() != 0) {
    _internal_set_ignore_head_track(from._internal_ignore_head_track());
  }
  if (from.ignore_lift_track() != 0) {
    _internal_set_ignore_lift_track(from._internal_ignore_lift_track());
  }
}

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

void PlayAnimationTriggerRequest::CopyFrom(const PlayAnimationTriggerRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PlayAnimationTriggerRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void PlayAnimationRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_PlayAnimationRequest_default_instance_._instance.get_mutable()->animation_ = const_cast< ::Anki::Vector::external_interface::Animation*>(
      ::Anki::Vector::external_interface::Animation::internal_default_instance());
}
class PlayAnimationRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::Animation& animation(const PlayAnimationRequest* msg);
};

const ::Anki::Vector::external_interface::Animation&
PlayAnimationRequest::_Internal::animation(const PlayAnimationRequest* msg) {
  return *msg->animation_;
}
PlayAnimationRequest::PlayAnimationRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PlayAnimationRequest)
}
PlayAnimationRequest::PlayAnimationRequest(const PlayAnimationRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_animation()) {
    animation_ = new ::Anki::Vector::external_interface::Animation(*from.animation_);
  } else {
    animation_ = nullptr;
  }
  ::memcpy(&loops_, &from.loops_,
    static_cast<size_t>(reinterpret_cast<char*>(&ignore_lift_track_) -
    reinterpret_cast<char*>(&loops_)) + sizeof(ignore_lift_track_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PlayAnimationRequest)
}

void PlayAnimationRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PlayAnimationRequest_messages_2eproto.base);
  ::memset(&animation_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&ignore_lift_track_) -
      reinterpret_cast<char*>(&animation_)) + sizeof(ignore_lift_track_));
}

PlayAnimationRequest::~PlayAnimationRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PlayAnimationRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PlayAnimationRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete animation_;
}

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


void PlayAnimationRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PlayAnimationRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && animation_ != nullptr) {
    delete animation_;
  }
  animation_ = nullptr;
  ::memset(&loops_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&ignore_lift_track_) -
      reinterpret_cast<char*>(&loops_)) + sizeof(ignore_lift_track_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PlayAnimationRequest::_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) {
      // .Anki.Vector.external_interface.Animation animation = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_animation(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 loops = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          loops_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool ignore_body_track = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          ignore_body_track_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool ignore_head_track = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          ignore_head_track_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool ignore_lift_track = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          ignore_lift_track_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // .Anki.Vector.external_interface.Animation animation = 1;
  if (this->has_animation()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::animation(this), target, stream);
  }

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

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

  // bool ignore_head_track = 4;
  if (this->ignore_head_track() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_ignore_head_track(), target);
  }

  // bool ignore_lift_track = 5;
  if (this->ignore_lift_track() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_ignore_lift_track(), 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:Anki.Vector.external_interface.PlayAnimationRequest)
  return target;
}

size_t PlayAnimationRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PlayAnimationRequest)
  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;

  // .Anki.Vector.external_interface.Animation animation = 1;
  if (this->has_animation()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *animation_);
  }

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

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

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

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

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

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

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

  if (from.has_animation()) {
    _internal_mutable_animation()->::Anki::Vector::external_interface::Animation::MergeFrom(from._internal_animation());
  }
  if (from.loops() != 0) {
    _internal_set_loops(from._internal_loops());
  }
  if (from.ignore_body_track() != 0) {
    _internal_set_ignore_body_track(from._internal_ignore_body_track());
  }
  if (from.ignore_head_track() != 0) {
    _internal_set_ignore_head_track(from._internal_ignore_head_track());
  }
  if (from.ignore_lift_track() != 0) {
    _internal_set_ignore_lift_track(from._internal_ignore_lift_track());
  }
}

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

void PlayAnimationRequest::CopyFrom(const PlayAnimationRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PlayAnimationRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void PlayAnimationResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_PlayAnimationResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_PlayAnimationResponse_default_instance_._instance.get_mutable()->animation_ = const_cast< ::Anki::Vector::external_interface::Animation*>(
      ::Anki::Vector::external_interface::Animation::internal_default_instance());
}
class PlayAnimationResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const PlayAnimationResponse* msg);
  static const ::Anki::Vector::external_interface::Animation& animation(const PlayAnimationResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
PlayAnimationResponse::_Internal::status(const PlayAnimationResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::Animation&
PlayAnimationResponse::_Internal::animation(const PlayAnimationResponse* msg) {
  return *msg->animation_;
}
void PlayAnimationResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
PlayAnimationResponse::PlayAnimationResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PlayAnimationResponse)
}
PlayAnimationResponse::PlayAnimationResponse(const PlayAnimationResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_animation()) {
    animation_ = new ::Anki::Vector::external_interface::Animation(*from.animation_);
  } else {
    animation_ = nullptr;
  }
  result_ = from.result_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PlayAnimationResponse)
}

void PlayAnimationResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PlayAnimationResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

PlayAnimationResponse::~PlayAnimationResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PlayAnimationResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PlayAnimationResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete animation_;
}

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


void PlayAnimationResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PlayAnimationResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && animation_ != nullptr) {
    delete animation_;
  }
  animation_ = nullptr;
  result_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PlayAnimationResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.BehaviorResults result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_result(static_cast<::Anki::Vector::external_interface::BehaviorResults>(val));
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.Animation animation = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_animation(), 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* PlayAnimationResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PlayAnimationResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.BehaviorResults result = 2;
  if (this->result() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_result(), target);
  }

  // .Anki.Vector.external_interface.Animation animation = 3;
  if (this->has_animation()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::animation(this), target, stream);
  }

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

size_t PlayAnimationResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PlayAnimationResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.Animation animation = 3;
  if (this->has_animation()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *animation_);
  }

  // .Anki.Vector.external_interface.BehaviorResults result = 2;
  if (this->result() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_result());
  }

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_animation()) {
    _internal_mutable_animation()->::Anki::Vector::external_interface::Animation::MergeFrom(from._internal_animation());
  }
  if (from.result() != 0) {
    _internal_set_result(from._internal_result());
  }
}

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

void PlayAnimationResponse::CopyFrom(const PlayAnimationResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PlayAnimationResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

ListAnimationsRequest::ListAnimationsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ListAnimationsRequest)
}
ListAnimationsRequest::ListAnimationsRequest(const ListAnimationsRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ListAnimationsRequest)
}

void ListAnimationsRequest::SharedCtor() {
}

ListAnimationsRequest::~ListAnimationsRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ListAnimationsRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void ListAnimationsRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ListAnimationsRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* ListAnimationsRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  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:Anki.Vector.external_interface.ListAnimationsRequest)
  return target;
}

size_t ListAnimationsRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ListAnimationsRequest)
  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;

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

void ListAnimationsRequest::MergeFrom(const ListAnimationsRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ListAnimationsRequest)
  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;

}

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

void ListAnimationsRequest::CopyFrom(const ListAnimationsRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ListAnimationsRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void ListAnimationsResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_ListAnimationsResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class ListAnimationsResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const ListAnimationsResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
ListAnimationsResponse::_Internal::status(const ListAnimationsResponse* msg) {
  return *msg->status_;
}
void ListAnimationsResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
ListAnimationsResponse::ListAnimationsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  animation_names_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ListAnimationsResponse)
}
ListAnimationsResponse::ListAnimationsResponse(const ListAnimationsResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      animation_names_(from.animation_names_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ListAnimationsResponse)
}

void ListAnimationsResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ListAnimationsResponse_messages_2eproto.base);
  status_ = nullptr;
}

ListAnimationsResponse::~ListAnimationsResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ListAnimationsResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ListAnimationsResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

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


void ListAnimationsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ListAnimationsResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  animation_names_.Clear();
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ListAnimationsResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .Anki.Vector.external_interface.Animation animation_names = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_animation_names(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(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* ListAnimationsResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ListAnimationsResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // repeated .Anki.Vector.external_interface.Animation animation_names = 2;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_animation_names_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, this->_internal_animation_names(i), target, stream);
  }

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

size_t ListAnimationsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ListAnimationsResponse)
  size_t total_size = 0;

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

  // repeated .Anki.Vector.external_interface.Animation animation_names = 2;
  total_size += 1UL * this->_internal_animation_names_size();
  for (const auto& msg : this->animation_names_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

void ListAnimationsResponse::MergeFrom(const ListAnimationsResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ListAnimationsResponse)
  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;

  animation_names_.MergeFrom(from.animation_names_);
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void ListAnimationsResponse::CopyFrom(const ListAnimationsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ListAnimationsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

ListAnimationTriggersRequest::ListAnimationTriggersRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ListAnimationTriggersRequest)
}
ListAnimationTriggersRequest::ListAnimationTriggersRequest(const ListAnimationTriggersRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ListAnimationTriggersRequest)
}

void ListAnimationTriggersRequest::SharedCtor() {
}

ListAnimationTriggersRequest::~ListAnimationTriggersRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ListAnimationTriggersRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void ListAnimationTriggersRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ListAnimationTriggersRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* ListAnimationTriggersRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  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:Anki.Vector.external_interface.ListAnimationTriggersRequest)
  return target;
}

size_t ListAnimationTriggersRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ListAnimationTriggersRequest)
  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;

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

void ListAnimationTriggersRequest::MergeFrom(const ListAnimationTriggersRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ListAnimationTriggersRequest)
  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;

}

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

void ListAnimationTriggersRequest::CopyFrom(const ListAnimationTriggersRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ListAnimationTriggersRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void ListAnimationTriggersResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_ListAnimationTriggersResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class ListAnimationTriggersResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const ListAnimationTriggersResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
ListAnimationTriggersResponse::_Internal::status(const ListAnimationTriggersResponse* msg) {
  return *msg->status_;
}
void ListAnimationTriggersResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
ListAnimationTriggersResponse::ListAnimationTriggersResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  animation_trigger_names_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ListAnimationTriggersResponse)
}
ListAnimationTriggersResponse::ListAnimationTriggersResponse(const ListAnimationTriggersResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      animation_trigger_names_(from.animation_trigger_names_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ListAnimationTriggersResponse)
}

void ListAnimationTriggersResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ListAnimationTriggersResponse_messages_2eproto.base);
  status_ = nullptr;
}

ListAnimationTriggersResponse::~ListAnimationTriggersResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ListAnimationTriggersResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ListAnimationTriggersResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

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


void ListAnimationTriggersResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ListAnimationTriggersResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  animation_trigger_names_.Clear();
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ListAnimationTriggersResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .Anki.Vector.external_interface.AnimationTrigger animation_trigger_names = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_animation_trigger_names(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(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* ListAnimationTriggersResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ListAnimationTriggersResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // repeated .Anki.Vector.external_interface.AnimationTrigger animation_trigger_names = 2;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_animation_trigger_names_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, this->_internal_animation_trigger_names(i), target, stream);
  }

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

size_t ListAnimationTriggersResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ListAnimationTriggersResponse)
  size_t total_size = 0;

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

  // repeated .Anki.Vector.external_interface.AnimationTrigger animation_trigger_names = 2;
  total_size += 1UL * this->_internal_animation_trigger_names_size();
  for (const auto& msg : this->animation_trigger_names_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

void ListAnimationTriggersResponse::MergeFrom(const ListAnimationTriggersResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ListAnimationTriggersResponse)
  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;

  animation_trigger_names_.MergeFrom(from.animation_trigger_names_);
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void ListAnimationTriggersResponse::CopyFrom(const ListAnimationTriggersResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ListAnimationTriggersResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

DisplayFaceImageRGBRequest::DisplayFaceImageRGBRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DisplayFaceImageRGBRequest)
}
DisplayFaceImageRGBRequest::DisplayFaceImageRGBRequest(const DisplayFaceImageRGBRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  face_data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_face_data().empty()) {
    face_data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_face_data(),
      GetArena());
  }
  ::memcpy(&duration_ms_, &from.duration_ms_,
    static_cast<size_t>(reinterpret_cast<char*>(&interrupt_running_) -
    reinterpret_cast<char*>(&duration_ms_)) + sizeof(interrupt_running_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DisplayFaceImageRGBRequest)
}

void DisplayFaceImageRGBRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DisplayFaceImageRGBRequest_messages_2eproto.base);
  face_data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&duration_ms_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&interrupt_running_) -
      reinterpret_cast<char*>(&duration_ms_)) + sizeof(interrupt_running_));
}

DisplayFaceImageRGBRequest::~DisplayFaceImageRGBRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DisplayFaceImageRGBRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void DisplayFaceImageRGBRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DisplayFaceImageRGBRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* DisplayFaceImageRGBRequest::_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) {
      // bytes face_data = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          auto str = _internal_mutable_face_data();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 duration_ms = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          duration_ms_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool interrupt_running = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          interrupt_running_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // bytes face_data = 1;
  if (this->face_data().size() > 0) {
    target = stream->WriteBytesMaybeAliased(
        1, this->_internal_face_data(), target);
  }

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

  // bool interrupt_running = 3;
  if (this->interrupt_running() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_interrupt_running(), 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:Anki.Vector.external_interface.DisplayFaceImageRGBRequest)
  return target;
}

size_t DisplayFaceImageRGBRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DisplayFaceImageRGBRequest)
  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;

  // bytes face_data = 1;
  if (this->face_data().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_face_data());
  }

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

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

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

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

void DisplayFaceImageRGBRequest::MergeFrom(const DisplayFaceImageRGBRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.DisplayFaceImageRGBRequest)
  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.face_data().size() > 0) {
    _internal_set_face_data(from._internal_face_data());
  }
  if (from.duration_ms() != 0) {
    _internal_set_duration_ms(from._internal_duration_ms());
  }
  if (from.interrupt_running() != 0) {
    _internal_set_interrupt_running(from._internal_interrupt_running());
  }
}

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

void DisplayFaceImageRGBRequest::CopyFrom(const DisplayFaceImageRGBRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DisplayFaceImageRGBRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void DisplayFaceImageRGBResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_DisplayFaceImageRGBResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class DisplayFaceImageRGBResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const DisplayFaceImageRGBResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
DisplayFaceImageRGBResponse::_Internal::status(const DisplayFaceImageRGBResponse* msg) {
  return *msg->status_;
}
void DisplayFaceImageRGBResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
DisplayFaceImageRGBResponse::DisplayFaceImageRGBResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DisplayFaceImageRGBResponse)
}
DisplayFaceImageRGBResponse::DisplayFaceImageRGBResponse(const DisplayFaceImageRGBResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DisplayFaceImageRGBResponse)
}

void DisplayFaceImageRGBResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DisplayFaceImageRGBResponse_messages_2eproto.base);
  status_ = nullptr;
}

DisplayFaceImageRGBResponse::~DisplayFaceImageRGBResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DisplayFaceImageRGBResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void DisplayFaceImageRGBResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

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


void DisplayFaceImageRGBResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DisplayFaceImageRGBResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DisplayFaceImageRGBResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* DisplayFaceImageRGBResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.DisplayFaceImageRGBResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t DisplayFaceImageRGBResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DisplayFaceImageRGBResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void DisplayFaceImageRGBResponse::CopyFrom(const DisplayFaceImageRGBResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DisplayFaceImageRGBResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

MeetVictorFaceScanStarted::MeetVictorFaceScanStarted(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.MeetVictorFaceScanStarted)
}
MeetVictorFaceScanStarted::MeetVictorFaceScanStarted(const MeetVictorFaceScanStarted& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.MeetVictorFaceScanStarted)
}

void MeetVictorFaceScanStarted::SharedCtor() {
}

MeetVictorFaceScanStarted::~MeetVictorFaceScanStarted() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.MeetVictorFaceScanStarted)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void MeetVictorFaceScanStarted::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.MeetVictorFaceScanStarted)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* MeetVictorFaceScanStarted::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  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:Anki.Vector.external_interface.MeetVictorFaceScanStarted)
  return target;
}

size_t MeetVictorFaceScanStarted::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.MeetVictorFaceScanStarted)
  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;

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

void MeetVictorFaceScanStarted::MergeFrom(const MeetVictorFaceScanStarted& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.MeetVictorFaceScanStarted)
  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;

}

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

void MeetVictorFaceScanStarted::CopyFrom(const MeetVictorFaceScanStarted& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.MeetVictorFaceScanStarted)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

MeetVictorFaceScanComplete::MeetVictorFaceScanComplete(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.MeetVictorFaceScanComplete)
}
MeetVictorFaceScanComplete::MeetVictorFaceScanComplete(const MeetVictorFaceScanComplete& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.MeetVictorFaceScanComplete)
}

void MeetVictorFaceScanComplete::SharedCtor() {
}

MeetVictorFaceScanComplete::~MeetVictorFaceScanComplete() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.MeetVictorFaceScanComplete)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void MeetVictorFaceScanComplete::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.MeetVictorFaceScanComplete)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* MeetVictorFaceScanComplete::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  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:Anki.Vector.external_interface.MeetVictorFaceScanComplete)
  return target;
}

size_t MeetVictorFaceScanComplete::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.MeetVictorFaceScanComplete)
  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;

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

void MeetVictorFaceScanComplete::MergeFrom(const MeetVictorFaceScanComplete& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.MeetVictorFaceScanComplete)
  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;

}

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

void MeetVictorFaceScanComplete::CopyFrom(const MeetVictorFaceScanComplete& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.MeetVictorFaceScanComplete)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void Status::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_Status_default_instance_.feature_status_ = const_cast< ::Anki::Vector::external_interface::FeatureStatus*>(
      ::Anki::Vector::external_interface::FeatureStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_Status_default_instance_.meet_victor_face_scan_started_ = const_cast< ::Anki::Vector::external_interface::MeetVictorFaceScanStarted*>(
      ::Anki::Vector::external_interface::MeetVictorFaceScanStarted::internal_default_instance());
  ::Anki::Vector::external_interface::_Status_default_instance_.meet_victor_face_scan_complete_ = const_cast< ::Anki::Vector::external_interface::MeetVictorFaceScanComplete*>(
      ::Anki::Vector::external_interface::MeetVictorFaceScanComplete::internal_default_instance());
  ::Anki::Vector::external_interface::_Status_default_instance_.face_enrollment_completed_ = const_cast< ::Anki::Vector::external_interface::FaceEnrollmentCompleted*>(
      ::Anki::Vector::external_interface::FaceEnrollmentCompleted::internal_default_instance());
}
class Status::_Internal {
 public:
  static const ::Anki::Vector::external_interface::FeatureStatus& feature_status(const Status* msg);
  static const ::Anki::Vector::external_interface::MeetVictorFaceScanStarted& meet_victor_face_scan_started(const Status* msg);
  static const ::Anki::Vector::external_interface::MeetVictorFaceScanComplete& meet_victor_face_scan_complete(const Status* msg);
  static const ::Anki::Vector::external_interface::FaceEnrollmentCompleted& face_enrollment_completed(const Status* msg);
};

const ::Anki::Vector::external_interface::FeatureStatus&
Status::_Internal::feature_status(const Status* msg) {
  return *msg->status_type_.feature_status_;
}
const ::Anki::Vector::external_interface::MeetVictorFaceScanStarted&
Status::_Internal::meet_victor_face_scan_started(const Status* msg) {
  return *msg->status_type_.meet_victor_face_scan_started_;
}
const ::Anki::Vector::external_interface::MeetVictorFaceScanComplete&
Status::_Internal::meet_victor_face_scan_complete(const Status* msg) {
  return *msg->status_type_.meet_victor_face_scan_complete_;
}
const ::Anki::Vector::external_interface::FaceEnrollmentCompleted&
Status::_Internal::face_enrollment_completed(const Status* msg) {
  return *msg->status_type_.face_enrollment_completed_;
}
void Status::set_allocated_feature_status(::Anki::Vector::external_interface::FeatureStatus* feature_status) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_status_type();
  if (feature_status) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(feature_status);
    if (message_arena != submessage_arena) {
      feature_status = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, feature_status, submessage_arena);
    }
    set_has_feature_status();
    status_type_.feature_status_ = feature_status;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Status.feature_status)
}
void Status::set_allocated_meet_victor_face_scan_started(::Anki::Vector::external_interface::MeetVictorFaceScanStarted* meet_victor_face_scan_started) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_status_type();
  if (meet_victor_face_scan_started) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(meet_victor_face_scan_started);
    if (message_arena != submessage_arena) {
      meet_victor_face_scan_started = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, meet_victor_face_scan_started, submessage_arena);
    }
    set_has_meet_victor_face_scan_started();
    status_type_.meet_victor_face_scan_started_ = meet_victor_face_scan_started;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Status.meet_victor_face_scan_started)
}
void Status::set_allocated_meet_victor_face_scan_complete(::Anki::Vector::external_interface::MeetVictorFaceScanComplete* meet_victor_face_scan_complete) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_status_type();
  if (meet_victor_face_scan_complete) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(meet_victor_face_scan_complete);
    if (message_arena != submessage_arena) {
      meet_victor_face_scan_complete = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, meet_victor_face_scan_complete, submessage_arena);
    }
    set_has_meet_victor_face_scan_complete();
    status_type_.meet_victor_face_scan_complete_ = meet_victor_face_scan_complete;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Status.meet_victor_face_scan_complete)
}
void Status::set_allocated_face_enrollment_completed(::Anki::Vector::external_interface::FaceEnrollmentCompleted* face_enrollment_completed) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_status_type();
  if (face_enrollment_completed) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(face_enrollment_completed);
    if (message_arena != submessage_arena) {
      face_enrollment_completed = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, face_enrollment_completed, submessage_arena);
    }
    set_has_face_enrollment_completed();
    status_type_.face_enrollment_completed_ = face_enrollment_completed;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Status.face_enrollment_completed)
}
Status::Status(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.Status)
}
Status::Status(const Status& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_status_type();
  switch (from.status_type_case()) {
    case kFeatureStatus: {
      _internal_mutable_feature_status()->::Anki::Vector::external_interface::FeatureStatus::MergeFrom(from._internal_feature_status());
      break;
    }
    case kMeetVictorFaceScanStarted: {
      _internal_mutable_meet_victor_face_scan_started()->::Anki::Vector::external_interface::MeetVictorFaceScanStarted::MergeFrom(from._internal_meet_victor_face_scan_started());
      break;
    }
    case kMeetVictorFaceScanComplete: {
      _internal_mutable_meet_victor_face_scan_complete()->::Anki::Vector::external_interface::MeetVictorFaceScanComplete::MergeFrom(from._internal_meet_victor_face_scan_complete());
      break;
    }
    case kFaceEnrollmentCompleted: {
      _internal_mutable_face_enrollment_completed()->::Anki::Vector::external_interface::FaceEnrollmentCompleted::MergeFrom(from._internal_face_enrollment_completed());
      break;
    }
    case STATUS_TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.Status)
}

void Status::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Status_messages_2eproto.base);
  clear_has_status_type();
}

Status::~Status() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.Status)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void Status::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (has_status_type()) {
    clear_status_type();
  }
}

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


void Status::clear_status_type() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.Status)
  switch (status_type_case()) {
    case kFeatureStatus: {
      if (GetArena() == nullptr) {
        delete status_type_.feature_status_;
      }
      break;
    }
    case kMeetVictorFaceScanStarted: {
      if (GetArena() == nullptr) {
        delete status_type_.meet_victor_face_scan_started_;
      }
      break;
    }
    case kMeetVictorFaceScanComplete: {
      if (GetArena() == nullptr) {
        delete status_type_.meet_victor_face_scan_complete_;
      }
      break;
    }
    case kFaceEnrollmentCompleted: {
      if (GetArena() == nullptr) {
        delete status_type_.face_enrollment_completed_;
      }
      break;
    }
    case STATUS_TYPE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = STATUS_TYPE_NOT_SET;
}


void Status::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.Status)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* Status::_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) {
      // .Anki.Vector.external_interface.FeatureStatus feature_status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_feature_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.MeetVictorFaceScanStarted meet_victor_face_scan_started = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_meet_victor_face_scan_started(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.MeetVictorFaceScanComplete meet_victor_face_scan_complete = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_meet_victor_face_scan_complete(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.FaceEnrollmentCompleted face_enrollment_completed = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_face_enrollment_completed(), 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* Status::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.Status)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.FeatureStatus feature_status = 1;
  if (_internal_has_feature_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::feature_status(this), target, stream);
  }

  // .Anki.Vector.external_interface.MeetVictorFaceScanStarted meet_victor_face_scan_started = 2;
  if (_internal_has_meet_victor_face_scan_started()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::meet_victor_face_scan_started(this), target, stream);
  }

  // .Anki.Vector.external_interface.MeetVictorFaceScanComplete meet_victor_face_scan_complete = 3;
  if (_internal_has_meet_victor_face_scan_complete()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::meet_victor_face_scan_complete(this), target, stream);
  }

  // .Anki.Vector.external_interface.FaceEnrollmentCompleted face_enrollment_completed = 4;
  if (_internal_has_face_enrollment_completed()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::face_enrollment_completed(this), target, stream);
  }

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

size_t Status::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.Status)
  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;

  switch (status_type_case()) {
    // .Anki.Vector.external_interface.FeatureStatus feature_status = 1;
    case kFeatureStatus: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *status_type_.feature_status_);
      break;
    }
    // .Anki.Vector.external_interface.MeetVictorFaceScanStarted meet_victor_face_scan_started = 2;
    case kMeetVictorFaceScanStarted: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *status_type_.meet_victor_face_scan_started_);
      break;
    }
    // .Anki.Vector.external_interface.MeetVictorFaceScanComplete meet_victor_face_scan_complete = 3;
    case kMeetVictorFaceScanComplete: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *status_type_.meet_victor_face_scan_complete_);
      break;
    }
    // .Anki.Vector.external_interface.FaceEnrollmentCompleted face_enrollment_completed = 4;
    case kFaceEnrollmentCompleted: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *status_type_.face_enrollment_completed_);
      break;
    }
    case STATUS_TYPE_NOT_SET: {
      break;
    }
  }
  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 Status::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.Status)
  GOOGLE_DCHECK_NE(&from, this);
  const Status* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Status>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.Status)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.Status)
    MergeFrom(*source);
  }
}

void Status::MergeFrom(const Status& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.Status)
  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;

  switch (from.status_type_case()) {
    case kFeatureStatus: {
      _internal_mutable_feature_status()->::Anki::Vector::external_interface::FeatureStatus::MergeFrom(from._internal_feature_status());
      break;
    }
    case kMeetVictorFaceScanStarted: {
      _internal_mutable_meet_victor_face_scan_started()->::Anki::Vector::external_interface::MeetVictorFaceScanStarted::MergeFrom(from._internal_meet_victor_face_scan_started());
      break;
    }
    case kMeetVictorFaceScanComplete: {
      _internal_mutable_meet_victor_face_scan_complete()->::Anki::Vector::external_interface::MeetVictorFaceScanComplete::MergeFrom(from._internal_meet_victor_face_scan_complete());
      break;
    }
    case kFaceEnrollmentCompleted: {
      _internal_mutable_face_enrollment_completed()->::Anki::Vector::external_interface::FaceEnrollmentCompleted::MergeFrom(from._internal_face_enrollment_completed());
      break;
    }
    case STATUS_TYPE_NOT_SET: {
      break;
    }
  }
}

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

void Status::CopyFrom(const Status& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.Status)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void Status::InternalSwap(Status* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_type_, other->status_type_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

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


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

void WakeWord::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_WakeWord_default_instance_.wake_word_begin_ = const_cast< ::Anki::Vector::external_interface::WakeWordBegin*>(
      ::Anki::Vector::external_interface::WakeWordBegin::internal_default_instance());
  ::Anki::Vector::external_interface::_WakeWord_default_instance_.wake_word_end_ = const_cast< ::Anki::Vector::external_interface::WakeWordEnd*>(
      ::Anki::Vector::external_interface::WakeWordEnd::internal_default_instance());
}
class WakeWord::_Internal {
 public:
  static const ::Anki::Vector::external_interface::WakeWordBegin& wake_word_begin(const WakeWord* msg);
  static const ::Anki::Vector::external_interface::WakeWordEnd& wake_word_end(const WakeWord* msg);
};

const ::Anki::Vector::external_interface::WakeWordBegin&
WakeWord::_Internal::wake_word_begin(const WakeWord* msg) {
  return *msg->wake_word_type_.wake_word_begin_;
}
const ::Anki::Vector::external_interface::WakeWordEnd&
WakeWord::_Internal::wake_word_end(const WakeWord* msg) {
  return *msg->wake_word_type_.wake_word_end_;
}
void WakeWord::set_allocated_wake_word_begin(::Anki::Vector::external_interface::WakeWordBegin* wake_word_begin) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_wake_word_type();
  if (wake_word_begin) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(wake_word_begin);
    if (message_arena != submessage_arena) {
      wake_word_begin = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, wake_word_begin, submessage_arena);
    }
    set_has_wake_word_begin();
    wake_word_type_.wake_word_begin_ = wake_word_begin;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.WakeWord.wake_word_begin)
}
void WakeWord::set_allocated_wake_word_end(::Anki::Vector::external_interface::WakeWordEnd* wake_word_end) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_wake_word_type();
  if (wake_word_end) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(wake_word_end);
    if (message_arena != submessage_arena) {
      wake_word_end = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, wake_word_end, submessage_arena);
    }
    set_has_wake_word_end();
    wake_word_type_.wake_word_end_ = wake_word_end;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.WakeWord.wake_word_end)
}
WakeWord::WakeWord(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.WakeWord)
}
WakeWord::WakeWord(const WakeWord& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_wake_word_type();
  switch (from.wake_word_type_case()) {
    case kWakeWordBegin: {
      _internal_mutable_wake_word_begin()->::Anki::Vector::external_interface::WakeWordBegin::MergeFrom(from._internal_wake_word_begin());
      break;
    }
    case kWakeWordEnd: {
      _internal_mutable_wake_word_end()->::Anki::Vector::external_interface::WakeWordEnd::MergeFrom(from._internal_wake_word_end());
      break;
    }
    case WAKE_WORD_TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.WakeWord)
}

void WakeWord::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_WakeWord_messages_2eproto.base);
  clear_has_wake_word_type();
}

WakeWord::~WakeWord() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.WakeWord)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void WakeWord::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (has_wake_word_type()) {
    clear_wake_word_type();
  }
}

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


void WakeWord::clear_wake_word_type() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.WakeWord)
  switch (wake_word_type_case()) {
    case kWakeWordBegin: {
      if (GetArena() == nullptr) {
        delete wake_word_type_.wake_word_begin_;
      }
      break;
    }
    case kWakeWordEnd: {
      if (GetArena() == nullptr) {
        delete wake_word_type_.wake_word_end_;
      }
      break;
    }
    case WAKE_WORD_TYPE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = WAKE_WORD_TYPE_NOT_SET;
}


void WakeWord::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.WakeWord)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* WakeWord::_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) {
      // .Anki.Vector.external_interface.WakeWordBegin wake_word_begin = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_wake_word_begin(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.WakeWordEnd wake_word_end = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_wake_word_end(), 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* WakeWord::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.WakeWord)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.WakeWordBegin wake_word_begin = 1;
  if (_internal_has_wake_word_begin()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::wake_word_begin(this), target, stream);
  }

  // .Anki.Vector.external_interface.WakeWordEnd wake_word_end = 2;
  if (_internal_has_wake_word_end()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::wake_word_end(this), target, stream);
  }

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

size_t WakeWord::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.WakeWord)
  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;

  switch (wake_word_type_case()) {
    // .Anki.Vector.external_interface.WakeWordBegin wake_word_begin = 1;
    case kWakeWordBegin: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *wake_word_type_.wake_word_begin_);
      break;
    }
    // .Anki.Vector.external_interface.WakeWordEnd wake_word_end = 2;
    case kWakeWordEnd: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *wake_word_type_.wake_word_end_);
      break;
    }
    case WAKE_WORD_TYPE_NOT_SET: {
      break;
    }
  }
  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 WakeWord::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.WakeWord)
  GOOGLE_DCHECK_NE(&from, this);
  const WakeWord* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<WakeWord>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.WakeWord)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.WakeWord)
    MergeFrom(*source);
  }
}

void WakeWord::MergeFrom(const WakeWord& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.WakeWord)
  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;

  switch (from.wake_word_type_case()) {
    case kWakeWordBegin: {
      _internal_mutable_wake_word_begin()->::Anki::Vector::external_interface::WakeWordBegin::MergeFrom(from._internal_wake_word_begin());
      break;
    }
    case kWakeWordEnd: {
      _internal_mutable_wake_word_end()->::Anki::Vector::external_interface::WakeWordEnd::MergeFrom(from._internal_wake_word_end());
      break;
    }
    case WAKE_WORD_TYPE_NOT_SET: {
      break;
    }
  }
}

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

void WakeWord::CopyFrom(const WakeWord& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.WakeWord)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void WakeWord::InternalSwap(WakeWord* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(wake_word_type_, other->wake_word_type_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

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


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

void TimeStampedStatus::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_TimeStampedStatus_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::Status*>(
      ::Anki::Vector::external_interface::Status::internal_default_instance());
}
class TimeStampedStatus::_Internal {
 public:
  static const ::Anki::Vector::external_interface::Status& status(const TimeStampedStatus* msg);
};

const ::Anki::Vector::external_interface::Status&
TimeStampedStatus::_Internal::status(const TimeStampedStatus* msg) {
  return *msg->status_;
}
TimeStampedStatus::TimeStampedStatus(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.TimeStampedStatus)
}
TimeStampedStatus::TimeStampedStatus(const TimeStampedStatus& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::Status(*from.status_);
  } else {
    status_ = nullptr;
  }
  timestamp_utc_ = from.timestamp_utc_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.TimeStampedStatus)
}

void TimeStampedStatus::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_TimeStampedStatus_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&timestamp_utc_) -
      reinterpret_cast<char*>(&status_)) + sizeof(timestamp_utc_));
}

TimeStampedStatus::~TimeStampedStatus() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.TimeStampedStatus)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void TimeStampedStatus::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

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


void TimeStampedStatus::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.TimeStampedStatus)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  timestamp_utc_ = 0u;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* TimeStampedStatus::_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) {
      // .Anki.Vector.external_interface.Status status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 timestamp_utc = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          timestamp_utc_ = ::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* TimeStampedStatus::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.TimeStampedStatus)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.Status status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // uint32 timestamp_utc = 2;
  if (this->timestamp_utc() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_timestamp_utc(), 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:Anki.Vector.external_interface.TimeStampedStatus)
  return target;
}

size_t TimeStampedStatus::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.TimeStampedStatus)
  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;

  // .Anki.Vector.external_interface.Status status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::Status::MergeFrom(from._internal_status());
  }
  if (from.timestamp_utc() != 0) {
    _internal_set_timestamp_utc(from._internal_timestamp_utc());
  }
}

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

void TimeStampedStatus::CopyFrom(const TimeStampedStatus& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.TimeStampedStatus)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

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

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

PoseStruct::~PoseStruct() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PoseStruct)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void PoseStruct::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PoseStruct)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* PoseStruct::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float x = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float y = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float z = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          z_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float q0 = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          q0_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float q1 = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 45)) {
          q1_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float q2 = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 53)) {
          q2_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float q3 = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 61)) {
          q3_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // uint32 origin_id = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          origin_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* PoseStruct::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PoseStruct)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

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

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

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

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

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

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

  // uint32 origin_id = 8;
  if (this->origin_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(8, this->_internal_origin_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:Anki.Vector.external_interface.PoseStruct)
  return target;
}

size_t PoseStruct::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PoseStruct)
  size_t total_size = 0;

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

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

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

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

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

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

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

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

  // uint32 origin_id = 8;
  if (this->origin_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_origin_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 PoseStruct::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.PoseStruct)
  GOOGLE_DCHECK_NE(&from, this);
  const PoseStruct* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PoseStruct>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.PoseStruct)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.PoseStruct)
    MergeFrom(*source);
  }
}

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

  if (!(from.x() <= 0 && from.x() >= 0)) {
    _internal_set_x(from._internal_x());
  }
  if (!(from.y() <= 0 && from.y() >= 0)) {
    _internal_set_y(from._internal_y());
  }
  if (!(from.z() <= 0 && from.z() >= 0)) {
    _internal_set_z(from._internal_z());
  }
  if (!(from.q0() <= 0 && from.q0() >= 0)) {
    _internal_set_q0(from._internal_q0());
  }
  if (!(from.q1() <= 0 && from.q1() >= 0)) {
    _internal_set_q1(from._internal_q1());
  }
  if (!(from.q2() <= 0 && from.q2() >= 0)) {
    _internal_set_q2(from._internal_q2());
  }
  if (!(from.q3() <= 0 && from.q3() >= 0)) {
    _internal_set_q3(from._internal_q3());
  }
  if (from.origin_id() != 0) {
    _internal_set_origin_id(from._internal_origin_id());
  }
}

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

void PoseStruct::CopyFrom(const PoseStruct& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PoseStruct)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

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

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

AccelData::~AccelData() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AccelData)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void AccelData::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AccelData)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

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

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

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

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

  // float z = 3;
  if (!(this->z() <= 0 && this->z() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_z(), 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:Anki.Vector.external_interface.AccelData)
  return target;
}

size_t AccelData::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AccelData)
  size_t total_size = 0;

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

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

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

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

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

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

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

  if (!(from.x() <= 0 && from.x() >= 0)) {
    _internal_set_x(from._internal_x());
  }
  if (!(from.y() <= 0 && from.y() >= 0)) {
    _internal_set_y(from._internal_y());
  }
  if (!(from.z() <= 0 && from.z() >= 0)) {
    _internal_set_z(from._internal_z());
  }
}

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

void AccelData::CopyFrom(const AccelData& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AccelData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

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

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

GyroData::~GyroData() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.GyroData)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void GyroData::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.GyroData)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

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

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

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

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

  // float z = 3;
  if (!(this->z() <= 0 && this->z() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_z(), 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:Anki.Vector.external_interface.GyroData)
  return target;
}

size_t GyroData::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.GyroData)
  size_t total_size = 0;

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

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

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

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

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

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

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

  if (!(from.x() <= 0 && from.x() >= 0)) {
    _internal_set_x(from._internal_x());
  }
  if (!(from.y() <= 0 && from.y() >= 0)) {
    _internal_set_y(from._internal_y());
  }
  if (!(from.z() <= 0 && from.z() >= 0)) {
    _internal_set_z(from._internal_z());
  }
}

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

void GyroData::CopyFrom(const GyroData& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.GyroData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

ProxData::ProxData(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ProxData)
}
ProxData::ProxData(const ProxData& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&distance_mm_, &from.distance_mm_,
    static_cast<size_t>(reinterpret_cast<char*>(&is_lift_in_fov_) -
    reinterpret_cast<char*>(&distance_mm_)) + sizeof(is_lift_in_fov_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ProxData)
}

void ProxData::SharedCtor() {
  ::memset(&distance_mm_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&is_lift_in_fov_) -
      reinterpret_cast<char*>(&distance_mm_)) + sizeof(is_lift_in_fov_));
}

ProxData::~ProxData() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ProxData)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void ProxData::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ProxData)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* ProxData::_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 distance_mm = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          distance_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float signal_quality = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          signal_quality_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // bool unobstructed = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          unobstructed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool found_object = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          found_object_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool is_lift_in_fov = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          is_lift_in_fov_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

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

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

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

  // bool found_object = 4;
  if (this->found_object() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_found_object(), target);
  }

  // bool is_lift_in_fov = 5;
  if (this->is_lift_in_fov() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_is_lift_in_fov(), 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:Anki.Vector.external_interface.ProxData)
  return target;
}

size_t ProxData::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ProxData)
  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 distance_mm = 1;
  if (this->distance_mm() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_distance_mm());
  }

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

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

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

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

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

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

void ProxData::MergeFrom(const ProxData& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ProxData)
  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.distance_mm() != 0) {
    _internal_set_distance_mm(from._internal_distance_mm());
  }
  if (!(from.signal_quality() <= 0 && from.signal_quality() >= 0)) {
    _internal_set_signal_quality(from._internal_signal_quality());
  }
  if (from.unobstructed() != 0) {
    _internal_set_unobstructed(from._internal_unobstructed());
  }
  if (from.found_object() != 0) {
    _internal_set_found_object(from._internal_found_object());
  }
  if (from.is_lift_in_fov() != 0) {
    _internal_set_is_lift_in_fov(from._internal_is_lift_in_fov());
  }
}

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

void ProxData::CopyFrom(const ProxData& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ProxData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

TouchData::TouchData(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.TouchData)
}
TouchData::TouchData(const TouchData& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&raw_touch_value_, &from.raw_touch_value_,
    static_cast<size_t>(reinterpret_cast<char*>(&is_being_touched_) -
    reinterpret_cast<char*>(&raw_touch_value_)) + sizeof(is_being_touched_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.TouchData)
}

void TouchData::SharedCtor() {
  ::memset(&raw_touch_value_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&is_being_touched_) -
      reinterpret_cast<char*>(&raw_touch_value_)) + sizeof(is_being_touched_));
}

TouchData::~TouchData() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.TouchData)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void TouchData::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.TouchData)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* TouchData::_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 raw_touch_value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          raw_touch_value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool is_being_touched = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          is_being_touched_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

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

  // bool is_being_touched = 2;
  if (this->is_being_touched() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_is_being_touched(), 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:Anki.Vector.external_interface.TouchData)
  return target;
}

size_t TouchData::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.TouchData)
  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 raw_touch_value = 1;
  if (this->raw_touch_value() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_raw_touch_value());
  }

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

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

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

void TouchData::MergeFrom(const TouchData& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.TouchData)
  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.raw_touch_value() != 0) {
    _internal_set_raw_touch_value(from._internal_raw_touch_value());
  }
  if (from.is_being_touched() != 0) {
    _internal_set_is_being_touched(from._internal_is_being_touched());
  }
}

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

void TouchData::CopyFrom(const TouchData& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.TouchData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void RobotState::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_RobotState_default_instance_._instance.get_mutable()->pose_ = const_cast< ::Anki::Vector::external_interface::PoseStruct*>(
      ::Anki::Vector::external_interface::PoseStruct::internal_default_instance());
  ::Anki::Vector::external_interface::_RobotState_default_instance_._instance.get_mutable()->accel_ = const_cast< ::Anki::Vector::external_interface::AccelData*>(
      ::Anki::Vector::external_interface::AccelData::internal_default_instance());
  ::Anki::Vector::external_interface::_RobotState_default_instance_._instance.get_mutable()->gyro_ = const_cast< ::Anki::Vector::external_interface::GyroData*>(
      ::Anki::Vector::external_interface::GyroData::internal_default_instance());
  ::Anki::Vector::external_interface::_RobotState_default_instance_._instance.get_mutable()->prox_data_ = const_cast< ::Anki::Vector::external_interface::ProxData*>(
      ::Anki::Vector::external_interface::ProxData::internal_default_instance());
  ::Anki::Vector::external_interface::_RobotState_default_instance_._instance.get_mutable()->touch_data_ = const_cast< ::Anki::Vector::external_interface::TouchData*>(
      ::Anki::Vector::external_interface::TouchData::internal_default_instance());
}
class RobotState::_Internal {
 public:
  static const ::Anki::Vector::external_interface::PoseStruct& pose(const RobotState* msg);
  static const ::Anki::Vector::external_interface::AccelData& accel(const RobotState* msg);
  static const ::Anki::Vector::external_interface::GyroData& gyro(const RobotState* msg);
  static const ::Anki::Vector::external_interface::ProxData& prox_data(const RobotState* msg);
  static const ::Anki::Vector::external_interface::TouchData& touch_data(const RobotState* msg);
};

const ::Anki::Vector::external_interface::PoseStruct&
RobotState::_Internal::pose(const RobotState* msg) {
  return *msg->pose_;
}
const ::Anki::Vector::external_interface::AccelData&
RobotState::_Internal::accel(const RobotState* msg) {
  return *msg->accel_;
}
const ::Anki::Vector::external_interface::GyroData&
RobotState::_Internal::gyro(const RobotState* msg) {
  return *msg->gyro_;
}
const ::Anki::Vector::external_interface::ProxData&
RobotState::_Internal::prox_data(const RobotState* msg) {
  return *msg->prox_data_;
}
const ::Anki::Vector::external_interface::TouchData&
RobotState::_Internal::touch_data(const RobotState* msg) {
  return *msg->touch_data_;
}
RobotState::RobotState(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RobotState)
}
RobotState::RobotState(const RobotState& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_pose()) {
    pose_ = new ::Anki::Vector::external_interface::PoseStruct(*from.pose_);
  } else {
    pose_ = nullptr;
  }
  if (from._internal_has_accel()) {
    accel_ = new ::Anki::Vector::external_interface::AccelData(*from.accel_);
  } else {
    accel_ = nullptr;
  }
  if (from._internal_has_gyro()) {
    gyro_ = new ::Anki::Vector::external_interface::GyroData(*from.gyro_);
  } else {
    gyro_ = nullptr;
  }
  if (from._internal_has_prox_data()) {
    prox_data_ = new ::Anki::Vector::external_interface::ProxData(*from.prox_data_);
  } else {
    prox_data_ = nullptr;
  }
  if (from._internal_has_touch_data()) {
    touch_data_ = new ::Anki::Vector::external_interface::TouchData(*from.touch_data_);
  } else {
    touch_data_ = nullptr;
  }
  ::memcpy(&pose_angle_rad_, &from.pose_angle_rad_,
    static_cast<size_t>(reinterpret_cast<char*>(&status_) -
    reinterpret_cast<char*>(&pose_angle_rad_)) + sizeof(status_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RobotState)
}

void RobotState::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RobotState_messages_2eproto.base);
  ::memset(&pose_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&status_) -
      reinterpret_cast<char*>(&pose_)) + sizeof(status_));
}

RobotState::~RobotState() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.RobotState)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void RobotState::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete pose_;
  if (this != internal_default_instance()) delete accel_;
  if (this != internal_default_instance()) delete gyro_;
  if (this != internal_default_instance()) delete prox_data_;
  if (this != internal_default_instance()) delete touch_data_;
}

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


void RobotState::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.RobotState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && pose_ != nullptr) {
    delete pose_;
  }
  pose_ = nullptr;
  if (GetArena() == nullptr && accel_ != nullptr) {
    delete accel_;
  }
  accel_ = nullptr;
  if (GetArena() == nullptr && gyro_ != nullptr) {
    delete gyro_;
  }
  gyro_ = nullptr;
  if (GetArena() == nullptr && prox_data_ != nullptr) {
    delete prox_data_;
  }
  prox_data_ = nullptr;
  if (GetArena() == nullptr && touch_data_ != nullptr) {
    delete touch_data_;
  }
  touch_data_ = nullptr;
  ::memset(&pose_angle_rad_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&status_) -
      reinterpret_cast<char*>(&pose_angle_rad_)) + sizeof(status_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RobotState::_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) {
      // .Anki.Vector.external_interface.PoseStruct pose = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_pose(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float pose_angle_rad = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          pose_angle_rad_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float pose_pitch_rad = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          pose_pitch_rad_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float left_wheel_speed_mmps = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          left_wheel_speed_mmps_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float right_wheel_speed_mmps = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 45)) {
          right_wheel_speed_mmps_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float head_angle_rad = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 53)) {
          head_angle_rad_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float lift_height_mm = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 61)) {
          lift_height_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.AccelData accel = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_accel(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.GyroData gyro = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_gyro(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 carrying_object_id = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
          carrying_object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 carrying_object_on_top_id = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
          carrying_object_on_top_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 head_tracking_object_id = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
          head_tracking_object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 localized_to_object_id = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
          localized_to_object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 last_image_time_stamp = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
          last_image_time_stamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 status = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
          status_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ProxData prox_data = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) {
          ptr = ctx->ParseMessage(_internal_mutable_prox_data(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.TouchData touch_data = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) {
          ptr = ctx->ParseMessage(_internal_mutable_touch_data(), 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* RobotState::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.RobotState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.PoseStruct pose = 1;
  if (this->has_pose()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::pose(this), target, stream);
  }

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

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

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

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

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

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

  // .Anki.Vector.external_interface.AccelData accel = 8;
  if (this->has_accel()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        8, _Internal::accel(this), target, stream);
  }

  // .Anki.Vector.external_interface.GyroData gyro = 9;
  if (this->has_gyro()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        9, _Internal::gyro(this), target, stream);
  }

  // int32 carrying_object_id = 10;
  if (this->carrying_object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(10, this->_internal_carrying_object_id(), target);
  }

  // int32 carrying_object_on_top_id = 11;
  if (this->carrying_object_on_top_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(11, this->_internal_carrying_object_on_top_id(), target);
  }

  // int32 head_tracking_object_id = 12;
  if (this->head_tracking_object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(12, this->_internal_head_tracking_object_id(), target);
  }

  // int32 localized_to_object_id = 13;
  if (this->localized_to_object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(13, this->_internal_localized_to_object_id(), target);
  }

  // uint32 last_image_time_stamp = 14;
  if (this->last_image_time_stamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(14, this->_internal_last_image_time_stamp(), target);
  }

  // uint32 status = 15;
  if (this->status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(15, this->_internal_status(), target);
  }

  // .Anki.Vector.external_interface.ProxData prox_data = 16;
  if (this->has_prox_data()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        16, _Internal::prox_data(this), target, stream);
  }

  // .Anki.Vector.external_interface.TouchData touch_data = 17;
  if (this->has_touch_data()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        17, _Internal::touch_data(this), target, stream);
  }

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

size_t RobotState::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RobotState)
  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;

  // .Anki.Vector.external_interface.PoseStruct pose = 1;
  if (this->has_pose()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *pose_);
  }

  // .Anki.Vector.external_interface.AccelData accel = 8;
  if (this->has_accel()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *accel_);
  }

  // .Anki.Vector.external_interface.GyroData gyro = 9;
  if (this->has_gyro()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *gyro_);
  }

  // .Anki.Vector.external_interface.ProxData prox_data = 16;
  if (this->has_prox_data()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *prox_data_);
  }

  // .Anki.Vector.external_interface.TouchData touch_data = 17;
  if (this->has_touch_data()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *touch_data_);
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  if (from.has_pose()) {
    _internal_mutable_pose()->::Anki::Vector::external_interface::PoseStruct::MergeFrom(from._internal_pose());
  }
  if (from.has_accel()) {
    _internal_mutable_accel()->::Anki::Vector::external_interface::AccelData::MergeFrom(from._internal_accel());
  }
  if (from.has_gyro()) {
    _internal_mutable_gyro()->::Anki::Vector::external_interface::GyroData::MergeFrom(from._internal_gyro());
  }
  if (from.has_prox_data()) {
    _internal_mutable_prox_data()->::Anki::Vector::external_interface::ProxData::MergeFrom(from._internal_prox_data());
  }
  if (from.has_touch_data()) {
    _internal_mutable_touch_data()->::Anki::Vector::external_interface::TouchData::MergeFrom(from._internal_touch_data());
  }
  if (!(from.pose_angle_rad() <= 0 && from.pose_angle_rad() >= 0)) {
    _internal_set_pose_angle_rad(from._internal_pose_angle_rad());
  }
  if (!(from.pose_pitch_rad() <= 0 && from.pose_pitch_rad() >= 0)) {
    _internal_set_pose_pitch_rad(from._internal_pose_pitch_rad());
  }
  if (!(from.left_wheel_speed_mmps() <= 0 && from.left_wheel_speed_mmps() >= 0)) {
    _internal_set_left_wheel_speed_mmps(from._internal_left_wheel_speed_mmps());
  }
  if (!(from.right_wheel_speed_mmps() <= 0 && from.right_wheel_speed_mmps() >= 0)) {
    _internal_set_right_wheel_speed_mmps(from._internal_right_wheel_speed_mmps());
  }
  if (!(from.head_angle_rad() <= 0 && from.head_angle_rad() >= 0)) {
    _internal_set_head_angle_rad(from._internal_head_angle_rad());
  }
  if (!(from.lift_height_mm() <= 0 && from.lift_height_mm() >= 0)) {
    _internal_set_lift_height_mm(from._internal_lift_height_mm());
  }
  if (from.carrying_object_id() != 0) {
    _internal_set_carrying_object_id(from._internal_carrying_object_id());
  }
  if (from.carrying_object_on_top_id() != 0) {
    _internal_set_carrying_object_on_top_id(from._internal_carrying_object_on_top_id());
  }
  if (from.head_tracking_object_id() != 0) {
    _internal_set_head_tracking_object_id(from._internal_head_tracking_object_id());
  }
  if (from.localized_to_object_id() != 0) {
    _internal_set_localized_to_object_id(from._internal_localized_to_object_id());
  }
  if (from.last_image_time_stamp() != 0) {
    _internal_set_last_image_time_stamp(from._internal_last_image_time_stamp());
  }
  if (from.status() != 0) {
    _internal_set_status(from._internal_status());
  }
}

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

void RobotState::CopyFrom(const RobotState& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.RobotState)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

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

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

CladPoint::~CladPoint() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CladPoint)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void CladPoint::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CladPoint)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* CladPoint::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float x = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float y = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      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* CladPoint::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CladPoint)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

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

  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:Anki.Vector.external_interface.CladPoint)
  return target;
}

size_t CladPoint::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CladPoint)
  size_t total_size = 0;

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

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

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

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

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

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

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

void CladPoint::CopyFrom(const CladPoint& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CladPoint)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

CladRect::CladRect(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CladRect)
}
CladRect::CladRect(const CladRect& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&x_top_left_, &from.x_top_left_,
    static_cast<size_t>(reinterpret_cast<char*>(&height_) -
    reinterpret_cast<char*>(&x_top_left_)) + sizeof(height_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CladRect)
}

void CladRect::SharedCtor() {
  ::memset(&x_top_left_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&height_) -
      reinterpret_cast<char*>(&x_top_left_)) + sizeof(height_));
}

CladRect::~CladRect() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CladRect)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void CladRect::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CladRect)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

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

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

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

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

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

  // float height = 4;
  if (!(this->height() <= 0 && this->height() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_height(), 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:Anki.Vector.external_interface.CladRect)
  return target;
}

size_t CladRect::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CladRect)
  size_t total_size = 0;

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

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

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

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

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

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

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

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

  if (!(from.x_top_left() <= 0 && from.x_top_left() >= 0)) {
    _internal_set_x_top_left(from._internal_x_top_left());
  }
  if (!(from.y_top_left() <= 0 && from.y_top_left() >= 0)) {
    _internal_set_y_top_left(from._internal_y_top_left());
  }
  if (!(from.width() <= 0 && from.width() >= 0)) {
    _internal_set_width(from._internal_width());
  }
  if (!(from.height() <= 0 && from.height() >= 0)) {
    _internal_set_height(from._internal_height());
  }
}

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

void CladRect::CopyFrom(const CladRect& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CladRect)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

RobotObservedMotion::RobotObservedMotion(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RobotObservedMotion)
}
RobotObservedMotion::RobotObservedMotion(const RobotObservedMotion& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&right_img_y_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(right_img_y_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RobotObservedMotion)
}

void RobotObservedMotion::SharedCtor() {
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&right_img_y_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(right_img_y_));
}

RobotObservedMotion::~RobotObservedMotion() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.RobotObservedMotion)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void RobotObservedMotion::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.RobotObservedMotion)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* RobotObservedMotion::_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 timestamp = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float img_area = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          img_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 img_x = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          img_x_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 img_y = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          img_y_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float ground_area = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 45)) {
          ground_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 ground_x = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          ground_x_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 ground_y = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          ground_y_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float top_img_area = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 69)) {
          top_img_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 top_img_x = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
          top_img_x_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 top_img_y = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
          top_img_y_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float bottom_img_area = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 93)) {
          bottom_img_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 bottom_img_x = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
          bottom_img_x_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 bottom_img_y = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
          bottom_img_y_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float left_img_area = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 117)) {
          left_img_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 left_img_x = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
          left_img_x_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 left_img_y = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 128)) {
          left_img_y_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float right_img_area = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 141)) {
          right_img_area_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 right_img_x = 18;
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 144)) {
          right_img_x_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 right_img_y = 19;
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152)) {
          right_img_y_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

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

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

  // int32 img_x = 3;
  if (this->img_x() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_img_x(), target);
  }

  // int32 img_y = 4;
  if (this->img_y() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_img_y(), target);
  }

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

  // int32 ground_x = 6;
  if (this->ground_x() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(6, this->_internal_ground_x(), target);
  }

  // int32 ground_y = 7;
  if (this->ground_y() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_ground_y(), target);
  }

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

  // int32 top_img_x = 9;
  if (this->top_img_x() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(9, this->_internal_top_img_x(), target);
  }

  // int32 top_img_y = 10;
  if (this->top_img_y() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(10, this->_internal_top_img_y(), target);
  }

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

  // int32 bottom_img_x = 12;
  if (this->bottom_img_x() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(12, this->_internal_bottom_img_x(), target);
  }

  // int32 bottom_img_y = 13;
  if (this->bottom_img_y() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(13, this->_internal_bottom_img_y(), target);
  }

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

  // int32 left_img_x = 15;
  if (this->left_img_x() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(15, this->_internal_left_img_x(), target);
  }

  // int32 left_img_y = 16;
  if (this->left_img_y() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(16, this->_internal_left_img_y(), target);
  }

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

  // int32 right_img_x = 18;
  if (this->right_img_x() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(18, this->_internal_right_img_x(), target);
  }

  // int32 right_img_y = 19;
  if (this->right_img_y() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(19, this->_internal_right_img_y(), 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:Anki.Vector.external_interface.RobotObservedMotion)
  return target;
}

size_t RobotObservedMotion::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RobotObservedMotion)
  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 timestamp = 1;
  if (this->timestamp() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_timestamp());
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  // int32 left_img_y = 16;
  if (this->left_img_y() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_left_img_y());
  }

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

  // int32 right_img_x = 18;
  if (this->right_img_x() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_right_img_x());
  }

  // int32 right_img_y = 19;
  if (this->right_img_y() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_right_img_y());
  }

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

void RobotObservedMotion::MergeFrom(const RobotObservedMotion& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.RobotObservedMotion)
  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.timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (!(from.img_area() <= 0 && from.img_area() >= 0)) {
    _internal_set_img_area(from._internal_img_area());
  }
  if (from.img_x() != 0) {
    _internal_set_img_x(from._internal_img_x());
  }
  if (from.img_y() != 0) {
    _internal_set_img_y(from._internal_img_y());
  }
  if (!(from.ground_area() <= 0 && from.ground_area() >= 0)) {
    _internal_set_ground_area(from._internal_ground_area());
  }
  if (from.ground_x() != 0) {
    _internal_set_ground_x(from._internal_ground_x());
  }
  if (from.ground_y() != 0) {
    _internal_set_ground_y(from._internal_ground_y());
  }
  if (!(from.top_img_area() <= 0 && from.top_img_area() >= 0)) {
    _internal_set_top_img_area(from._internal_top_img_area());
  }
  if (from.top_img_x() != 0) {
    _internal_set_top_img_x(from._internal_top_img_x());
  }
  if (from.top_img_y() != 0) {
    _internal_set_top_img_y(from._internal_top_img_y());
  }
  if (!(from.bottom_img_area() <= 0 && from.bottom_img_area() >= 0)) {
    _internal_set_bottom_img_area(from._internal_bottom_img_area());
  }
  if (from.bottom_img_x() != 0) {
    _internal_set_bottom_img_x(from._internal_bottom_img_x());
  }
  if (from.bottom_img_y() != 0) {
    _internal_set_bottom_img_y(from._internal_bottom_img_y());
  }
  if (!(from.left_img_area() <= 0 && from.left_img_area() >= 0)) {
    _internal_set_left_img_area(from._internal_left_img_area());
  }
  if (from.left_img_x() != 0) {
    _internal_set_left_img_x(from._internal_left_img_x());
  }
  if (from.left_img_y() != 0) {
    _internal_set_left_img_y(from._internal_left_img_y());
  }
  if (!(from.right_img_area() <= 0 && from.right_img_area() >= 0)) {
    _internal_set_right_img_area(from._internal_right_img_area());
  }
  if (from.right_img_x() != 0) {
    _internal_set_right_img_x(from._internal_right_img_x());
  }
  if (from.right_img_y() != 0) {
    _internal_set_right_img_y(from._internal_right_img_y());
  }
}

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

void RobotObservedMotion::CopyFrom(const RobotObservedMotion& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.RobotObservedMotion)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

RobotErasedEnrolledFace::RobotErasedEnrolledFace(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RobotErasedEnrolledFace)
}
RobotErasedEnrolledFace::RobotErasedEnrolledFace(const RobotErasedEnrolledFace& 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());
  }
  face_id_ = from.face_id_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RobotErasedEnrolledFace)
}

void RobotErasedEnrolledFace::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RobotErasedEnrolledFace_messages_2eproto.base);
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  face_id_ = 0;
}

RobotErasedEnrolledFace::~RobotErasedEnrolledFace() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.RobotErasedEnrolledFace)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void RobotErasedEnrolledFace::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.RobotErasedEnrolledFace)
  ::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());
  face_id_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RobotErasedEnrolledFace::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 face_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          face_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&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, "Anki.Vector.external_interface.RobotErasedEnrolledFace.name"));
          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* RobotErasedEnrolledFace::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.RobotErasedEnrolledFace)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 face_id = 1;
  if (this->face_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_face_id(), 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,
      "Anki.Vector.external_interface.RobotErasedEnrolledFace.name");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_name(), 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:Anki.Vector.external_interface.RobotErasedEnrolledFace)
  return target;
}

size_t RobotErasedEnrolledFace::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RobotErasedEnrolledFace)
  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());
  }

  // int32 face_id = 1;
  if (this->face_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_face_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 RobotErasedEnrolledFace::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.RobotErasedEnrolledFace)
  GOOGLE_DCHECK_NE(&from, this);
  const RobotErasedEnrolledFace* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RobotErasedEnrolledFace>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.RobotErasedEnrolledFace)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.RobotErasedEnrolledFace)
    MergeFrom(*source);
  }
}

void RobotErasedEnrolledFace::MergeFrom(const RobotErasedEnrolledFace& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.RobotErasedEnrolledFace)
  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.face_id() != 0) {
    _internal_set_face_id(from._internal_face_id());
  }
}

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

void RobotErasedEnrolledFace::CopyFrom(const RobotErasedEnrolledFace& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.RobotErasedEnrolledFace)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

UnexpectedMovement::UnexpectedMovement(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UnexpectedMovement)
}
UnexpectedMovement::UnexpectedMovement(const UnexpectedMovement& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&movement_side_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(movement_side_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UnexpectedMovement)
}

void UnexpectedMovement::SharedCtor() {
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&movement_side_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(movement_side_));
}

UnexpectedMovement::~UnexpectedMovement() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.UnexpectedMovement)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void UnexpectedMovement::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.UnexpectedMovement)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* UnexpectedMovement::_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 timestamp = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.UnexpectedMovementType movement_type = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_movement_type(static_cast<::Anki::Vector::external_interface::UnexpectedMovementType>(val));
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.UnexpectedMovementSide movement_side = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_movement_side(static_cast<::Anki::Vector::external_interface::UnexpectedMovementSide>(val));
        } 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* UnexpectedMovement::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.UnexpectedMovement)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

  // .Anki.Vector.external_interface.UnexpectedMovementType movement_type = 2;
  if (this->movement_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_movement_type(), target);
  }

  // .Anki.Vector.external_interface.UnexpectedMovementSide movement_side = 3;
  if (this->movement_side() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      3, this->_internal_movement_side(), 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:Anki.Vector.external_interface.UnexpectedMovement)
  return target;
}

size_t UnexpectedMovement::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.UnexpectedMovement)
  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 timestamp = 1;
  if (this->timestamp() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_timestamp());
  }

  // .Anki.Vector.external_interface.UnexpectedMovementType movement_type = 2;
  if (this->movement_type() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_movement_type());
  }

  // .Anki.Vector.external_interface.UnexpectedMovementSide movement_side = 3;
  if (this->movement_side() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_movement_side());
  }

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

void UnexpectedMovement::MergeFrom(const UnexpectedMovement& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.UnexpectedMovement)
  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.timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from.movement_type() != 0) {
    _internal_set_movement_type(from._internal_movement_type());
  }
  if (from.movement_side() != 0) {
    _internal_set_movement_side(from._internal_movement_side());
  }
}

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

void UnexpectedMovement::CopyFrom(const UnexpectedMovement& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.UnexpectedMovement)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void RobotObservedFace::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_RobotObservedFace_default_instance_._instance.get_mutable()->pose_ = const_cast< ::Anki::Vector::external_interface::PoseStruct*>(
      ::Anki::Vector::external_interface::PoseStruct::internal_default_instance());
  ::Anki::Vector::external_interface::_RobotObservedFace_default_instance_._instance.get_mutable()->img_rect_ = const_cast< ::Anki::Vector::external_interface::CladRect*>(
      ::Anki::Vector::external_interface::CladRect::internal_default_instance());
}
class RobotObservedFace::_Internal {
 public:
  static const ::Anki::Vector::external_interface::PoseStruct& pose(const RobotObservedFace* msg);
  static const ::Anki::Vector::external_interface::CladRect& img_rect(const RobotObservedFace* msg);
};

const ::Anki::Vector::external_interface::PoseStruct&
RobotObservedFace::_Internal::pose(const RobotObservedFace* msg) {
  return *msg->pose_;
}
const ::Anki::Vector::external_interface::CladRect&
RobotObservedFace::_Internal::img_rect(const RobotObservedFace* msg) {
  return *msg->img_rect_;
}
RobotObservedFace::RobotObservedFace(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  expression_values_(arena),
  left_eye_(arena),
  right_eye_(arena),
  nose_(arena),
  mouth_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RobotObservedFace)
}
RobotObservedFace::RobotObservedFace(const RobotObservedFace& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      expression_values_(from.expression_values_),
      left_eye_(from.left_eye_),
      right_eye_(from.right_eye_),
      nose_(from.nose_),
      mouth_(from.mouth_) {
  _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());
  }
  if (from._internal_has_pose()) {
    pose_ = new ::Anki::Vector::external_interface::PoseStruct(*from.pose_);
  } else {
    pose_ = nullptr;
  }
  if (from._internal_has_img_rect()) {
    img_rect_ = new ::Anki::Vector::external_interface::CladRect(*from.img_rect_);
  } else {
    img_rect_ = nullptr;
  }
  ::memcpy(&face_id_, &from.face_id_,
    static_cast<size_t>(reinterpret_cast<char*>(&expression_) -
    reinterpret_cast<char*>(&face_id_)) + sizeof(expression_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RobotObservedFace)
}

void RobotObservedFace::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RobotObservedFace_messages_2eproto.base);
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&pose_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&expression_) -
      reinterpret_cast<char*>(&pose_)) + sizeof(expression_));
}

RobotObservedFace::~RobotObservedFace() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.RobotObservedFace)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void RobotObservedFace::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete pose_;
  if (this != internal_default_instance()) delete img_rect_;
}

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


void RobotObservedFace::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.RobotObservedFace)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  expression_values_.Clear();
  left_eye_.Clear();
  right_eye_.Clear();
  nose_.Clear();
  mouth_.Clear();
  name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  if (GetArena() == nullptr && pose_ != nullptr) {
    delete pose_;
  }
  pose_ = nullptr;
  if (GetArena() == nullptr && img_rect_ != nullptr) {
    delete img_rect_;
  }
  img_rect_ = nullptr;
  ::memset(&face_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&expression_) -
      reinterpret_cast<char*>(&face_id_)) + sizeof(expression_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RobotObservedFace::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 face_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          face_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 timestamp = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PoseStruct pose = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_pose(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CladRect img_rect = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_img_rect(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string name = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          auto str = _internal_mutable_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.RobotObservedFace.name"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.FacialExpression expression = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_expression(static_cast<::Anki::Vector::external_interface::FacialExpression>(val));
        } else goto handle_unusual;
        continue;
      // repeated uint32 expression_values = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_expression_values(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56) {
          _internal_add_expression_values(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .Anki.Vector.external_interface.CladPoint left_eye = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_left_eye(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<66>(ptr));
        } else goto handle_unusual;
        continue;
      // repeated .Anki.Vector.external_interface.CladPoint right_eye = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_right_eye(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<74>(ptr));
        } else goto handle_unusual;
        continue;
      // repeated .Anki.Vector.external_interface.CladPoint nose = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_nose(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<82>(ptr));
        } else goto handle_unusual;
        continue;
      // repeated .Anki.Vector.external_interface.CladPoint mouth = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_mouth(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<90>(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* RobotObservedFace::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.RobotObservedFace)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

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

  // .Anki.Vector.external_interface.PoseStruct pose = 3;
  if (this->has_pose()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::pose(this), target, stream);
  }

  // .Anki.Vector.external_interface.CladRect img_rect = 4;
  if (this->has_img_rect()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::img_rect(this), target, stream);
  }

  // string name = 5;
  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,
      "Anki.Vector.external_interface.RobotObservedFace.name");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_name(), target);
  }

  // .Anki.Vector.external_interface.FacialExpression expression = 6;
  if (this->expression() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      6, this->_internal_expression(), target);
  }

  // repeated uint32 expression_values = 7;
  {
    int byte_size = _expression_values_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          7, _internal_expression_values(), byte_size, target);
    }
  }

  // repeated .Anki.Vector.external_interface.CladPoint left_eye = 8;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_left_eye_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(8, this->_internal_left_eye(i), target, stream);
  }

  // repeated .Anki.Vector.external_interface.CladPoint right_eye = 9;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_right_eye_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(9, this->_internal_right_eye(i), target, stream);
  }

  // repeated .Anki.Vector.external_interface.CladPoint nose = 10;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_nose_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(10, this->_internal_nose(i), target, stream);
  }

  // repeated .Anki.Vector.external_interface.CladPoint mouth = 11;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_mouth_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(11, this->_internal_mouth(i), target, stream);
  }

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

size_t RobotObservedFace::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RobotObservedFace)
  size_t total_size = 0;

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

  // repeated uint32 expression_values = 7;
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      UInt32Size(this->expression_values_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _expression_values_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated .Anki.Vector.external_interface.CladPoint left_eye = 8;
  total_size += 1UL * this->_internal_left_eye_size();
  for (const auto& msg : this->left_eye_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .Anki.Vector.external_interface.CladPoint right_eye = 9;
  total_size += 1UL * this->_internal_right_eye_size();
  for (const auto& msg : this->right_eye_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .Anki.Vector.external_interface.CladPoint nose = 10;
  total_size += 1UL * this->_internal_nose_size();
  for (const auto& msg : this->nose_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .Anki.Vector.external_interface.CladPoint mouth = 11;
  total_size += 1UL * this->_internal_mouth_size();
  for (const auto& msg : this->mouth_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

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

  // .Anki.Vector.external_interface.PoseStruct pose = 3;
  if (this->has_pose()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *pose_);
  }

  // .Anki.Vector.external_interface.CladRect img_rect = 4;
  if (this->has_img_rect()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *img_rect_);
  }

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

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

  // .Anki.Vector.external_interface.FacialExpression expression = 6;
  if (this->expression() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_expression());
  }

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

void RobotObservedFace::MergeFrom(const RobotObservedFace& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.RobotObservedFace)
  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;

  expression_values_.MergeFrom(from.expression_values_);
  left_eye_.MergeFrom(from.left_eye_);
  right_eye_.MergeFrom(from.right_eye_);
  nose_.MergeFrom(from.nose_);
  mouth_.MergeFrom(from.mouth_);
  if (from.name().size() > 0) {
    _internal_set_name(from._internal_name());
  }
  if (from.has_pose()) {
    _internal_mutable_pose()->::Anki::Vector::external_interface::PoseStruct::MergeFrom(from._internal_pose());
  }
  if (from.has_img_rect()) {
    _internal_mutable_img_rect()->::Anki::Vector::external_interface::CladRect::MergeFrom(from._internal_img_rect());
  }
  if (from.face_id() != 0) {
    _internal_set_face_id(from._internal_face_id());
  }
  if (from.timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from.expression() != 0) {
    _internal_set_expression(from._internal_expression());
  }
}

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

void RobotObservedFace::CopyFrom(const RobotObservedFace& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.RobotObservedFace)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void RobotObservedFace::InternalSwap(RobotObservedFace* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  expression_values_.InternalSwap(&other->expression_values_);
  left_eye_.InternalSwap(&other->left_eye_);
  right_eye_.InternalSwap(&other->right_eye_);
  nose_.InternalSwap(&other->nose_);
  mouth_.InternalSwap(&other->mouth_);
  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RobotObservedFace, expression_)
      + sizeof(RobotObservedFace::expression_)
      - PROTOBUF_FIELD_OFFSET(RobotObservedFace, pose_)>(
          reinterpret_cast<char*>(&pose_),
          reinterpret_cast<char*>(&other->pose_));
}

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


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

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

RobotChangedObservedFaceID::RobotChangedObservedFaceID(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RobotChangedObservedFaceID)
}
RobotChangedObservedFaceID::RobotChangedObservedFaceID(const RobotChangedObservedFaceID& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&old_id_, &from.old_id_,
    static_cast<size_t>(reinterpret_cast<char*>(&new_id_) -
    reinterpret_cast<char*>(&old_id_)) + sizeof(new_id_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RobotChangedObservedFaceID)
}

void RobotChangedObservedFaceID::SharedCtor() {
  ::memset(&old_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&new_id_) -
      reinterpret_cast<char*>(&old_id_)) + sizeof(new_id_));
}

RobotChangedObservedFaceID::~RobotChangedObservedFaceID() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.RobotChangedObservedFaceID)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void RobotChangedObservedFaceID::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.RobotChangedObservedFaceID)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* RobotChangedObservedFaceID::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 old_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          old_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 new_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          new_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

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

  // int32 new_id = 2;
  if (this->new_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_new_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:Anki.Vector.external_interface.RobotChangedObservedFaceID)
  return target;
}

size_t RobotChangedObservedFaceID::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RobotChangedObservedFaceID)
  size_t total_size = 0;

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

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

  // int32 new_id = 2;
  if (this->new_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_new_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 RobotChangedObservedFaceID::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.RobotChangedObservedFaceID)
  GOOGLE_DCHECK_NE(&from, this);
  const RobotChangedObservedFaceID* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RobotChangedObservedFaceID>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.RobotChangedObservedFaceID)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.RobotChangedObservedFaceID)
    MergeFrom(*source);
  }
}

void RobotChangedObservedFaceID::MergeFrom(const RobotChangedObservedFaceID& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.RobotChangedObservedFaceID)
  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.old_id() != 0) {
    _internal_set_old_id(from._internal_old_id());
  }
  if (from.new_id() != 0) {
    _internal_set_new_id(from._internal_new_id());
  }
}

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

void RobotChangedObservedFaceID::CopyFrom(const RobotChangedObservedFaceID& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.RobotChangedObservedFaceID)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

FaceEnrollmentCompleted::FaceEnrollmentCompleted(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.FaceEnrollmentCompleted)
}
FaceEnrollmentCompleted::FaceEnrollmentCompleted(const FaceEnrollmentCompleted& 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());
  }
  ::memcpy(&result_, &from.result_,
    static_cast<size_t>(reinterpret_cast<char*>(&face_id_) -
    reinterpret_cast<char*>(&result_)) + sizeof(face_id_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.FaceEnrollmentCompleted)
}

void FaceEnrollmentCompleted::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_FaceEnrollmentCompleted_messages_2eproto.base);
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&result_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&face_id_) -
      reinterpret_cast<char*>(&result_)) + sizeof(face_id_));
}

FaceEnrollmentCompleted::~FaceEnrollmentCompleted() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.FaceEnrollmentCompleted)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void FaceEnrollmentCompleted::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.FaceEnrollmentCompleted)
  ::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());
  ::memset(&result_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&face_id_) -
      reinterpret_cast<char*>(&result_)) + sizeof(face_id_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FaceEnrollmentCompleted::_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) {
      // .Anki.Vector.external_interface.FaceEnrollmentResult result = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_result(static_cast<::Anki::Vector::external_interface::FaceEnrollmentResult>(val));
        } else goto handle_unusual;
        continue;
      // int32 face_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          face_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string name = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.FaceEnrollmentCompleted.name"));
          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* FaceEnrollmentCompleted::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.FaceEnrollmentCompleted)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.FaceEnrollmentResult result = 1;
  if (this->result() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_result(), target);
  }

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

  // string name = 3;
  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,
      "Anki.Vector.external_interface.FaceEnrollmentCompleted.name");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_name(), 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:Anki.Vector.external_interface.FaceEnrollmentCompleted)
  return target;
}

size_t FaceEnrollmentCompleted::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.FaceEnrollmentCompleted)
  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 = 3;
  if (this->name().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

  // .Anki.Vector.external_interface.FaceEnrollmentResult result = 1;
  if (this->result() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_result());
  }

  // int32 face_id = 2;
  if (this->face_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_face_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 FaceEnrollmentCompleted::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.FaceEnrollmentCompleted)
  GOOGLE_DCHECK_NE(&from, this);
  const FaceEnrollmentCompleted* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<FaceEnrollmentCompleted>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.FaceEnrollmentCompleted)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.FaceEnrollmentCompleted)
    MergeFrom(*source);
  }
}

void FaceEnrollmentCompleted::MergeFrom(const FaceEnrollmentCompleted& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.FaceEnrollmentCompleted)
  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.result() != 0) {
    _internal_set_result(from._internal_result());
  }
  if (from.face_id() != 0) {
    _internal_set_face_id(from._internal_face_id());
  }
}

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

void FaceEnrollmentCompleted::CopyFrom(const FaceEnrollmentCompleted& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.FaceEnrollmentCompleted)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

CancelFaceEnrollmentRequest::CancelFaceEnrollmentRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CancelFaceEnrollmentRequest)
}
CancelFaceEnrollmentRequest::CancelFaceEnrollmentRequest(const CancelFaceEnrollmentRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CancelFaceEnrollmentRequest)
}

void CancelFaceEnrollmentRequest::SharedCtor() {
}

CancelFaceEnrollmentRequest::~CancelFaceEnrollmentRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CancelFaceEnrollmentRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void CancelFaceEnrollmentRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CancelFaceEnrollmentRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* CancelFaceEnrollmentRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  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:Anki.Vector.external_interface.CancelFaceEnrollmentRequest)
  return target;
}

size_t CancelFaceEnrollmentRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CancelFaceEnrollmentRequest)
  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;

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

void CancelFaceEnrollmentRequest::MergeFrom(const CancelFaceEnrollmentRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CancelFaceEnrollmentRequest)
  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;

}

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

void CancelFaceEnrollmentRequest::CopyFrom(const CancelFaceEnrollmentRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CancelFaceEnrollmentRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void CancelFaceEnrollmentResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_CancelFaceEnrollmentResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class CancelFaceEnrollmentResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const CancelFaceEnrollmentResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
CancelFaceEnrollmentResponse::_Internal::status(const CancelFaceEnrollmentResponse* msg) {
  return *msg->status_;
}
void CancelFaceEnrollmentResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
CancelFaceEnrollmentResponse::CancelFaceEnrollmentResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CancelFaceEnrollmentResponse)
}
CancelFaceEnrollmentResponse::CancelFaceEnrollmentResponse(const CancelFaceEnrollmentResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CancelFaceEnrollmentResponse)
}

void CancelFaceEnrollmentResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CancelFaceEnrollmentResponse_messages_2eproto.base);
  status_ = nullptr;
}

CancelFaceEnrollmentResponse::~CancelFaceEnrollmentResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CancelFaceEnrollmentResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CancelFaceEnrollmentResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

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


void CancelFaceEnrollmentResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CancelFaceEnrollmentResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CancelFaceEnrollmentResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* CancelFaceEnrollmentResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CancelFaceEnrollmentResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t CancelFaceEnrollmentResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CancelFaceEnrollmentResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void CancelFaceEnrollmentResponse::CopyFrom(const CancelFaceEnrollmentResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CancelFaceEnrollmentResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

RequestEnrolledNamesRequest::RequestEnrolledNamesRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RequestEnrolledNamesRequest)
}
RequestEnrolledNamesRequest::RequestEnrolledNamesRequest(const RequestEnrolledNamesRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RequestEnrolledNamesRequest)
}

void RequestEnrolledNamesRequest::SharedCtor() {
}

RequestEnrolledNamesRequest::~RequestEnrolledNamesRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.RequestEnrolledNamesRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void RequestEnrolledNamesRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.RequestEnrolledNamesRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* RequestEnrolledNamesRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  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:Anki.Vector.external_interface.RequestEnrolledNamesRequest)
  return target;
}

size_t RequestEnrolledNamesRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RequestEnrolledNamesRequest)
  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;

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

void RequestEnrolledNamesRequest::MergeFrom(const RequestEnrolledNamesRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.RequestEnrolledNamesRequest)
  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;

}

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

void RequestEnrolledNamesRequest::CopyFrom(const RequestEnrolledNamesRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.RequestEnrolledNamesRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

LoadedKnownFace::LoadedKnownFace(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.LoadedKnownFace)
}
LoadedKnownFace::LoadedKnownFace(const LoadedKnownFace& 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());
  }
  ::memcpy(&seconds_since_first_enrolled_, &from.seconds_since_first_enrolled_,
    static_cast<size_t>(reinterpret_cast<char*>(&face_id_) -
    reinterpret_cast<char*>(&seconds_since_first_enrolled_)) + sizeof(face_id_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.LoadedKnownFace)
}

void LoadedKnownFace::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_LoadedKnownFace_messages_2eproto.base);
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&seconds_since_first_enrolled_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&face_id_) -
      reinterpret_cast<char*>(&seconds_since_first_enrolled_)) + sizeof(face_id_));
}

LoadedKnownFace::~LoadedKnownFace() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.LoadedKnownFace)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void LoadedKnownFace::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.LoadedKnownFace)
  ::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());
  ::memset(&seconds_since_first_enrolled_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&face_id_) -
      reinterpret_cast<char*>(&seconds_since_first_enrolled_)) + sizeof(face_id_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* LoadedKnownFace::_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) {
      // int64 seconds_since_first_enrolled = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          seconds_since_first_enrolled_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int64 seconds_since_last_updated = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          seconds_since_last_updated_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int64 seconds_since_last_seen = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          seconds_since_last_seen_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int64 last_seen_seconds_since_epoch = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          last_seen_seconds_since_epoch_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 face_id = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          face_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string name = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          auto str = _internal_mutable_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.LoadedKnownFace.name"));
          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* LoadedKnownFace::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.LoadedKnownFace)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int64 seconds_since_first_enrolled = 1;
  if (this->seconds_since_first_enrolled() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(1, this->_internal_seconds_since_first_enrolled(), target);
  }

  // int64 seconds_since_last_updated = 2;
  if (this->seconds_since_last_updated() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_seconds_since_last_updated(), target);
  }

  // int64 seconds_since_last_seen = 3;
  if (this->seconds_since_last_seen() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_seconds_since_last_seen(), target);
  }

  // int64 last_seen_seconds_since_epoch = 4;
  if (this->last_seen_seconds_since_epoch() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(4, this->_internal_last_seen_seconds_since_epoch(), target);
  }

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

  // string name = 6;
  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,
      "Anki.Vector.external_interface.LoadedKnownFace.name");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_name(), 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:Anki.Vector.external_interface.LoadedKnownFace)
  return target;
}

size_t LoadedKnownFace::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.LoadedKnownFace)
  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 = 6;
  if (this->name().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

  // int64 seconds_since_first_enrolled = 1;
  if (this->seconds_since_first_enrolled() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
        this->_internal_seconds_since_first_enrolled());
  }

  // int64 seconds_since_last_updated = 2;
  if (this->seconds_since_last_updated() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
        this->_internal_seconds_since_last_updated());
  }

  // int64 seconds_since_last_seen = 3;
  if (this->seconds_since_last_seen() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
        this->_internal_seconds_since_last_seen());
  }

  // int64 last_seen_seconds_since_epoch = 4;
  if (this->last_seen_seconds_since_epoch() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
        this->_internal_last_seen_seconds_since_epoch());
  }

  // int32 face_id = 5;
  if (this->face_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_face_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 LoadedKnownFace::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.LoadedKnownFace)
  GOOGLE_DCHECK_NE(&from, this);
  const LoadedKnownFace* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LoadedKnownFace>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.LoadedKnownFace)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.LoadedKnownFace)
    MergeFrom(*source);
  }
}

void LoadedKnownFace::MergeFrom(const LoadedKnownFace& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.LoadedKnownFace)
  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.seconds_since_first_enrolled() != 0) {
    _internal_set_seconds_since_first_enrolled(from._internal_seconds_since_first_enrolled());
  }
  if (from.seconds_since_last_updated() != 0) {
    _internal_set_seconds_since_last_updated(from._internal_seconds_since_last_updated());
  }
  if (from.seconds_since_last_seen() != 0) {
    _internal_set_seconds_since_last_seen(from._internal_seconds_since_last_seen());
  }
  if (from.last_seen_seconds_since_epoch() != 0) {
    _internal_set_last_seen_seconds_since_epoch(from._internal_last_seen_seconds_since_epoch());
  }
  if (from.face_id() != 0) {
    _internal_set_face_id(from._internal_face_id());
  }
}

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

void LoadedKnownFace::CopyFrom(const LoadedKnownFace& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.LoadedKnownFace)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

RobotRenamedEnrolledFace::RobotRenamedEnrolledFace(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RobotRenamedEnrolledFace)
}
RobotRenamedEnrolledFace::RobotRenamedEnrolledFace(const RobotRenamedEnrolledFace& 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());
  }
  face_id_ = from.face_id_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RobotRenamedEnrolledFace)
}

void RobotRenamedEnrolledFace::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RobotRenamedEnrolledFace_messages_2eproto.base);
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  face_id_ = 0;
}

RobotRenamedEnrolledFace::~RobotRenamedEnrolledFace() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.RobotRenamedEnrolledFace)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void RobotRenamedEnrolledFace::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.RobotRenamedEnrolledFace)
  ::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());
  face_id_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RobotRenamedEnrolledFace::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 face_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          face_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&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, "Anki.Vector.external_interface.RobotRenamedEnrolledFace.name"));
          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* RobotRenamedEnrolledFace::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.RobotRenamedEnrolledFace)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 face_id = 1;
  if (this->face_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_face_id(), 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,
      "Anki.Vector.external_interface.RobotRenamedEnrolledFace.name");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_name(), 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:Anki.Vector.external_interface.RobotRenamedEnrolledFace)
  return target;
}

size_t RobotRenamedEnrolledFace::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RobotRenamedEnrolledFace)
  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());
  }

  // int32 face_id = 1;
  if (this->face_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_face_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 RobotRenamedEnrolledFace::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.RobotRenamedEnrolledFace)
  GOOGLE_DCHECK_NE(&from, this);
  const RobotRenamedEnrolledFace* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RobotRenamedEnrolledFace>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.RobotRenamedEnrolledFace)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.RobotRenamedEnrolledFace)
    MergeFrom(*source);
  }
}

void RobotRenamedEnrolledFace::MergeFrom(const RobotRenamedEnrolledFace& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.RobotRenamedEnrolledFace)
  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.face_id() != 0) {
    _internal_set_face_id(from._internal_face_id());
  }
}

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

void RobotRenamedEnrolledFace::CopyFrom(const RobotRenamedEnrolledFace& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.RobotRenamedEnrolledFace)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void RequestEnrolledNamesResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_RequestEnrolledNamesResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class RequestEnrolledNamesResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const RequestEnrolledNamesResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
RequestEnrolledNamesResponse::_Internal::status(const RequestEnrolledNamesResponse* msg) {
  return *msg->status_;
}
void RequestEnrolledNamesResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
RequestEnrolledNamesResponse::RequestEnrolledNamesResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  faces_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RequestEnrolledNamesResponse)
}
RequestEnrolledNamesResponse::RequestEnrolledNamesResponse(const RequestEnrolledNamesResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      faces_(from.faces_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RequestEnrolledNamesResponse)
}

void RequestEnrolledNamesResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RequestEnrolledNamesResponse_messages_2eproto.base);
  status_ = nullptr;
}

RequestEnrolledNamesResponse::~RequestEnrolledNamesResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.RequestEnrolledNamesResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void RequestEnrolledNamesResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

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


void RequestEnrolledNamesResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.RequestEnrolledNamesResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  faces_.Clear();
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RequestEnrolledNamesResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .Anki.Vector.external_interface.LoadedKnownFace faces = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_faces(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(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* RequestEnrolledNamesResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.RequestEnrolledNamesResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // repeated .Anki.Vector.external_interface.LoadedKnownFace faces = 2;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_faces_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, this->_internal_faces(i), target, stream);
  }

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

size_t RequestEnrolledNamesResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RequestEnrolledNamesResponse)
  size_t total_size = 0;

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

  // repeated .Anki.Vector.external_interface.LoadedKnownFace faces = 2;
  total_size += 1UL * this->_internal_faces_size();
  for (const auto& msg : this->faces_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

void RequestEnrolledNamesResponse::MergeFrom(const RequestEnrolledNamesResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.RequestEnrolledNamesResponse)
  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;

  faces_.MergeFrom(from.faces_);
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void RequestEnrolledNamesResponse::CopyFrom(const RequestEnrolledNamesResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.RequestEnrolledNamesResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

UpdateEnrolledFaceByIDRequest::UpdateEnrolledFaceByIDRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest)
}
UpdateEnrolledFaceByIDRequest::UpdateEnrolledFaceByIDRequest(const UpdateEnrolledFaceByIDRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  old_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_old_name().empty()) {
    old_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_old_name(),
      GetArena());
  }
  new_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_new_name().empty()) {
    new_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_new_name(),
      GetArena());
  }
  face_id_ = from.face_id_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest)
}

void UpdateEnrolledFaceByIDRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UpdateEnrolledFaceByIDRequest_messages_2eproto.base);
  old_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  new_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  face_id_ = 0;
}

UpdateEnrolledFaceByIDRequest::~UpdateEnrolledFaceByIDRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void UpdateEnrolledFaceByIDRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  old_name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  new_name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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


void UpdateEnrolledFaceByIDRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  old_name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  new_name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  face_id_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UpdateEnrolledFaceByIDRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 face_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          face_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string old_name = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_old_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.old_name"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string new_name = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_new_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.new_name"));
          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* UpdateEnrolledFaceByIDRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

  // string old_name = 2;
  if (this->old_name().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_old_name().data(), static_cast<int>(this->_internal_old_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.old_name");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_old_name(), target);
  }

  // string new_name = 3;
  if (this->new_name().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_new_name().data(), static_cast<int>(this->_internal_new_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest.new_name");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_new_name(), 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:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest)
  return target;
}

size_t UpdateEnrolledFaceByIDRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest)
  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 old_name = 2;
  if (this->old_name().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_old_name());
  }

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

  // int32 face_id = 1;
  if (this->face_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_face_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 UpdateEnrolledFaceByIDRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const UpdateEnrolledFaceByIDRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<UpdateEnrolledFaceByIDRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest)
    MergeFrom(*source);
  }
}

void UpdateEnrolledFaceByIDRequest::MergeFrom(const UpdateEnrolledFaceByIDRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest)
  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.old_name().size() > 0) {
    _internal_set_old_name(from._internal_old_name());
  }
  if (from.new_name().size() > 0) {
    _internal_set_new_name(from._internal_new_name());
  }
  if (from.face_id() != 0) {
    _internal_set_face_id(from._internal_face_id());
  }
}

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

void UpdateEnrolledFaceByIDRequest::CopyFrom(const UpdateEnrolledFaceByIDRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.UpdateEnrolledFaceByIDRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void UpdateEnrolledFaceByIDResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_UpdateEnrolledFaceByIDResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class UpdateEnrolledFaceByIDResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const UpdateEnrolledFaceByIDResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
UpdateEnrolledFaceByIDResponse::_Internal::status(const UpdateEnrolledFaceByIDResponse* msg) {
  return *msg->status_;
}
void UpdateEnrolledFaceByIDResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
UpdateEnrolledFaceByIDResponse::UpdateEnrolledFaceByIDResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UpdateEnrolledFaceByIDResponse)
}
UpdateEnrolledFaceByIDResponse::UpdateEnrolledFaceByIDResponse(const UpdateEnrolledFaceByIDResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UpdateEnrolledFaceByIDResponse)
}

void UpdateEnrolledFaceByIDResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UpdateEnrolledFaceByIDResponse_messages_2eproto.base);
  status_ = nullptr;
}

UpdateEnrolledFaceByIDResponse::~UpdateEnrolledFaceByIDResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.UpdateEnrolledFaceByIDResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void UpdateEnrolledFaceByIDResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

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


void UpdateEnrolledFaceByIDResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.UpdateEnrolledFaceByIDResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UpdateEnrolledFaceByIDResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* UpdateEnrolledFaceByIDResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.UpdateEnrolledFaceByIDResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t UpdateEnrolledFaceByIDResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.UpdateEnrolledFaceByIDResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void UpdateEnrolledFaceByIDResponse::CopyFrom(const UpdateEnrolledFaceByIDResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.UpdateEnrolledFaceByIDResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

EraseEnrolledFaceByIDRequest::EraseEnrolledFaceByIDRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EraseEnrolledFaceByIDRequest)
}
EraseEnrolledFaceByIDRequest::EraseEnrolledFaceByIDRequest(const EraseEnrolledFaceByIDRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  face_id_ = from.face_id_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EraseEnrolledFaceByIDRequest)
}

void EraseEnrolledFaceByIDRequest::SharedCtor() {
  face_id_ = 0;
}

EraseEnrolledFaceByIDRequest::~EraseEnrolledFaceByIDRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EraseEnrolledFaceByIDRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void EraseEnrolledFaceByIDRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EraseEnrolledFaceByIDRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* EraseEnrolledFaceByIDRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 face_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          face_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // int32 face_id = 1;
  if (this->face_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_face_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:Anki.Vector.external_interface.EraseEnrolledFaceByIDRequest)
  return target;
}

size_t EraseEnrolledFaceByIDRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EraseEnrolledFaceByIDRequest)
  size_t total_size = 0;

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

  // int32 face_id = 1;
  if (this->face_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_face_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 EraseEnrolledFaceByIDRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.EraseEnrolledFaceByIDRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const EraseEnrolledFaceByIDRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EraseEnrolledFaceByIDRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.EraseEnrolledFaceByIDRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.EraseEnrolledFaceByIDRequest)
    MergeFrom(*source);
  }
}

void EraseEnrolledFaceByIDRequest::MergeFrom(const EraseEnrolledFaceByIDRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.EraseEnrolledFaceByIDRequest)
  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.face_id() != 0) {
    _internal_set_face_id(from._internal_face_id());
  }
}

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

void EraseEnrolledFaceByIDRequest::CopyFrom(const EraseEnrolledFaceByIDRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EraseEnrolledFaceByIDRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void EraseEnrolledFaceByIDResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_EraseEnrolledFaceByIDResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class EraseEnrolledFaceByIDResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const EraseEnrolledFaceByIDResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
EraseEnrolledFaceByIDResponse::_Internal::status(const EraseEnrolledFaceByIDResponse* msg) {
  return *msg->status_;
}
void EraseEnrolledFaceByIDResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
EraseEnrolledFaceByIDResponse::EraseEnrolledFaceByIDResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EraseEnrolledFaceByIDResponse)
}
EraseEnrolledFaceByIDResponse::EraseEnrolledFaceByIDResponse(const EraseEnrolledFaceByIDResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EraseEnrolledFaceByIDResponse)
}

void EraseEnrolledFaceByIDResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EraseEnrolledFaceByIDResponse_messages_2eproto.base);
  status_ = nullptr;
}

EraseEnrolledFaceByIDResponse::~EraseEnrolledFaceByIDResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EraseEnrolledFaceByIDResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void EraseEnrolledFaceByIDResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

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


void EraseEnrolledFaceByIDResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EraseEnrolledFaceByIDResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* EraseEnrolledFaceByIDResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* EraseEnrolledFaceByIDResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.EraseEnrolledFaceByIDResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t EraseEnrolledFaceByIDResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EraseEnrolledFaceByIDResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void EraseEnrolledFaceByIDResponse::CopyFrom(const EraseEnrolledFaceByIDResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EraseEnrolledFaceByIDResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

EraseAllEnrolledFacesRequest::EraseAllEnrolledFacesRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EraseAllEnrolledFacesRequest)
}
EraseAllEnrolledFacesRequest::EraseAllEnrolledFacesRequest(const EraseAllEnrolledFacesRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EraseAllEnrolledFacesRequest)
}

void EraseAllEnrolledFacesRequest::SharedCtor() {
}

EraseAllEnrolledFacesRequest::~EraseAllEnrolledFacesRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EraseAllEnrolledFacesRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void EraseAllEnrolledFacesRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EraseAllEnrolledFacesRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* EraseAllEnrolledFacesRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  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:Anki.Vector.external_interface.EraseAllEnrolledFacesRequest)
  return target;
}

size_t EraseAllEnrolledFacesRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EraseAllEnrolledFacesRequest)
  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;

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

void EraseAllEnrolledFacesRequest::MergeFrom(const EraseAllEnrolledFacesRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.EraseAllEnrolledFacesRequest)
  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;

}

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

void EraseAllEnrolledFacesRequest::CopyFrom(const EraseAllEnrolledFacesRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EraseAllEnrolledFacesRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void EraseAllEnrolledFacesResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_EraseAllEnrolledFacesResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class EraseAllEnrolledFacesResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const EraseAllEnrolledFacesResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
EraseAllEnrolledFacesResponse::_Internal::status(const EraseAllEnrolledFacesResponse* msg) {
  return *msg->status_;
}
void EraseAllEnrolledFacesResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
EraseAllEnrolledFacesResponse::EraseAllEnrolledFacesResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EraseAllEnrolledFacesResponse)
}
EraseAllEnrolledFacesResponse::EraseAllEnrolledFacesResponse(const EraseAllEnrolledFacesResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EraseAllEnrolledFacesResponse)
}

void EraseAllEnrolledFacesResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EraseAllEnrolledFacesResponse_messages_2eproto.base);
  status_ = nullptr;
}

EraseAllEnrolledFacesResponse::~EraseAllEnrolledFacesResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EraseAllEnrolledFacesResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void EraseAllEnrolledFacesResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

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


void EraseAllEnrolledFacesResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EraseAllEnrolledFacesResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* EraseAllEnrolledFacesResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* EraseAllEnrolledFacesResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.EraseAllEnrolledFacesResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t EraseAllEnrolledFacesResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EraseAllEnrolledFacesResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void EraseAllEnrolledFacesResponse::CopyFrom(const EraseAllEnrolledFacesResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EraseAllEnrolledFacesResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

SetFaceToEnrollRequest::SetFaceToEnrollRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SetFaceToEnrollRequest)
}
SetFaceToEnrollRequest::SetFaceToEnrollRequest(const SetFaceToEnrollRequest& 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());
  }
  ::memcpy(&observed_id_, &from.observed_id_,
    static_cast<size_t>(reinterpret_cast<char*>(&use_music_) -
    reinterpret_cast<char*>(&observed_id_)) + sizeof(use_music_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SetFaceToEnrollRequest)
}

void SetFaceToEnrollRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SetFaceToEnrollRequest_messages_2eproto.base);
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&observed_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&use_music_) -
      reinterpret_cast<char*>(&observed_id_)) + sizeof(use_music_));
}

SetFaceToEnrollRequest::~SetFaceToEnrollRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SetFaceToEnrollRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void SetFaceToEnrollRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SetFaceToEnrollRequest)
  ::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());
  ::memset(&observed_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&use_music_) -
      reinterpret_cast<char*>(&observed_id_)) + sizeof(use_music_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SetFaceToEnrollRequest::_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, "Anki.Vector.external_interface.SetFaceToEnrollRequest.name"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 observed_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          observed_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 save_id = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          save_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool save_to_robot = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          save_to_robot_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool say_name = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          say_name_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool use_music = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          use_music_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* SetFaceToEnrollRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.SetFaceToEnrollRequest)
  ::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,
      "Anki.Vector.external_interface.SetFaceToEnrollRequest.name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_name(), target);
  }

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

  // int32 save_id = 3;
  if (this->save_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_save_id(), target);
  }

  // bool save_to_robot = 4;
  if (this->save_to_robot() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_save_to_robot(), target);
  }

  // bool say_name = 5;
  if (this->say_name() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_say_name(), target);
  }

  // bool use_music = 6;
  if (this->use_music() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_use_music(), 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:Anki.Vector.external_interface.SetFaceToEnrollRequest)
  return target;
}

size_t SetFaceToEnrollRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SetFaceToEnrollRequest)
  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());
  }

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

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

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

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

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

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

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

void SetFaceToEnrollRequest::MergeFrom(const SetFaceToEnrollRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.SetFaceToEnrollRequest)
  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.observed_id() != 0) {
    _internal_set_observed_id(from._internal_observed_id());
  }
  if (from.save_id() != 0) {
    _internal_set_save_id(from._internal_save_id());
  }
  if (from.save_to_robot() != 0) {
    _internal_set_save_to_robot(from._internal_save_to_robot());
  }
  if (from.say_name() != 0) {
    _internal_set_say_name(from._internal_say_name());
  }
  if (from.use_music() != 0) {
    _internal_set_use_music(from._internal_use_music());
  }
}

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

void SetFaceToEnrollRequest::CopyFrom(const SetFaceToEnrollRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SetFaceToEnrollRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void SetFaceToEnrollResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_SetFaceToEnrollResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class SetFaceToEnrollResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const SetFaceToEnrollResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
SetFaceToEnrollResponse::_Internal::status(const SetFaceToEnrollResponse* msg) {
  return *msg->status_;
}
void SetFaceToEnrollResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
SetFaceToEnrollResponse::SetFaceToEnrollResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SetFaceToEnrollResponse)
}
SetFaceToEnrollResponse::SetFaceToEnrollResponse(const SetFaceToEnrollResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SetFaceToEnrollResponse)
}

void SetFaceToEnrollResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SetFaceToEnrollResponse_messages_2eproto.base);
  status_ = nullptr;
}

SetFaceToEnrollResponse::~SetFaceToEnrollResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SetFaceToEnrollResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SetFaceToEnrollResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

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


void SetFaceToEnrollResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SetFaceToEnrollResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SetFaceToEnrollResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* SetFaceToEnrollResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.SetFaceToEnrollResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t SetFaceToEnrollResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SetFaceToEnrollResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void SetFaceToEnrollResponse::CopyFrom(const SetFaceToEnrollResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SetFaceToEnrollResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SetFaceToEnrollResponse::InternalSwap(SetFaceToEnrollResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SetFaceToEnrollResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void EnrollFaceRequest::InitAsDefaultInstance() {
}
class EnrollFaceRequest::_Internal {
 public:
};

EnrollFaceRequest::EnrollFaceRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EnrollFaceRequest)
}
EnrollFaceRequest::EnrollFaceRequest(const EnrollFaceRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EnrollFaceRequest)
}

void EnrollFaceRequest::SharedCtor() {
}

EnrollFaceRequest::~EnrollFaceRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EnrollFaceRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void EnrollFaceRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void EnrollFaceRequest::ArenaDtor(void* object) {
  EnrollFaceRequest* _this = reinterpret_cast< EnrollFaceRequest* >(object);
  (void)_this;
}
void EnrollFaceRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void EnrollFaceRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const EnrollFaceRequest& EnrollFaceRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EnrollFaceRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void EnrollFaceRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EnrollFaceRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* EnrollFaceRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* EnrollFaceRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.EnrollFaceRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.EnrollFaceRequest)
  return target;
}

size_t EnrollFaceRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EnrollFaceRequest)
  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;

  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 EnrollFaceRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.EnrollFaceRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const EnrollFaceRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EnrollFaceRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.EnrollFaceRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.EnrollFaceRequest)
    MergeFrom(*source);
  }
}

void EnrollFaceRequest::MergeFrom(const EnrollFaceRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.EnrollFaceRequest)
  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;

}

void EnrollFaceRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.EnrollFaceRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnrollFaceRequest::CopyFrom(const EnrollFaceRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EnrollFaceRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnrollFaceRequest::IsInitialized() const {
  return true;
}

void EnrollFaceRequest::InternalSwap(EnrollFaceRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata EnrollFaceRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void EnrollFaceResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_EnrollFaceResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class EnrollFaceResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const EnrollFaceResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
EnrollFaceResponse::_Internal::status(const EnrollFaceResponse* msg) {
  return *msg->status_;
}
void EnrollFaceResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
EnrollFaceResponse::EnrollFaceResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EnrollFaceResponse)
}
EnrollFaceResponse::EnrollFaceResponse(const EnrollFaceResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  result_ = from.result_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EnrollFaceResponse)
}

void EnrollFaceResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EnrollFaceResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

EnrollFaceResponse::~EnrollFaceResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EnrollFaceResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void EnrollFaceResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void EnrollFaceResponse::ArenaDtor(void* object) {
  EnrollFaceResponse* _this = reinterpret_cast< EnrollFaceResponse* >(object);
  (void)_this;
}
void EnrollFaceResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void EnrollFaceResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const EnrollFaceResponse& EnrollFaceResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EnrollFaceResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void EnrollFaceResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EnrollFaceResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  result_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* EnrollFaceResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.BehaviorResults result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_result(static_cast<::Anki::Vector::external_interface::BehaviorResults>(val));
        } 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* EnrollFaceResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.EnrollFaceResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.BehaviorResults result = 2;
  if (this->result() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_result(), 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:Anki.Vector.external_interface.EnrollFaceResponse)
  return target;
}

size_t EnrollFaceResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EnrollFaceResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.BehaviorResults result = 2;
  if (this->result() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_result());
  }

  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 EnrollFaceResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.EnrollFaceResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const EnrollFaceResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EnrollFaceResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.EnrollFaceResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.EnrollFaceResponse)
    MergeFrom(*source);
  }
}

void EnrollFaceResponse::MergeFrom(const EnrollFaceResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.EnrollFaceResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.result() != 0) {
    _internal_set_result(from._internal_result());
  }
}

void EnrollFaceResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.EnrollFaceResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnrollFaceResponse::CopyFrom(const EnrollFaceResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EnrollFaceResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnrollFaceResponse::IsInitialized() const {
  return true;
}

void EnrollFaceResponse::InternalSwap(EnrollFaceResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(EnrollFaceResponse, result_)
      + sizeof(EnrollFaceResponse::result_)
      - PROTOBUF_FIELD_OFFSET(EnrollFaceResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata EnrollFaceResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void DriveOffChargerRequest::InitAsDefaultInstance() {
}
class DriveOffChargerRequest::_Internal {
 public:
};

DriveOffChargerRequest::DriveOffChargerRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DriveOffChargerRequest)
}
DriveOffChargerRequest::DriveOffChargerRequest(const DriveOffChargerRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DriveOffChargerRequest)
}

void DriveOffChargerRequest::SharedCtor() {
}

DriveOffChargerRequest::~DriveOffChargerRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DriveOffChargerRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void DriveOffChargerRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void DriveOffChargerRequest::ArenaDtor(void* object) {
  DriveOffChargerRequest* _this = reinterpret_cast< DriveOffChargerRequest* >(object);
  (void)_this;
}
void DriveOffChargerRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void DriveOffChargerRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const DriveOffChargerRequest& DriveOffChargerRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DriveOffChargerRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void DriveOffChargerRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DriveOffChargerRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DriveOffChargerRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* DriveOffChargerRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.DriveOffChargerRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.DriveOffChargerRequest)
  return target;
}

size_t DriveOffChargerRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DriveOffChargerRequest)
  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;

  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 DriveOffChargerRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.DriveOffChargerRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const DriveOffChargerRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DriveOffChargerRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.DriveOffChargerRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.DriveOffChargerRequest)
    MergeFrom(*source);
  }
}

void DriveOffChargerRequest::MergeFrom(const DriveOffChargerRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.DriveOffChargerRequest)
  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;

}

void DriveOffChargerRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.DriveOffChargerRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DriveOffChargerRequest::CopyFrom(const DriveOffChargerRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DriveOffChargerRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DriveOffChargerRequest::IsInitialized() const {
  return true;
}

void DriveOffChargerRequest::InternalSwap(DriveOffChargerRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata DriveOffChargerRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void DriveOffChargerResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_DriveOffChargerResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class DriveOffChargerResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const DriveOffChargerResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
DriveOffChargerResponse::_Internal::status(const DriveOffChargerResponse* msg) {
  return *msg->status_;
}
void DriveOffChargerResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
DriveOffChargerResponse::DriveOffChargerResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DriveOffChargerResponse)
}
DriveOffChargerResponse::DriveOffChargerResponse(const DriveOffChargerResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  result_ = from.result_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DriveOffChargerResponse)
}

void DriveOffChargerResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DriveOffChargerResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

DriveOffChargerResponse::~DriveOffChargerResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DriveOffChargerResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void DriveOffChargerResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void DriveOffChargerResponse::ArenaDtor(void* object) {
  DriveOffChargerResponse* _this = reinterpret_cast< DriveOffChargerResponse* >(object);
  (void)_this;
}
void DriveOffChargerResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void DriveOffChargerResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const DriveOffChargerResponse& DriveOffChargerResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DriveOffChargerResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void DriveOffChargerResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DriveOffChargerResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  result_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DriveOffChargerResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.BehaviorResults result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_result(static_cast<::Anki::Vector::external_interface::BehaviorResults>(val));
        } 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* DriveOffChargerResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.DriveOffChargerResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.BehaviorResults result = 2;
  if (this->result() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_result(), 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:Anki.Vector.external_interface.DriveOffChargerResponse)
  return target;
}

size_t DriveOffChargerResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DriveOffChargerResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.BehaviorResults result = 2;
  if (this->result() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_result());
  }

  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 DriveOffChargerResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.DriveOffChargerResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const DriveOffChargerResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DriveOffChargerResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.DriveOffChargerResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.DriveOffChargerResponse)
    MergeFrom(*source);
  }
}

void DriveOffChargerResponse::MergeFrom(const DriveOffChargerResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.DriveOffChargerResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.result() != 0) {
    _internal_set_result(from._internal_result());
  }
}

void DriveOffChargerResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.DriveOffChargerResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DriveOffChargerResponse::CopyFrom(const DriveOffChargerResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DriveOffChargerResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DriveOffChargerResponse::IsInitialized() const {
  return true;
}

void DriveOffChargerResponse::InternalSwap(DriveOffChargerResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(DriveOffChargerResponse, result_)
      + sizeof(DriveOffChargerResponse::result_)
      - PROTOBUF_FIELD_OFFSET(DriveOffChargerResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata DriveOffChargerResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void DriveOnChargerRequest::InitAsDefaultInstance() {
}
class DriveOnChargerRequest::_Internal {
 public:
};

DriveOnChargerRequest::DriveOnChargerRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DriveOnChargerRequest)
}
DriveOnChargerRequest::DriveOnChargerRequest(const DriveOnChargerRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DriveOnChargerRequest)
}

void DriveOnChargerRequest::SharedCtor() {
}

DriveOnChargerRequest::~DriveOnChargerRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DriveOnChargerRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void DriveOnChargerRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void DriveOnChargerRequest::ArenaDtor(void* object) {
  DriveOnChargerRequest* _this = reinterpret_cast< DriveOnChargerRequest* >(object);
  (void)_this;
}
void DriveOnChargerRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void DriveOnChargerRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const DriveOnChargerRequest& DriveOnChargerRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DriveOnChargerRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void DriveOnChargerRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DriveOnChargerRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DriveOnChargerRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* DriveOnChargerRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.DriveOnChargerRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.DriveOnChargerRequest)
  return target;
}

size_t DriveOnChargerRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DriveOnChargerRequest)
  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;

  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 DriveOnChargerRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.DriveOnChargerRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const DriveOnChargerRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DriveOnChargerRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.DriveOnChargerRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.DriveOnChargerRequest)
    MergeFrom(*source);
  }
}

void DriveOnChargerRequest::MergeFrom(const DriveOnChargerRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.DriveOnChargerRequest)
  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;

}

void DriveOnChargerRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.DriveOnChargerRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DriveOnChargerRequest::CopyFrom(const DriveOnChargerRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DriveOnChargerRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DriveOnChargerRequest::IsInitialized() const {
  return true;
}

void DriveOnChargerRequest::InternalSwap(DriveOnChargerRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata DriveOnChargerRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void DriveOnChargerResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_DriveOnChargerResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class DriveOnChargerResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const DriveOnChargerResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
DriveOnChargerResponse::_Internal::status(const DriveOnChargerResponse* msg) {
  return *msg->status_;
}
void DriveOnChargerResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
DriveOnChargerResponse::DriveOnChargerResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DriveOnChargerResponse)
}
DriveOnChargerResponse::DriveOnChargerResponse(const DriveOnChargerResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  result_ = from.result_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DriveOnChargerResponse)
}

void DriveOnChargerResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DriveOnChargerResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

DriveOnChargerResponse::~DriveOnChargerResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DriveOnChargerResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void DriveOnChargerResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void DriveOnChargerResponse::ArenaDtor(void* object) {
  DriveOnChargerResponse* _this = reinterpret_cast< DriveOnChargerResponse* >(object);
  (void)_this;
}
void DriveOnChargerResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void DriveOnChargerResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const DriveOnChargerResponse& DriveOnChargerResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DriveOnChargerResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void DriveOnChargerResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DriveOnChargerResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  result_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DriveOnChargerResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.BehaviorResults result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_result(static_cast<::Anki::Vector::external_interface::BehaviorResults>(val));
        } 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* DriveOnChargerResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.DriveOnChargerResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.BehaviorResults result = 2;
  if (this->result() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_result(), 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:Anki.Vector.external_interface.DriveOnChargerResponse)
  return target;
}

size_t DriveOnChargerResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DriveOnChargerResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.BehaviorResults result = 2;
  if (this->result() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_result());
  }

  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 DriveOnChargerResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.DriveOnChargerResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const DriveOnChargerResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DriveOnChargerResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.DriveOnChargerResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.DriveOnChargerResponse)
    MergeFrom(*source);
  }
}

void DriveOnChargerResponse::MergeFrom(const DriveOnChargerResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.DriveOnChargerResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.result() != 0) {
    _internal_set_result(from._internal_result());
  }
}

void DriveOnChargerResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.DriveOnChargerResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DriveOnChargerResponse::CopyFrom(const DriveOnChargerResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DriveOnChargerResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DriveOnChargerResponse::IsInitialized() const {
  return true;
}

void DriveOnChargerResponse::InternalSwap(DriveOnChargerResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(DriveOnChargerResponse, result_)
      + sizeof(DriveOnChargerResponse::result_)
      - PROTOBUF_FIELD_OFFSET(DriveOnChargerResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata DriveOnChargerResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void FindFacesRequest::InitAsDefaultInstance() {
}
class FindFacesRequest::_Internal {
 public:
};

FindFacesRequest::FindFacesRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.FindFacesRequest)
}
FindFacesRequest::FindFacesRequest(const FindFacesRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.FindFacesRequest)
}

void FindFacesRequest::SharedCtor() {
}

FindFacesRequest::~FindFacesRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.FindFacesRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void FindFacesRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void FindFacesRequest::ArenaDtor(void* object) {
  FindFacesRequest* _this = reinterpret_cast< FindFacesRequest* >(object);
  (void)_this;
}
void FindFacesRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void FindFacesRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const FindFacesRequest& FindFacesRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_FindFacesRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void FindFacesRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.FindFacesRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FindFacesRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* FindFacesRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.FindFacesRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.FindFacesRequest)
  return target;
}

size_t FindFacesRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.FindFacesRequest)
  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;

  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 FindFacesRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.FindFacesRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const FindFacesRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<FindFacesRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.FindFacesRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.FindFacesRequest)
    MergeFrom(*source);
  }
}

void FindFacesRequest::MergeFrom(const FindFacesRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.FindFacesRequest)
  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;

}

void FindFacesRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.FindFacesRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void FindFacesRequest::CopyFrom(const FindFacesRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.FindFacesRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FindFacesRequest::IsInitialized() const {
  return true;
}

void FindFacesRequest::InternalSwap(FindFacesRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata FindFacesRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void FindFacesResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_FindFacesResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class FindFacesResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const FindFacesResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
FindFacesResponse::_Internal::status(const FindFacesResponse* msg) {
  return *msg->status_;
}
void FindFacesResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
FindFacesResponse::FindFacesResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.FindFacesResponse)
}
FindFacesResponse::FindFacesResponse(const FindFacesResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  result_ = from.result_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.FindFacesResponse)
}

void FindFacesResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_FindFacesResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

FindFacesResponse::~FindFacesResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.FindFacesResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void FindFacesResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void FindFacesResponse::ArenaDtor(void* object) {
  FindFacesResponse* _this = reinterpret_cast< FindFacesResponse* >(object);
  (void)_this;
}
void FindFacesResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void FindFacesResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const FindFacesResponse& FindFacesResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_FindFacesResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void FindFacesResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.FindFacesResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  result_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FindFacesResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.BehaviorResults result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_result(static_cast<::Anki::Vector::external_interface::BehaviorResults>(val));
        } 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* FindFacesResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.FindFacesResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.BehaviorResults result = 2;
  if (this->result() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_result(), 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:Anki.Vector.external_interface.FindFacesResponse)
  return target;
}

size_t FindFacesResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.FindFacesResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.BehaviorResults result = 2;
  if (this->result() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_result());
  }

  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 FindFacesResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.FindFacesResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const FindFacesResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<FindFacesResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.FindFacesResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.FindFacesResponse)
    MergeFrom(*source);
  }
}

void FindFacesResponse::MergeFrom(const FindFacesResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.FindFacesResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.result() != 0) {
    _internal_set_result(from._internal_result());
  }
}

void FindFacesResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.FindFacesResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void FindFacesResponse::CopyFrom(const FindFacesResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.FindFacesResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FindFacesResponse::IsInitialized() const {
  return true;
}

void FindFacesResponse::InternalSwap(FindFacesResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(FindFacesResponse, result_)
      + sizeof(FindFacesResponse::result_)
      - PROTOBUF_FIELD_OFFSET(FindFacesResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata FindFacesResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void LookAroundInPlaceRequest::InitAsDefaultInstance() {
}
class LookAroundInPlaceRequest::_Internal {
 public:
};

LookAroundInPlaceRequest::LookAroundInPlaceRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.LookAroundInPlaceRequest)
}
LookAroundInPlaceRequest::LookAroundInPlaceRequest(const LookAroundInPlaceRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.LookAroundInPlaceRequest)
}

void LookAroundInPlaceRequest::SharedCtor() {
}

LookAroundInPlaceRequest::~LookAroundInPlaceRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.LookAroundInPlaceRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void LookAroundInPlaceRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void LookAroundInPlaceRequest::ArenaDtor(void* object) {
  LookAroundInPlaceRequest* _this = reinterpret_cast< LookAroundInPlaceRequest* >(object);
  (void)_this;
}
void LookAroundInPlaceRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LookAroundInPlaceRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const LookAroundInPlaceRequest& LookAroundInPlaceRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LookAroundInPlaceRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void LookAroundInPlaceRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.LookAroundInPlaceRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* LookAroundInPlaceRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* LookAroundInPlaceRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.LookAroundInPlaceRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.LookAroundInPlaceRequest)
  return target;
}

size_t LookAroundInPlaceRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.LookAroundInPlaceRequest)
  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;

  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 LookAroundInPlaceRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.LookAroundInPlaceRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const LookAroundInPlaceRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LookAroundInPlaceRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.LookAroundInPlaceRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.LookAroundInPlaceRequest)
    MergeFrom(*source);
  }
}

void LookAroundInPlaceRequest::MergeFrom(const LookAroundInPlaceRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.LookAroundInPlaceRequest)
  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;

}

void LookAroundInPlaceRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.LookAroundInPlaceRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void LookAroundInPlaceRequest::CopyFrom(const LookAroundInPlaceRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.LookAroundInPlaceRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool LookAroundInPlaceRequest::IsInitialized() const {
  return true;
}

void LookAroundInPlaceRequest::InternalSwap(LookAroundInPlaceRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata LookAroundInPlaceRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void LookAroundInPlaceResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_LookAroundInPlaceResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class LookAroundInPlaceResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const LookAroundInPlaceResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
LookAroundInPlaceResponse::_Internal::status(const LookAroundInPlaceResponse* msg) {
  return *msg->status_;
}
void LookAroundInPlaceResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
LookAroundInPlaceResponse::LookAroundInPlaceResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.LookAroundInPlaceResponse)
}
LookAroundInPlaceResponse::LookAroundInPlaceResponse(const LookAroundInPlaceResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  result_ = from.result_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.LookAroundInPlaceResponse)
}

void LookAroundInPlaceResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_LookAroundInPlaceResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

LookAroundInPlaceResponse::~LookAroundInPlaceResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.LookAroundInPlaceResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void LookAroundInPlaceResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void LookAroundInPlaceResponse::ArenaDtor(void* object) {
  LookAroundInPlaceResponse* _this = reinterpret_cast< LookAroundInPlaceResponse* >(object);
  (void)_this;
}
void LookAroundInPlaceResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LookAroundInPlaceResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const LookAroundInPlaceResponse& LookAroundInPlaceResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LookAroundInPlaceResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void LookAroundInPlaceResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.LookAroundInPlaceResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  result_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* LookAroundInPlaceResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.BehaviorResults result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_result(static_cast<::Anki::Vector::external_interface::BehaviorResults>(val));
        } 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* LookAroundInPlaceResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.LookAroundInPlaceResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.BehaviorResults result = 2;
  if (this->result() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_result(), 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:Anki.Vector.external_interface.LookAroundInPlaceResponse)
  return target;
}

size_t LookAroundInPlaceResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.LookAroundInPlaceResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.BehaviorResults result = 2;
  if (this->result() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_result());
  }

  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 LookAroundInPlaceResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.LookAroundInPlaceResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const LookAroundInPlaceResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LookAroundInPlaceResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.LookAroundInPlaceResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.LookAroundInPlaceResponse)
    MergeFrom(*source);
  }
}

void LookAroundInPlaceResponse::MergeFrom(const LookAroundInPlaceResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.LookAroundInPlaceResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.result() != 0) {
    _internal_set_result(from._internal_result());
  }
}

void LookAroundInPlaceResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.LookAroundInPlaceResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void LookAroundInPlaceResponse::CopyFrom(const LookAroundInPlaceResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.LookAroundInPlaceResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool LookAroundInPlaceResponse::IsInitialized() const {
  return true;
}

void LookAroundInPlaceResponse::InternalSwap(LookAroundInPlaceResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LookAroundInPlaceResponse, result_)
      + sizeof(LookAroundInPlaceResponse::result_)
      - PROTOBUF_FIELD_OFFSET(LookAroundInPlaceResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata LookAroundInPlaceResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void RollBlockRequest::InitAsDefaultInstance() {
}
class RollBlockRequest::_Internal {
 public:
};

RollBlockRequest::RollBlockRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RollBlockRequest)
}
RollBlockRequest::RollBlockRequest(const RollBlockRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RollBlockRequest)
}

void RollBlockRequest::SharedCtor() {
}

RollBlockRequest::~RollBlockRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.RollBlockRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void RollBlockRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void RollBlockRequest::ArenaDtor(void* object) {
  RollBlockRequest* _this = reinterpret_cast< RollBlockRequest* >(object);
  (void)_this;
}
void RollBlockRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void RollBlockRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const RollBlockRequest& RollBlockRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RollBlockRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void RollBlockRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.RollBlockRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RollBlockRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* RollBlockRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.RollBlockRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.RollBlockRequest)
  return target;
}

size_t RollBlockRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RollBlockRequest)
  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;

  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 RollBlockRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.RollBlockRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const RollBlockRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RollBlockRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.RollBlockRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.RollBlockRequest)
    MergeFrom(*source);
  }
}

void RollBlockRequest::MergeFrom(const RollBlockRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.RollBlockRequest)
  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;

}

void RollBlockRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.RollBlockRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void RollBlockRequest::CopyFrom(const RollBlockRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.RollBlockRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RollBlockRequest::IsInitialized() const {
  return true;
}

void RollBlockRequest::InternalSwap(RollBlockRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RollBlockRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void RollBlockResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_RollBlockResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class RollBlockResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const RollBlockResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
RollBlockResponse::_Internal::status(const RollBlockResponse* msg) {
  return *msg->status_;
}
void RollBlockResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
RollBlockResponse::RollBlockResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RollBlockResponse)
}
RollBlockResponse::RollBlockResponse(const RollBlockResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  result_ = from.result_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RollBlockResponse)
}

void RollBlockResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RollBlockResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

RollBlockResponse::~RollBlockResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.RollBlockResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void RollBlockResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void RollBlockResponse::ArenaDtor(void* object) {
  RollBlockResponse* _this = reinterpret_cast< RollBlockResponse* >(object);
  (void)_this;
}
void RollBlockResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void RollBlockResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const RollBlockResponse& RollBlockResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RollBlockResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void RollBlockResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.RollBlockResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  result_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RollBlockResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.BehaviorResults result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_result(static_cast<::Anki::Vector::external_interface::BehaviorResults>(val));
        } 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* RollBlockResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.RollBlockResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.BehaviorResults result = 2;
  if (this->result() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_result(), 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:Anki.Vector.external_interface.RollBlockResponse)
  return target;
}

size_t RollBlockResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RollBlockResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.BehaviorResults result = 2;
  if (this->result() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_result());
  }

  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 RollBlockResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.RollBlockResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const RollBlockResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RollBlockResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.RollBlockResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.RollBlockResponse)
    MergeFrom(*source);
  }
}

void RollBlockResponse::MergeFrom(const RollBlockResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.RollBlockResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.result() != 0) {
    _internal_set_result(from._internal_result());
  }
}

void RollBlockResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.RollBlockResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void RollBlockResponse::CopyFrom(const RollBlockResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.RollBlockResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RollBlockResponse::IsInitialized() const {
  return true;
}

void RollBlockResponse::InternalSwap(RollBlockResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RollBlockResponse, result_)
      + sizeof(RollBlockResponse::result_)
      - PROTOBUF_FIELD_OFFSET(RollBlockResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata RollBlockResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void WakeWordBegin::InitAsDefaultInstance() {
}
class WakeWordBegin::_Internal {
 public:
};

WakeWordBegin::WakeWordBegin(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.WakeWordBegin)
}
WakeWordBegin::WakeWordBegin(const WakeWordBegin& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.WakeWordBegin)
}

void WakeWordBegin::SharedCtor() {
}

WakeWordBegin::~WakeWordBegin() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.WakeWordBegin)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void WakeWordBegin::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void WakeWordBegin::ArenaDtor(void* object) {
  WakeWordBegin* _this = reinterpret_cast< WakeWordBegin* >(object);
  (void)_this;
}
void WakeWordBegin::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void WakeWordBegin::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const WakeWordBegin& WakeWordBegin::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_WakeWordBegin_messages_2eproto.base);
  return *internal_default_instance();
}


void WakeWordBegin::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.WakeWordBegin)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WakeWordBegin::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* WakeWordBegin::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.WakeWordBegin)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.WakeWordBegin)
  return target;
}

size_t WakeWordBegin::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.WakeWordBegin)
  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;

  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 WakeWordBegin::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.WakeWordBegin)
  GOOGLE_DCHECK_NE(&from, this);
  const WakeWordBegin* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<WakeWordBegin>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.WakeWordBegin)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.WakeWordBegin)
    MergeFrom(*source);
  }
}

void WakeWordBegin::MergeFrom(const WakeWordBegin& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.WakeWordBegin)
  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;

}

void WakeWordBegin::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.WakeWordBegin)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void WakeWordBegin::CopyFrom(const WakeWordBegin& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.WakeWordBegin)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WakeWordBegin::IsInitialized() const {
  return true;
}

void WakeWordBegin::InternalSwap(WakeWordBegin* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata WakeWordBegin::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void WakeWordEnd::InitAsDefaultInstance() {
}
class WakeWordEnd::_Internal {
 public:
};

WakeWordEnd::WakeWordEnd(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.WakeWordEnd)
}
WakeWordEnd::WakeWordEnd(const WakeWordEnd& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  intent_json_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_intent_json().empty()) {
    intent_json_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_intent_json(),
      GetArena());
  }
  intent_heard_ = from.intent_heard_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.WakeWordEnd)
}

void WakeWordEnd::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_WakeWordEnd_messages_2eproto.base);
  intent_json_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  intent_heard_ = false;
}

WakeWordEnd::~WakeWordEnd() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.WakeWordEnd)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void WakeWordEnd::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  intent_json_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void WakeWordEnd::ArenaDtor(void* object) {
  WakeWordEnd* _this = reinterpret_cast< WakeWordEnd* >(object);
  (void)_this;
}
void WakeWordEnd::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void WakeWordEnd::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const WakeWordEnd& WakeWordEnd::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_WakeWordEnd_messages_2eproto.base);
  return *internal_default_instance();
}


void WakeWordEnd::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.WakeWordEnd)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  intent_json_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  intent_heard_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WakeWordEnd::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool intent_heard = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          intent_heard_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string intent_json = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_intent_json();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.WakeWordEnd.intent_json"));
          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* WakeWordEnd::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.WakeWordEnd)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool intent_heard = 1;
  if (this->intent_heard() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_intent_heard(), target);
  }

  // string intent_json = 2;
  if (this->intent_json().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_intent_json().data(), static_cast<int>(this->_internal_intent_json().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.WakeWordEnd.intent_json");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_intent_json(), 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:Anki.Vector.external_interface.WakeWordEnd)
  return target;
}

size_t WakeWordEnd::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.WakeWordEnd)
  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 intent_json = 2;
  if (this->intent_json().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_intent_json());
  }

  // bool intent_heard = 1;
  if (this->intent_heard() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void WakeWordEnd::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.WakeWordEnd)
  GOOGLE_DCHECK_NE(&from, this);
  const WakeWordEnd* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<WakeWordEnd>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.WakeWordEnd)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.WakeWordEnd)
    MergeFrom(*source);
  }
}

void WakeWordEnd::MergeFrom(const WakeWordEnd& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.WakeWordEnd)
  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.intent_json().size() > 0) {
    _internal_set_intent_json(from._internal_intent_json());
  }
  if (from.intent_heard() != 0) {
    _internal_set_intent_heard(from._internal_intent_heard());
  }
}

void WakeWordEnd::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.WakeWordEnd)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void WakeWordEnd::CopyFrom(const WakeWordEnd& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.WakeWordEnd)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WakeWordEnd::IsInitialized() const {
  return true;
}

void WakeWordEnd::InternalSwap(WakeWordEnd* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  intent_json_.Swap(&other->intent_json_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  swap(intent_heard_, other->intent_heard_);
}

::PROTOBUF_NAMESPACE_ID::Metadata WakeWordEnd::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void UserIntent::InitAsDefaultInstance() {
}
class UserIntent::_Internal {
 public:
};

UserIntent::UserIntent(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UserIntent)
}
UserIntent::UserIntent(const UserIntent& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  json_data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_json_data().empty()) {
    json_data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_json_data(),
      GetArena());
  }
  intent_id_ = from.intent_id_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UserIntent)
}

void UserIntent::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UserIntent_messages_2eproto.base);
  json_data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  intent_id_ = 0u;
}

UserIntent::~UserIntent() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.UserIntent)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void UserIntent::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  json_data_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void UserIntent::ArenaDtor(void* object) {
  UserIntent* _this = reinterpret_cast< UserIntent* >(object);
  (void)_this;
}
void UserIntent::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void UserIntent::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const UserIntent& UserIntent::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_UserIntent_messages_2eproto.base);
  return *internal_default_instance();
}


void UserIntent::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.UserIntent)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  json_data_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  intent_id_ = 0u;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UserIntent::_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 intent_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          intent_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string json_data = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_json_data();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.UserIntent.json_data"));
          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* UserIntent::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.UserIntent)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 intent_id = 1;
  if (this->intent_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_intent_id(), target);
  }

  // string json_data = 2;
  if (this->json_data().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_json_data().data(), static_cast<int>(this->_internal_json_data().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.UserIntent.json_data");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_json_data(), 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:Anki.Vector.external_interface.UserIntent)
  return target;
}

size_t UserIntent::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.UserIntent)
  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 json_data = 2;
  if (this->json_data().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_json_data());
  }

  // uint32 intent_id = 1;
  if (this->intent_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_intent_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 UserIntent::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.UserIntent)
  GOOGLE_DCHECK_NE(&from, this);
  const UserIntent* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<UserIntent>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.UserIntent)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.UserIntent)
    MergeFrom(*source);
  }
}

void UserIntent::MergeFrom(const UserIntent& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.UserIntent)
  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.json_data().size() > 0) {
    _internal_set_json_data(from._internal_json_data());
  }
  if (from.intent_id() != 0) {
    _internal_set_intent_id(from._internal_intent_id());
  }
}

void UserIntent::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.UserIntent)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void UserIntent::CopyFrom(const UserIntent& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.UserIntent)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UserIntent::IsInitialized() const {
  return true;
}

void UserIntent::InternalSwap(UserIntent* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  json_data_.Swap(&other->json_data_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  swap(intent_id_, other->intent_id_);
}

::PROTOBUF_NAMESPACE_ID::Metadata UserIntent::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PhotoInfo::InitAsDefaultInstance() {
}
class PhotoInfo::_Internal {
 public:
};

PhotoInfo::PhotoInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PhotoInfo)
}
PhotoInfo::PhotoInfo(const PhotoInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&photo_id_, &from.photo_id_,
    static_cast<size_t>(reinterpret_cast<char*>(&thumb_copied_to_app_) -
    reinterpret_cast<char*>(&photo_id_)) + sizeof(thumb_copied_to_app_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PhotoInfo)
}

void PhotoInfo::SharedCtor() {
  ::memset(&photo_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&thumb_copied_to_app_) -
      reinterpret_cast<char*>(&photo_id_)) + sizeof(thumb_copied_to_app_));
}

PhotoInfo::~PhotoInfo() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PhotoInfo)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PhotoInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void PhotoInfo::ArenaDtor(void* object) {
  PhotoInfo* _this = reinterpret_cast< PhotoInfo* >(object);
  (void)_this;
}
void PhotoInfo::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PhotoInfo::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PhotoInfo& PhotoInfo::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PhotoInfo_messages_2eproto.base);
  return *internal_default_instance();
}


void PhotoInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PhotoInfo)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&photo_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&thumb_copied_to_app_) -
      reinterpret_cast<char*>(&photo_id_)) + sizeof(thumb_copied_to_app_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PhotoInfo::_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 photo_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          photo_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 timestamp_utc = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          timestamp_utc_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool photo_copied_to_app = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          photo_copied_to_app_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool thumb_copied_to_app = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          thumb_copied_to_app_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* PhotoInfo::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PhotoInfo)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 photo_id = 1;
  if (this->photo_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_photo_id(), target);
  }

  // uint32 timestamp_utc = 2;
  if (this->timestamp_utc() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_timestamp_utc(), target);
  }

  // bool photo_copied_to_app = 3;
  if (this->photo_copied_to_app() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_photo_copied_to_app(), target);
  }

  // bool thumb_copied_to_app = 4;
  if (this->thumb_copied_to_app() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_thumb_copied_to_app(), 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:Anki.Vector.external_interface.PhotoInfo)
  return target;
}

size_t PhotoInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PhotoInfo)
  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 photo_id = 1;
  if (this->photo_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_photo_id());
  }

  // uint32 timestamp_utc = 2;
  if (this->timestamp_utc() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_timestamp_utc());
  }

  // bool photo_copied_to_app = 3;
  if (this->photo_copied_to_app() != 0) {
    total_size += 1 + 1;
  }

  // bool thumb_copied_to_app = 4;
  if (this->thumb_copied_to_app() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PhotoInfo::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.PhotoInfo)
  GOOGLE_DCHECK_NE(&from, this);
  const PhotoInfo* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PhotoInfo>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.PhotoInfo)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.PhotoInfo)
    MergeFrom(*source);
  }
}

void PhotoInfo::MergeFrom(const PhotoInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PhotoInfo)
  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.photo_id() != 0) {
    _internal_set_photo_id(from._internal_photo_id());
  }
  if (from.timestamp_utc() != 0) {
    _internal_set_timestamp_utc(from._internal_timestamp_utc());
  }
  if (from.photo_copied_to_app() != 0) {
    _internal_set_photo_copied_to_app(from._internal_photo_copied_to_app());
  }
  if (from.thumb_copied_to_app() != 0) {
    _internal_set_thumb_copied_to_app(from._internal_thumb_copied_to_app());
  }
}

void PhotoInfo::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.PhotoInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PhotoInfo::CopyFrom(const PhotoInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PhotoInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PhotoInfo::IsInitialized() const {
  return true;
}

void PhotoInfo::InternalSwap(PhotoInfo* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PhotoInfo, thumb_copied_to_app_)
      + sizeof(PhotoInfo::thumb_copied_to_app_)
      - PROTOBUF_FIELD_OFFSET(PhotoInfo, photo_id_)>(
          reinterpret_cast<char*>(&photo_id_),
          reinterpret_cast<char*>(&other->photo_id_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PhotoInfo::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PhotosInfoRequest::InitAsDefaultInstance() {
}
class PhotosInfoRequest::_Internal {
 public:
};

PhotosInfoRequest::PhotosInfoRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PhotosInfoRequest)
}
PhotosInfoRequest::PhotosInfoRequest(const PhotosInfoRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PhotosInfoRequest)
}

void PhotosInfoRequest::SharedCtor() {
}

PhotosInfoRequest::~PhotosInfoRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PhotosInfoRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PhotosInfoRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void PhotosInfoRequest::ArenaDtor(void* object) {
  PhotosInfoRequest* _this = reinterpret_cast< PhotosInfoRequest* >(object);
  (void)_this;
}
void PhotosInfoRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PhotosInfoRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PhotosInfoRequest& PhotosInfoRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PhotosInfoRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void PhotosInfoRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PhotosInfoRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PhotosInfoRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* PhotosInfoRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PhotosInfoRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.PhotosInfoRequest)
  return target;
}

size_t PhotosInfoRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PhotosInfoRequest)
  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;

  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 PhotosInfoRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.PhotosInfoRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const PhotosInfoRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PhotosInfoRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.PhotosInfoRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.PhotosInfoRequest)
    MergeFrom(*source);
  }
}

void PhotosInfoRequest::MergeFrom(const PhotosInfoRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PhotosInfoRequest)
  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;

}

void PhotosInfoRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.PhotosInfoRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PhotosInfoRequest::CopyFrom(const PhotosInfoRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PhotosInfoRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PhotosInfoRequest::IsInitialized() const {
  return true;
}

void PhotosInfoRequest::InternalSwap(PhotosInfoRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PhotosInfoRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PhotosInfoResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_PhotosInfoResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class PhotosInfoResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const PhotosInfoResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
PhotosInfoResponse::_Internal::status(const PhotosInfoResponse* msg) {
  return *msg->status_;
}
void PhotosInfoResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
PhotosInfoResponse::PhotosInfoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  photo_infos_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PhotosInfoResponse)
}
PhotosInfoResponse::PhotosInfoResponse(const PhotosInfoResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      photo_infos_(from.photo_infos_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PhotosInfoResponse)
}

void PhotosInfoResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PhotosInfoResponse_messages_2eproto.base);
  status_ = nullptr;
}

PhotosInfoResponse::~PhotosInfoResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PhotosInfoResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PhotosInfoResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void PhotosInfoResponse::ArenaDtor(void* object) {
  PhotosInfoResponse* _this = reinterpret_cast< PhotosInfoResponse* >(object);
  (void)_this;
}
void PhotosInfoResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PhotosInfoResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PhotosInfoResponse& PhotosInfoResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PhotosInfoResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void PhotosInfoResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PhotosInfoResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  photo_infos_.Clear();
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PhotosInfoResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated .Anki.Vector.external_interface.PhotoInfo photo_infos = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_photo_infos(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(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* PhotosInfoResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PhotosInfoResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // repeated .Anki.Vector.external_interface.PhotoInfo photo_infos = 2;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_photo_infos_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, this->_internal_photo_infos(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.PhotosInfoResponse)
  return target;
}

size_t PhotosInfoResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PhotosInfoResponse)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .Anki.Vector.external_interface.PhotoInfo photo_infos = 2;
  total_size += 1UL * this->_internal_photo_infos_size();
  for (const auto& msg : this->photo_infos_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 PhotosInfoResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.PhotosInfoResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const PhotosInfoResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PhotosInfoResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.PhotosInfoResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.PhotosInfoResponse)
    MergeFrom(*source);
  }
}

void PhotosInfoResponse::MergeFrom(const PhotosInfoResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PhotosInfoResponse)
  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;

  photo_infos_.MergeFrom(from.photo_infos_);
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void PhotosInfoResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.PhotosInfoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PhotosInfoResponse::CopyFrom(const PhotosInfoResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PhotosInfoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PhotosInfoResponse::IsInitialized() const {
  return true;
}

void PhotosInfoResponse::InternalSwap(PhotosInfoResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  photo_infos_.InternalSwap(&other->photo_infos_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PhotosInfoResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PhotoRequest::InitAsDefaultInstance() {
}
class PhotoRequest::_Internal {
 public:
};

PhotoRequest::PhotoRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PhotoRequest)
}
PhotoRequest::PhotoRequest(const PhotoRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  photo_id_ = from.photo_id_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PhotoRequest)
}

void PhotoRequest::SharedCtor() {
  photo_id_ = 0u;
}

PhotoRequest::~PhotoRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PhotoRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PhotoRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void PhotoRequest::ArenaDtor(void* object) {
  PhotoRequest* _this = reinterpret_cast< PhotoRequest* >(object);
  (void)_this;
}
void PhotoRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PhotoRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PhotoRequest& PhotoRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PhotoRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void PhotoRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PhotoRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  photo_id_ = 0u;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PhotoRequest::_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 photo_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          photo_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* PhotoRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PhotoRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 photo_id = 1;
  if (this->photo_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_photo_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:Anki.Vector.external_interface.PhotoRequest)
  return target;
}

size_t PhotoRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PhotoRequest)
  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 photo_id = 1;
  if (this->photo_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_photo_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 PhotoRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.PhotoRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const PhotoRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PhotoRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.PhotoRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.PhotoRequest)
    MergeFrom(*source);
  }
}

void PhotoRequest::MergeFrom(const PhotoRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PhotoRequest)
  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.photo_id() != 0) {
    _internal_set_photo_id(from._internal_photo_id());
  }
}

void PhotoRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.PhotoRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PhotoRequest::CopyFrom(const PhotoRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PhotoRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PhotoRequest::IsInitialized() const {
  return true;
}

void PhotoRequest::InternalSwap(PhotoRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(photo_id_, other->photo_id_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PhotoRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PhotoPathMessage::InitAsDefaultInstance() {
}
class PhotoPathMessage::_Internal {
 public:
};

PhotoPathMessage::PhotoPathMessage(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PhotoPathMessage)
}
PhotoPathMessage::PhotoPathMessage(const PhotoPathMessage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  full_path_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_full_path().empty()) {
    full_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_full_path(),
      GetArena());
  }
  success_ = from.success_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PhotoPathMessage)
}

void PhotoPathMessage::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PhotoPathMessage_messages_2eproto.base);
  full_path_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  success_ = false;
}

PhotoPathMessage::~PhotoPathMessage() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PhotoPathMessage)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PhotoPathMessage::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  full_path_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void PhotoPathMessage::ArenaDtor(void* object) {
  PhotoPathMessage* _this = reinterpret_cast< PhotoPathMessage* >(object);
  (void)_this;
}
void PhotoPathMessage::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PhotoPathMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PhotoPathMessage& PhotoPathMessage::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PhotoPathMessage_messages_2eproto.base);
  return *internal_default_instance();
}


void PhotoPathMessage::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PhotoPathMessage)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  full_path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  success_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PhotoPathMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool success = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          success_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string full_path = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_full_path();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.PhotoPathMessage.full_path"));
          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* PhotoPathMessage::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PhotoPathMessage)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool success = 1;
  if (this->success() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_success(), target);
  }

  // string full_path = 2;
  if (this->full_path().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_full_path().data(), static_cast<int>(this->_internal_full_path().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.PhotoPathMessage.full_path");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_full_path(), 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:Anki.Vector.external_interface.PhotoPathMessage)
  return target;
}

size_t PhotoPathMessage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PhotoPathMessage)
  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 full_path = 2;
  if (this->full_path().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_full_path());
  }

  // bool success = 1;
  if (this->success() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PhotoPathMessage::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.PhotoPathMessage)
  GOOGLE_DCHECK_NE(&from, this);
  const PhotoPathMessage* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PhotoPathMessage>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.PhotoPathMessage)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.PhotoPathMessage)
    MergeFrom(*source);
  }
}

void PhotoPathMessage::MergeFrom(const PhotoPathMessage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PhotoPathMessage)
  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.full_path().size() > 0) {
    _internal_set_full_path(from._internal_full_path());
  }
  if (from.success() != 0) {
    _internal_set_success(from._internal_success());
  }
}

void PhotoPathMessage::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.PhotoPathMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PhotoPathMessage::CopyFrom(const PhotoPathMessage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PhotoPathMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PhotoPathMessage::IsInitialized() const {
  return true;
}

void PhotoPathMessage::InternalSwap(PhotoPathMessage* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  full_path_.Swap(&other->full_path_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  swap(success_, other->success_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PhotoPathMessage::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PhotoResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_PhotoResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class PhotoResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const PhotoResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
PhotoResponse::_Internal::status(const PhotoResponse* msg) {
  return *msg->status_;
}
void PhotoResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
PhotoResponse::PhotoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PhotoResponse)
}
PhotoResponse::PhotoResponse(const PhotoResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  image_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_image().empty()) {
    image_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_image(),
      GetArena());
  }
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  success_ = from.success_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PhotoResponse)
}

void PhotoResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PhotoResponse_messages_2eproto.base);
  image_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&success_) -
      reinterpret_cast<char*>(&status_)) + sizeof(success_));
}

PhotoResponse::~PhotoResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PhotoResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PhotoResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  image_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete status_;
}

void PhotoResponse::ArenaDtor(void* object) {
  PhotoResponse* _this = reinterpret_cast< PhotoResponse* >(object);
  (void)_this;
}
void PhotoResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PhotoResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PhotoResponse& PhotoResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PhotoResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void PhotoResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PhotoResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  image_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  success_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PhotoResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool success = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          success_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bytes image = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_image();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          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* PhotoResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PhotoResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // bool success = 2;
  if (this->success() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_success(), target);
  }

  // bytes image = 3;
  if (this->image().size() > 0) {
    target = stream->WriteBytesMaybeAliased(
        3, this->_internal_image(), 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:Anki.Vector.external_interface.PhotoResponse)
  return target;
}

size_t PhotoResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PhotoResponse)
  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;

  // bytes image = 3;
  if (this->image().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_image());
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // bool success = 2;
  if (this->success() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PhotoResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.PhotoResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const PhotoResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PhotoResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.PhotoResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.PhotoResponse)
    MergeFrom(*source);
  }
}

void PhotoResponse::MergeFrom(const PhotoResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PhotoResponse)
  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.image().size() > 0) {
    _internal_set_image(from._internal_image());
  }
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.success() != 0) {
    _internal_set_success(from._internal_success());
  }
}

void PhotoResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.PhotoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PhotoResponse::CopyFrom(const PhotoResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PhotoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PhotoResponse::IsInitialized() const {
  return true;
}

void PhotoResponse::InternalSwap(PhotoResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  image_.Swap(&other->image_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PhotoResponse, success_)
      + sizeof(PhotoResponse::success_)
      - PROTOBUF_FIELD_OFFSET(PhotoResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PhotoResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ThumbnailRequest::InitAsDefaultInstance() {
}
class ThumbnailRequest::_Internal {
 public:
};

ThumbnailRequest::ThumbnailRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ThumbnailRequest)
}
ThumbnailRequest::ThumbnailRequest(const ThumbnailRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  photo_id_ = from.photo_id_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ThumbnailRequest)
}

void ThumbnailRequest::SharedCtor() {
  photo_id_ = 0u;
}

ThumbnailRequest::~ThumbnailRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ThumbnailRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ThumbnailRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void ThumbnailRequest::ArenaDtor(void* object) {
  ThumbnailRequest* _this = reinterpret_cast< ThumbnailRequest* >(object);
  (void)_this;
}
void ThumbnailRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ThumbnailRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ThumbnailRequest& ThumbnailRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ThumbnailRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void ThumbnailRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ThumbnailRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  photo_id_ = 0u;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ThumbnailRequest::_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 photo_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          photo_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* ThumbnailRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ThumbnailRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 photo_id = 1;
  if (this->photo_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_photo_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:Anki.Vector.external_interface.ThumbnailRequest)
  return target;
}

size_t ThumbnailRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ThumbnailRequest)
  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 photo_id = 1;
  if (this->photo_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_photo_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 ThumbnailRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.ThumbnailRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const ThumbnailRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ThumbnailRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.ThumbnailRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.ThumbnailRequest)
    MergeFrom(*source);
  }
}

void ThumbnailRequest::MergeFrom(const ThumbnailRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ThumbnailRequest)
  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.photo_id() != 0) {
    _internal_set_photo_id(from._internal_photo_id());
  }
}

void ThumbnailRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.ThumbnailRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ThumbnailRequest::CopyFrom(const ThumbnailRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ThumbnailRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ThumbnailRequest::IsInitialized() const {
  return true;
}

void ThumbnailRequest::InternalSwap(ThumbnailRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(photo_id_, other->photo_id_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ThumbnailRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ThumbnailPathMessage::InitAsDefaultInstance() {
}
class ThumbnailPathMessage::_Internal {
 public:
};

ThumbnailPathMessage::ThumbnailPathMessage(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ThumbnailPathMessage)
}
ThumbnailPathMessage::ThumbnailPathMessage(const ThumbnailPathMessage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  full_path_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_full_path().empty()) {
    full_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_full_path(),
      GetArena());
  }
  success_ = from.success_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ThumbnailPathMessage)
}

void ThumbnailPathMessage::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ThumbnailPathMessage_messages_2eproto.base);
  full_path_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  success_ = false;
}

ThumbnailPathMessage::~ThumbnailPathMessage() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ThumbnailPathMessage)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ThumbnailPathMessage::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  full_path_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void ThumbnailPathMessage::ArenaDtor(void* object) {
  ThumbnailPathMessage* _this = reinterpret_cast< ThumbnailPathMessage* >(object);
  (void)_this;
}
void ThumbnailPathMessage::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ThumbnailPathMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ThumbnailPathMessage& ThumbnailPathMessage::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ThumbnailPathMessage_messages_2eproto.base);
  return *internal_default_instance();
}


void ThumbnailPathMessage::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ThumbnailPathMessage)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  full_path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  success_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ThumbnailPathMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool success = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          success_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string full_path = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_full_path();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.ThumbnailPathMessage.full_path"));
          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* ThumbnailPathMessage::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ThumbnailPathMessage)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool success = 1;
  if (this->success() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_success(), target);
  }

  // string full_path = 2;
  if (this->full_path().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_full_path().data(), static_cast<int>(this->_internal_full_path().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.ThumbnailPathMessage.full_path");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_full_path(), 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:Anki.Vector.external_interface.ThumbnailPathMessage)
  return target;
}

size_t ThumbnailPathMessage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ThumbnailPathMessage)
  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 full_path = 2;
  if (this->full_path().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_full_path());
  }

  // bool success = 1;
  if (this->success() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ThumbnailPathMessage::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.ThumbnailPathMessage)
  GOOGLE_DCHECK_NE(&from, this);
  const ThumbnailPathMessage* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ThumbnailPathMessage>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.ThumbnailPathMessage)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.ThumbnailPathMessage)
    MergeFrom(*source);
  }
}

void ThumbnailPathMessage::MergeFrom(const ThumbnailPathMessage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ThumbnailPathMessage)
  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.full_path().size() > 0) {
    _internal_set_full_path(from._internal_full_path());
  }
  if (from.success() != 0) {
    _internal_set_success(from._internal_success());
  }
}

void ThumbnailPathMessage::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.ThumbnailPathMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ThumbnailPathMessage::CopyFrom(const ThumbnailPathMessage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ThumbnailPathMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ThumbnailPathMessage::IsInitialized() const {
  return true;
}

void ThumbnailPathMessage::InternalSwap(ThumbnailPathMessage* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  full_path_.Swap(&other->full_path_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  swap(success_, other->success_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ThumbnailPathMessage::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ThumbnailResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_ThumbnailResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class ThumbnailResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const ThumbnailResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
ThumbnailResponse::_Internal::status(const ThumbnailResponse* msg) {
  return *msg->status_;
}
void ThumbnailResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
ThumbnailResponse::ThumbnailResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ThumbnailResponse)
}
ThumbnailResponse::ThumbnailResponse(const ThumbnailResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  image_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_image().empty()) {
    image_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_image(),
      GetArena());
  }
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  success_ = from.success_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ThumbnailResponse)
}

void ThumbnailResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ThumbnailResponse_messages_2eproto.base);
  image_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&success_) -
      reinterpret_cast<char*>(&status_)) + sizeof(success_));
}

ThumbnailResponse::~ThumbnailResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ThumbnailResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ThumbnailResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  image_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete status_;
}

void ThumbnailResponse::ArenaDtor(void* object) {
  ThumbnailResponse* _this = reinterpret_cast< ThumbnailResponse* >(object);
  (void)_this;
}
void ThumbnailResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ThumbnailResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ThumbnailResponse& ThumbnailResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ThumbnailResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void ThumbnailResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ThumbnailResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  image_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  success_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ThumbnailResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool success = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          success_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bytes image = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_image();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          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* ThumbnailResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ThumbnailResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // bool success = 2;
  if (this->success() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_success(), target);
  }

  // bytes image = 3;
  if (this->image().size() > 0) {
    target = stream->WriteBytesMaybeAliased(
        3, this->_internal_image(), 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:Anki.Vector.external_interface.ThumbnailResponse)
  return target;
}

size_t ThumbnailResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ThumbnailResponse)
  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;

  // bytes image = 3;
  if (this->image().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_image());
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // bool success = 2;
  if (this->success() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ThumbnailResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.ThumbnailResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const ThumbnailResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ThumbnailResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.ThumbnailResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.ThumbnailResponse)
    MergeFrom(*source);
  }
}

void ThumbnailResponse::MergeFrom(const ThumbnailResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ThumbnailResponse)
  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.image().size() > 0) {
    _internal_set_image(from._internal_image());
  }
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.success() != 0) {
    _internal_set_success(from._internal_success());
  }
}

void ThumbnailResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.ThumbnailResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ThumbnailResponse::CopyFrom(const ThumbnailResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ThumbnailResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ThumbnailResponse::IsInitialized() const {
  return true;
}

void ThumbnailResponse::InternalSwap(ThumbnailResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  image_.Swap(&other->image_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ThumbnailResponse, success_)
      + sizeof(ThumbnailResponse::success_)
      - PROTOBUF_FIELD_OFFSET(ThumbnailResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata ThumbnailResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void DeletePhotoRequest::InitAsDefaultInstance() {
}
class DeletePhotoRequest::_Internal {
 public:
};

DeletePhotoRequest::DeletePhotoRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DeletePhotoRequest)
}
DeletePhotoRequest::DeletePhotoRequest(const DeletePhotoRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  photo_id_ = from.photo_id_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DeletePhotoRequest)
}

void DeletePhotoRequest::SharedCtor() {
  photo_id_ = 0u;
}

DeletePhotoRequest::~DeletePhotoRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DeletePhotoRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void DeletePhotoRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void DeletePhotoRequest::ArenaDtor(void* object) {
  DeletePhotoRequest* _this = reinterpret_cast< DeletePhotoRequest* >(object);
  (void)_this;
}
void DeletePhotoRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void DeletePhotoRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const DeletePhotoRequest& DeletePhotoRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DeletePhotoRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void DeletePhotoRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DeletePhotoRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  photo_id_ = 0u;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DeletePhotoRequest::_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 photo_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          photo_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* DeletePhotoRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.DeletePhotoRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 photo_id = 1;
  if (this->photo_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_photo_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:Anki.Vector.external_interface.DeletePhotoRequest)
  return target;
}

size_t DeletePhotoRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DeletePhotoRequest)
  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 photo_id = 1;
  if (this->photo_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_photo_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 DeletePhotoRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.DeletePhotoRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const DeletePhotoRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DeletePhotoRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.DeletePhotoRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.DeletePhotoRequest)
    MergeFrom(*source);
  }
}

void DeletePhotoRequest::MergeFrom(const DeletePhotoRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.DeletePhotoRequest)
  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.photo_id() != 0) {
    _internal_set_photo_id(from._internal_photo_id());
  }
}

void DeletePhotoRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.DeletePhotoRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DeletePhotoRequest::CopyFrom(const DeletePhotoRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DeletePhotoRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DeletePhotoRequest::IsInitialized() const {
  return true;
}

void DeletePhotoRequest::InternalSwap(DeletePhotoRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(photo_id_, other->photo_id_);
}

::PROTOBUF_NAMESPACE_ID::Metadata DeletePhotoRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void DeletePhotoResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_DeletePhotoResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class DeletePhotoResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const DeletePhotoResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
DeletePhotoResponse::_Internal::status(const DeletePhotoResponse* msg) {
  return *msg->status_;
}
void DeletePhotoResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
DeletePhotoResponse::DeletePhotoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DeletePhotoResponse)
}
DeletePhotoResponse::DeletePhotoResponse(const DeletePhotoResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  success_ = from.success_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DeletePhotoResponse)
}

void DeletePhotoResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DeletePhotoResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&success_) -
      reinterpret_cast<char*>(&status_)) + sizeof(success_));
}

DeletePhotoResponse::~DeletePhotoResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DeletePhotoResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void DeletePhotoResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void DeletePhotoResponse::ArenaDtor(void* object) {
  DeletePhotoResponse* _this = reinterpret_cast< DeletePhotoResponse* >(object);
  (void)_this;
}
void DeletePhotoResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void DeletePhotoResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const DeletePhotoResponse& DeletePhotoResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DeletePhotoResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void DeletePhotoResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DeletePhotoResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  success_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DeletePhotoResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool success = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          success_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* DeletePhotoResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.DeletePhotoResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // bool success = 2;
  if (this->success() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_success(), 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:Anki.Vector.external_interface.DeletePhotoResponse)
  return target;
}

size_t DeletePhotoResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DeletePhotoResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // bool success = 2;
  if (this->success() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DeletePhotoResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.DeletePhotoResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const DeletePhotoResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DeletePhotoResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.DeletePhotoResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.DeletePhotoResponse)
    MergeFrom(*source);
  }
}

void DeletePhotoResponse::MergeFrom(const DeletePhotoResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.DeletePhotoResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.success() != 0) {
    _internal_set_success(from._internal_success());
  }
}

void DeletePhotoResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.DeletePhotoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DeletePhotoResponse::CopyFrom(const DeletePhotoResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DeletePhotoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DeletePhotoResponse::IsInitialized() const {
  return true;
}

void DeletePhotoResponse::InternalSwap(DeletePhotoResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(DeletePhotoResponse, success_)
      + sizeof(DeletePhotoResponse::success_)
      - PROTOBUF_FIELD_OFFSET(DeletePhotoResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata DeletePhotoResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PhotoTaken::InitAsDefaultInstance() {
}
class PhotoTaken::_Internal {
 public:
};

PhotoTaken::PhotoTaken(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PhotoTaken)
}
PhotoTaken::PhotoTaken(const PhotoTaken& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  photo_id_ = from.photo_id_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PhotoTaken)
}

void PhotoTaken::SharedCtor() {
  photo_id_ = 0u;
}

PhotoTaken::~PhotoTaken() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PhotoTaken)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PhotoTaken::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void PhotoTaken::ArenaDtor(void* object) {
  PhotoTaken* _this = reinterpret_cast< PhotoTaken* >(object);
  (void)_this;
}
void PhotoTaken::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PhotoTaken::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PhotoTaken& PhotoTaken::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PhotoTaken_messages_2eproto.base);
  return *internal_default_instance();
}


void PhotoTaken::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PhotoTaken)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  photo_id_ = 0u;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PhotoTaken::_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 photo_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          photo_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* PhotoTaken::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PhotoTaken)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 photo_id = 1;
  if (this->photo_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_photo_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:Anki.Vector.external_interface.PhotoTaken)
  return target;
}

size_t PhotoTaken::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PhotoTaken)
  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 photo_id = 1;
  if (this->photo_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_photo_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 PhotoTaken::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.PhotoTaken)
  GOOGLE_DCHECK_NE(&from, this);
  const PhotoTaken* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PhotoTaken>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.PhotoTaken)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.PhotoTaken)
    MergeFrom(*source);
  }
}

void PhotoTaken::MergeFrom(const PhotoTaken& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PhotoTaken)
  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.photo_id() != 0) {
    _internal_set_photo_id(from._internal_photo_id());
  }
}

void PhotoTaken::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.PhotoTaken)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PhotoTaken::CopyFrom(const PhotoTaken& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PhotoTaken)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PhotoTaken::IsInitialized() const {
  return true;
}

void PhotoTaken::InternalSwap(PhotoTaken* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(photo_id_, other->photo_id_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PhotoTaken::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PathMotionProfile::InitAsDefaultInstance() {
}
class PathMotionProfile::_Internal {
 public:
};

PathMotionProfile::PathMotionProfile(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PathMotionProfile)
}
PathMotionProfile::PathMotionProfile(const PathMotionProfile& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&speed_mmps_, &from.speed_mmps_,
    static_cast<size_t>(reinterpret_cast<char*>(&is_custom_) -
    reinterpret_cast<char*>(&speed_mmps_)) + sizeof(is_custom_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PathMotionProfile)
}

void PathMotionProfile::SharedCtor() {
  ::memset(&speed_mmps_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&is_custom_) -
      reinterpret_cast<char*>(&speed_mmps_)) + sizeof(is_custom_));
}

PathMotionProfile::~PathMotionProfile() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PathMotionProfile)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PathMotionProfile::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void PathMotionProfile::ArenaDtor(void* object) {
  PathMotionProfile* _this = reinterpret_cast< PathMotionProfile* >(object);
  (void)_this;
}
void PathMotionProfile::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PathMotionProfile::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PathMotionProfile& PathMotionProfile::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PathMotionProfile_messages_2eproto.base);
  return *internal_default_instance();
}


void PathMotionProfile::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PathMotionProfile)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&speed_mmps_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&is_custom_) -
      reinterpret_cast<char*>(&speed_mmps_)) + sizeof(is_custom_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PathMotionProfile::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float speed_mmps = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          speed_mmps_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float accel_mmps2 = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          accel_mmps2_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float decel_mmps2 = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          decel_mmps2_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float point_turn_speed_rad_per_sec = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          point_turn_speed_rad_per_sec_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float point_turn_accel_rad_per_sec2 = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 45)) {
          point_turn_accel_rad_per_sec2_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float point_turn_decel_rad_per_sec2 = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 53)) {
          point_turn_decel_rad_per_sec2_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float dock_speed_mmps = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 61)) {
          dock_speed_mmps_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float dock_accel_mmps2 = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 69)) {
          dock_accel_mmps2_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float dock_decel_mmps2 = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 77)) {
          dock_decel_mmps2_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float reverse_speed_mmps = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 85)) {
          reverse_speed_mmps_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // bool is_custom = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
          is_custom_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* PathMotionProfile::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PathMotionProfile)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float speed_mmps = 1;
  if (!(this->speed_mmps() <= 0 && this->speed_mmps() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_speed_mmps(), target);
  }

  // float accel_mmps2 = 2;
  if (!(this->accel_mmps2() <= 0 && this->accel_mmps2() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_accel_mmps2(), target);
  }

  // float decel_mmps2 = 3;
  if (!(this->decel_mmps2() <= 0 && this->decel_mmps2() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_decel_mmps2(), target);
  }

  // float point_turn_speed_rad_per_sec = 4;
  if (!(this->point_turn_speed_rad_per_sec() <= 0 && this->point_turn_speed_rad_per_sec() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_point_turn_speed_rad_per_sec(), target);
  }

  // float point_turn_accel_rad_per_sec2 = 5;
  if (!(this->point_turn_accel_rad_per_sec2() <= 0 && this->point_turn_accel_rad_per_sec2() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(5, this->_internal_point_turn_accel_rad_per_sec2(), target);
  }

  // float point_turn_decel_rad_per_sec2 = 6;
  if (!(this->point_turn_decel_rad_per_sec2() <= 0 && this->point_turn_decel_rad_per_sec2() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(6, this->_internal_point_turn_decel_rad_per_sec2(), target);
  }

  // float dock_speed_mmps = 7;
  if (!(this->dock_speed_mmps() <= 0 && this->dock_speed_mmps() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(7, this->_internal_dock_speed_mmps(), target);
  }

  // float dock_accel_mmps2 = 8;
  if (!(this->dock_accel_mmps2() <= 0 && this->dock_accel_mmps2() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(8, this->_internal_dock_accel_mmps2(), target);
  }

  // float dock_decel_mmps2 = 9;
  if (!(this->dock_decel_mmps2() <= 0 && this->dock_decel_mmps2() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(9, this->_internal_dock_decel_mmps2(), target);
  }

  // float reverse_speed_mmps = 10;
  if (!(this->reverse_speed_mmps() <= 0 && this->reverse_speed_mmps() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(10, this->_internal_reverse_speed_mmps(), target);
  }

  // bool is_custom = 11;
  if (this->is_custom() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(11, this->_internal_is_custom(), 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:Anki.Vector.external_interface.PathMotionProfile)
  return target;
}

size_t PathMotionProfile::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PathMotionProfile)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float speed_mmps = 1;
  if (!(this->speed_mmps() <= 0 && this->speed_mmps() >= 0)) {
    total_size += 1 + 4;
  }

  // float accel_mmps2 = 2;
  if (!(this->accel_mmps2() <= 0 && this->accel_mmps2() >= 0)) {
    total_size += 1 + 4;
  }

  // float decel_mmps2 = 3;
  if (!(this->decel_mmps2() <= 0 && this->decel_mmps2() >= 0)) {
    total_size += 1 + 4;
  }

  // float point_turn_speed_rad_per_sec = 4;
  if (!(this->point_turn_speed_rad_per_sec() <= 0 && this->point_turn_speed_rad_per_sec() >= 0)) {
    total_size += 1 + 4;
  }

  // float point_turn_accel_rad_per_sec2 = 5;
  if (!(this->point_turn_accel_rad_per_sec2() <= 0 && this->point_turn_accel_rad_per_sec2() >= 0)) {
    total_size += 1 + 4;
  }

  // float point_turn_decel_rad_per_sec2 = 6;
  if (!(this->point_turn_decel_rad_per_sec2() <= 0 && this->point_turn_decel_rad_per_sec2() >= 0)) {
    total_size += 1 + 4;
  }

  // float dock_speed_mmps = 7;
  if (!(this->dock_speed_mmps() <= 0 && this->dock_speed_mmps() >= 0)) {
    total_size += 1 + 4;
  }

  // float dock_accel_mmps2 = 8;
  if (!(this->dock_accel_mmps2() <= 0 && this->dock_accel_mmps2() >= 0)) {
    total_size += 1 + 4;
  }

  // float dock_decel_mmps2 = 9;
  if (!(this->dock_decel_mmps2() <= 0 && this->dock_decel_mmps2() >= 0)) {
    total_size += 1 + 4;
  }

  // float reverse_speed_mmps = 10;
  if (!(this->reverse_speed_mmps() <= 0 && this->reverse_speed_mmps() >= 0)) {
    total_size += 1 + 4;
  }

  // bool is_custom = 11;
  if (this->is_custom() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PathMotionProfile::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.PathMotionProfile)
  GOOGLE_DCHECK_NE(&from, this);
  const PathMotionProfile* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PathMotionProfile>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.PathMotionProfile)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.PathMotionProfile)
    MergeFrom(*source);
  }
}

void PathMotionProfile::MergeFrom(const PathMotionProfile& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PathMotionProfile)
  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.speed_mmps() <= 0 && from.speed_mmps() >= 0)) {
    _internal_set_speed_mmps(from._internal_speed_mmps());
  }
  if (!(from.accel_mmps2() <= 0 && from.accel_mmps2() >= 0)) {
    _internal_set_accel_mmps2(from._internal_accel_mmps2());
  }
  if (!(from.decel_mmps2() <= 0 && from.decel_mmps2() >= 0)) {
    _internal_set_decel_mmps2(from._internal_decel_mmps2());
  }
  if (!(from.point_turn_speed_rad_per_sec() <= 0 && from.point_turn_speed_rad_per_sec() >= 0)) {
    _internal_set_point_turn_speed_rad_per_sec(from._internal_point_turn_speed_rad_per_sec());
  }
  if (!(from.point_turn_accel_rad_per_sec2() <= 0 && from.point_turn_accel_rad_per_sec2() >= 0)) {
    _internal_set_point_turn_accel_rad_per_sec2(from._internal_point_turn_accel_rad_per_sec2());
  }
  if (!(from.point_turn_decel_rad_per_sec2() <= 0 && from.point_turn_decel_rad_per_sec2() >= 0)) {
    _internal_set_point_turn_decel_rad_per_sec2(from._internal_point_turn_decel_rad_per_sec2());
  }
  if (!(from.dock_speed_mmps() <= 0 && from.dock_speed_mmps() >= 0)) {
    _internal_set_dock_speed_mmps(from._internal_dock_speed_mmps());
  }
  if (!(from.dock_accel_mmps2() <= 0 && from.dock_accel_mmps2() >= 0)) {
    _internal_set_dock_accel_mmps2(from._internal_dock_accel_mmps2());
  }
  if (!(from.dock_decel_mmps2() <= 0 && from.dock_decel_mmps2() >= 0)) {
    _internal_set_dock_decel_mmps2(from._internal_dock_decel_mmps2());
  }
  if (!(from.reverse_speed_mmps() <= 0 && from.reverse_speed_mmps() >= 0)) {
    _internal_set_reverse_speed_mmps(from._internal_reverse_speed_mmps());
  }
  if (from.is_custom() != 0) {
    _internal_set_is_custom(from._internal_is_custom());
  }
}

void PathMotionProfile::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.PathMotionProfile)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PathMotionProfile::CopyFrom(const PathMotionProfile& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PathMotionProfile)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PathMotionProfile::IsInitialized() const {
  return true;
}

void PathMotionProfile::InternalSwap(PathMotionProfile* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PathMotionProfile, is_custom_)
      + sizeof(PathMotionProfile::is_custom_)
      - PROTOBUF_FIELD_OFFSET(PathMotionProfile, speed_mmps_)>(
          reinterpret_cast<char*>(&speed_mmps_),
          reinterpret_cast<char*>(&other->speed_mmps_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PathMotionProfile::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ActionResult::InitAsDefaultInstance() {
}
class ActionResult::_Internal {
 public:
};

ActionResult::ActionResult(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ActionResult)
}
ActionResult::ActionResult(const ActionResult& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  code_ = from.code_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ActionResult)
}

void ActionResult::SharedCtor() {
  code_ = 0;
}

ActionResult::~ActionResult() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ActionResult)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ActionResult::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void ActionResult::ArenaDtor(void* object) {
  ActionResult* _this = reinterpret_cast< ActionResult* >(object);
  (void)_this;
}
void ActionResult::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ActionResult::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ActionResult& ActionResult::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ActionResult_messages_2eproto.base);
  return *internal_default_instance();
}


void ActionResult::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ActionResult)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  code_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ActionResult::_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) {
      // .Anki.Vector.external_interface.ActionResult.ActionResultCode code = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_code(static_cast<::Anki::Vector::external_interface::ActionResult_ActionResultCode>(val));
        } 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* ActionResult::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ActionResult)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ActionResult.ActionResultCode code = 1;
  if (this->code() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_code(), 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:Anki.Vector.external_interface.ActionResult)
  return target;
}

size_t ActionResult::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ActionResult)
  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;

  // .Anki.Vector.external_interface.ActionResult.ActionResultCode code = 1;
  if (this->code() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_code());
  }

  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 ActionResult::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.ActionResult)
  GOOGLE_DCHECK_NE(&from, this);
  const ActionResult* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ActionResult>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.ActionResult)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.ActionResult)
    MergeFrom(*source);
  }
}

void ActionResult::MergeFrom(const ActionResult& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ActionResult)
  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.code() != 0) {
    _internal_set_code(from._internal_code());
  }
}

void ActionResult::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.ActionResult)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ActionResult::CopyFrom(const ActionResult& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ActionResult)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ActionResult::IsInitialized() const {
  return true;
}

void ActionResult::InternalSwap(ActionResult* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(code_, other->code_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ActionResult::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CancelActionByIdTagRequest::InitAsDefaultInstance() {
}
class CancelActionByIdTagRequest::_Internal {
 public:
};

CancelActionByIdTagRequest::CancelActionByIdTagRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CancelActionByIdTagRequest)
}
CancelActionByIdTagRequest::CancelActionByIdTagRequest(const CancelActionByIdTagRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  id_tag_ = from.id_tag_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CancelActionByIdTagRequest)
}

void CancelActionByIdTagRequest::SharedCtor() {
  id_tag_ = 0u;
}

CancelActionByIdTagRequest::~CancelActionByIdTagRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CancelActionByIdTagRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CancelActionByIdTagRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void CancelActionByIdTagRequest::ArenaDtor(void* object) {
  CancelActionByIdTagRequest* _this = reinterpret_cast< CancelActionByIdTagRequest* >(object);
  (void)_this;
}
void CancelActionByIdTagRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CancelActionByIdTagRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CancelActionByIdTagRequest& CancelActionByIdTagRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CancelActionByIdTagRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void CancelActionByIdTagRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CancelActionByIdTagRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  id_tag_ = 0u;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CancelActionByIdTagRequest::_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 id_tag = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          id_tag_ = ::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* CancelActionByIdTagRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CancelActionByIdTagRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 id_tag = 1;
  if (this->id_tag() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_id_tag(), 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:Anki.Vector.external_interface.CancelActionByIdTagRequest)
  return target;
}

size_t CancelActionByIdTagRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CancelActionByIdTagRequest)
  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 id_tag = 1;
  if (this->id_tag() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_id_tag());
  }

  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 CancelActionByIdTagRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CancelActionByIdTagRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const CancelActionByIdTagRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CancelActionByIdTagRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CancelActionByIdTagRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CancelActionByIdTagRequest)
    MergeFrom(*source);
  }
}

void CancelActionByIdTagRequest::MergeFrom(const CancelActionByIdTagRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CancelActionByIdTagRequest)
  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.id_tag() != 0) {
    _internal_set_id_tag(from._internal_id_tag());
  }
}

void CancelActionByIdTagRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CancelActionByIdTagRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CancelActionByIdTagRequest::CopyFrom(const CancelActionByIdTagRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CancelActionByIdTagRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CancelActionByIdTagRequest::IsInitialized() const {
  return true;
}

void CancelActionByIdTagRequest::InternalSwap(CancelActionByIdTagRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(id_tag_, other->id_tag_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CancelActionByIdTagRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CancelActionByIdTagResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_CancelActionByIdTagResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class CancelActionByIdTagResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const CancelActionByIdTagResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
CancelActionByIdTagResponse::_Internal::status(const CancelActionByIdTagResponse* msg) {
  return *msg->status_;
}
void CancelActionByIdTagResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
CancelActionByIdTagResponse::CancelActionByIdTagResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CancelActionByIdTagResponse)
}
CancelActionByIdTagResponse::CancelActionByIdTagResponse(const CancelActionByIdTagResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CancelActionByIdTagResponse)
}

void CancelActionByIdTagResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CancelActionByIdTagResponse_messages_2eproto.base);
  status_ = nullptr;
}

CancelActionByIdTagResponse::~CancelActionByIdTagResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CancelActionByIdTagResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CancelActionByIdTagResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void CancelActionByIdTagResponse::ArenaDtor(void* object) {
  CancelActionByIdTagResponse* _this = reinterpret_cast< CancelActionByIdTagResponse* >(object);
  (void)_this;
}
void CancelActionByIdTagResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CancelActionByIdTagResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CancelActionByIdTagResponse& CancelActionByIdTagResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CancelActionByIdTagResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void CancelActionByIdTagResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CancelActionByIdTagResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CancelActionByIdTagResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* CancelActionByIdTagResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CancelActionByIdTagResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.CancelActionByIdTagResponse)
  return target;
}

size_t CancelActionByIdTagResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CancelActionByIdTagResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 CancelActionByIdTagResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CancelActionByIdTagResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const CancelActionByIdTagResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CancelActionByIdTagResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CancelActionByIdTagResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CancelActionByIdTagResponse)
    MergeFrom(*source);
  }
}

void CancelActionByIdTagResponse::MergeFrom(const CancelActionByIdTagResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CancelActionByIdTagResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void CancelActionByIdTagResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CancelActionByIdTagResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CancelActionByIdTagResponse::CopyFrom(const CancelActionByIdTagResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CancelActionByIdTagResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CancelActionByIdTagResponse::IsInitialized() const {
  return true;
}

void CancelActionByIdTagResponse::InternalSwap(CancelActionByIdTagResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CancelActionByIdTagResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CancelBehaviorRequest::InitAsDefaultInstance() {
}
class CancelBehaviorRequest::_Internal {
 public:
};

CancelBehaviorRequest::CancelBehaviorRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CancelBehaviorRequest)
}
CancelBehaviorRequest::CancelBehaviorRequest(const CancelBehaviorRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CancelBehaviorRequest)
}

void CancelBehaviorRequest::SharedCtor() {
}

CancelBehaviorRequest::~CancelBehaviorRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CancelBehaviorRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CancelBehaviorRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void CancelBehaviorRequest::ArenaDtor(void* object) {
  CancelBehaviorRequest* _this = reinterpret_cast< CancelBehaviorRequest* >(object);
  (void)_this;
}
void CancelBehaviorRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CancelBehaviorRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CancelBehaviorRequest& CancelBehaviorRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CancelBehaviorRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void CancelBehaviorRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CancelBehaviorRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CancelBehaviorRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* CancelBehaviorRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CancelBehaviorRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.CancelBehaviorRequest)
  return target;
}

size_t CancelBehaviorRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CancelBehaviorRequest)
  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;

  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 CancelBehaviorRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CancelBehaviorRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const CancelBehaviorRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CancelBehaviorRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CancelBehaviorRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CancelBehaviorRequest)
    MergeFrom(*source);
  }
}

void CancelBehaviorRequest::MergeFrom(const CancelBehaviorRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CancelBehaviorRequest)
  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;

}

void CancelBehaviorRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CancelBehaviorRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CancelBehaviorRequest::CopyFrom(const CancelBehaviorRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CancelBehaviorRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CancelBehaviorRequest::IsInitialized() const {
  return true;
}

void CancelBehaviorRequest::InternalSwap(CancelBehaviorRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CancelBehaviorRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CancelBehaviorResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_CancelBehaviorResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class CancelBehaviorResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const CancelBehaviorResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
CancelBehaviorResponse::_Internal::status(const CancelBehaviorResponse* msg) {
  return *msg->status_;
}
void CancelBehaviorResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
CancelBehaviorResponse::CancelBehaviorResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CancelBehaviorResponse)
}
CancelBehaviorResponse::CancelBehaviorResponse(const CancelBehaviorResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CancelBehaviorResponse)
}

void CancelBehaviorResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CancelBehaviorResponse_messages_2eproto.base);
  status_ = nullptr;
}

CancelBehaviorResponse::~CancelBehaviorResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CancelBehaviorResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CancelBehaviorResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void CancelBehaviorResponse::ArenaDtor(void* object) {
  CancelBehaviorResponse* _this = reinterpret_cast< CancelBehaviorResponse* >(object);
  (void)_this;
}
void CancelBehaviorResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CancelBehaviorResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CancelBehaviorResponse& CancelBehaviorResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CancelBehaviorResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void CancelBehaviorResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CancelBehaviorResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CancelBehaviorResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* CancelBehaviorResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CancelBehaviorResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.CancelBehaviorResponse)
  return target;
}

size_t CancelBehaviorResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CancelBehaviorResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 CancelBehaviorResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CancelBehaviorResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const CancelBehaviorResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CancelBehaviorResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CancelBehaviorResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CancelBehaviorResponse)
    MergeFrom(*source);
  }
}

void CancelBehaviorResponse::MergeFrom(const CancelBehaviorResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CancelBehaviorResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void CancelBehaviorResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CancelBehaviorResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CancelBehaviorResponse::CopyFrom(const CancelBehaviorResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CancelBehaviorResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CancelBehaviorResponse::IsInitialized() const {
  return true;
}

void CancelBehaviorResponse::InternalSwap(CancelBehaviorResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CancelBehaviorResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void GoToPoseRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_GoToPoseRequest_default_instance_._instance.get_mutable()->motion_prof_ = const_cast< ::Anki::Vector::external_interface::PathMotionProfile*>(
      ::Anki::Vector::external_interface::PathMotionProfile::internal_default_instance());
}
class GoToPoseRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::PathMotionProfile& motion_prof(const GoToPoseRequest* msg);
};

const ::Anki::Vector::external_interface::PathMotionProfile&
GoToPoseRequest::_Internal::motion_prof(const GoToPoseRequest* msg) {
  return *msg->motion_prof_;
}
GoToPoseRequest::GoToPoseRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.GoToPoseRequest)
}
GoToPoseRequest::GoToPoseRequest(const GoToPoseRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_motion_prof()) {
    motion_prof_ = new ::Anki::Vector::external_interface::PathMotionProfile(*from.motion_prof_);
  } else {
    motion_prof_ = nullptr;
  }
  ::memcpy(&x_mm_, &from.x_mm_,
    static_cast<size_t>(reinterpret_cast<char*>(&num_retries_) -
    reinterpret_cast<char*>(&x_mm_)) + sizeof(num_retries_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.GoToPoseRequest)
}

void GoToPoseRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_GoToPoseRequest_messages_2eproto.base);
  ::memset(&motion_prof_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&motion_prof_)) + sizeof(num_retries_));
}

GoToPoseRequest::~GoToPoseRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.GoToPoseRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void GoToPoseRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete motion_prof_;
}

void GoToPoseRequest::ArenaDtor(void* object) {
  GoToPoseRequest* _this = reinterpret_cast< GoToPoseRequest* >(object);
  (void)_this;
}
void GoToPoseRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void GoToPoseRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const GoToPoseRequest& GoToPoseRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_GoToPoseRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void GoToPoseRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.GoToPoseRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && motion_prof_ != nullptr) {
    delete motion_prof_;
  }
  motion_prof_ = nullptr;
  ::memset(&x_mm_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&x_mm_)) + sizeof(num_retries_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* GoToPoseRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float x_mm = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          x_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float y_mm = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          y_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float rad = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          rad_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_motion_prof(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 id_tag = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          id_tag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 num_retries = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          num_retries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* GoToPoseRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.GoToPoseRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float x_mm = 1;
  if (!(this->x_mm() <= 0 && this->x_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_x_mm(), target);
  }

  // float y_mm = 2;
  if (!(this->y_mm() <= 0 && this->y_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_y_mm(), target);
  }

  // float rad = 3;
  if (!(this->rad() <= 0 && this->rad() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_rad(), target);
  }

  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 4;
  if (this->has_motion_prof()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::motion_prof(this), target, stream);
  }

  // int32 id_tag = 5;
  if (this->id_tag() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_id_tag(), target);
  }

  // int32 num_retries = 6;
  if (this->num_retries() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(6, this->_internal_num_retries(), 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:Anki.Vector.external_interface.GoToPoseRequest)
  return target;
}

size_t GoToPoseRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.GoToPoseRequest)
  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;

  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 4;
  if (this->has_motion_prof()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *motion_prof_);
  }

  // float x_mm = 1;
  if (!(this->x_mm() <= 0 && this->x_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // float y_mm = 2;
  if (!(this->y_mm() <= 0 && this->y_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // float rad = 3;
  if (!(this->rad() <= 0 && this->rad() >= 0)) {
    total_size += 1 + 4;
  }

  // int32 id_tag = 5;
  if (this->id_tag() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_id_tag());
  }

  // int32 num_retries = 6;
  if (this->num_retries() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_num_retries());
  }

  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 GoToPoseRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.GoToPoseRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const GoToPoseRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<GoToPoseRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.GoToPoseRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.GoToPoseRequest)
    MergeFrom(*source);
  }
}

void GoToPoseRequest::MergeFrom(const GoToPoseRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.GoToPoseRequest)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_motion_prof()) {
    _internal_mutable_motion_prof()->::Anki::Vector::external_interface::PathMotionProfile::MergeFrom(from._internal_motion_prof());
  }
  if (!(from.x_mm() <= 0 && from.x_mm() >= 0)) {
    _internal_set_x_mm(from._internal_x_mm());
  }
  if (!(from.y_mm() <= 0 && from.y_mm() >= 0)) {
    _internal_set_y_mm(from._internal_y_mm());
  }
  if (!(from.rad() <= 0 && from.rad() >= 0)) {
    _internal_set_rad(from._internal_rad());
  }
  if (from.id_tag() != 0) {
    _internal_set_id_tag(from._internal_id_tag());
  }
  if (from.num_retries() != 0) {
    _internal_set_num_retries(from._internal_num_retries());
  }
}

void GoToPoseRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.GoToPoseRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void GoToPoseRequest::CopyFrom(const GoToPoseRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.GoToPoseRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool GoToPoseRequest::IsInitialized() const {
  return true;
}

void GoToPoseRequest::InternalSwap(GoToPoseRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(GoToPoseRequest, num_retries_)
      + sizeof(GoToPoseRequest::num_retries_)
      - PROTOBUF_FIELD_OFFSET(GoToPoseRequest, motion_prof_)>(
          reinterpret_cast<char*>(&motion_prof_),
          reinterpret_cast<char*>(&other->motion_prof_));
}

::PROTOBUF_NAMESPACE_ID::Metadata GoToPoseRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void GoToPoseResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_GoToPoseResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_GoToPoseResponse_default_instance_._instance.get_mutable()->result_ = const_cast< ::Anki::Vector::external_interface::ActionResult*>(
      ::Anki::Vector::external_interface::ActionResult::internal_default_instance());
}
class GoToPoseResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const GoToPoseResponse* msg);
  static const ::Anki::Vector::external_interface::ActionResult& result(const GoToPoseResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
GoToPoseResponse::_Internal::status(const GoToPoseResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::ActionResult&
GoToPoseResponse::_Internal::result(const GoToPoseResponse* msg) {
  return *msg->result_;
}
void GoToPoseResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
GoToPoseResponse::GoToPoseResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.GoToPoseResponse)
}
GoToPoseResponse::GoToPoseResponse(const GoToPoseResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_result()) {
    result_ = new ::Anki::Vector::external_interface::ActionResult(*from.result_);
  } else {
    result_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.GoToPoseResponse)
}

void GoToPoseResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_GoToPoseResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

GoToPoseResponse::~GoToPoseResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.GoToPoseResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void GoToPoseResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete result_;
}

void GoToPoseResponse::ArenaDtor(void* object) {
  GoToPoseResponse* _this = reinterpret_cast< GoToPoseResponse* >(object);
  (void)_this;
}
void GoToPoseResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void GoToPoseResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const GoToPoseResponse& GoToPoseResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_GoToPoseResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void GoToPoseResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.GoToPoseResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* GoToPoseResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ActionResult result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_result(), 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* GoToPoseResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.GoToPoseResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::result(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.GoToPoseResponse)
  return target;
}

size_t GoToPoseResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.GoToPoseResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *result_);
  }

  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 GoToPoseResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.GoToPoseResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const GoToPoseResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<GoToPoseResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.GoToPoseResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.GoToPoseResponse)
    MergeFrom(*source);
  }
}

void GoToPoseResponse::MergeFrom(const GoToPoseResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.GoToPoseResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_result()) {
    _internal_mutable_result()->::Anki::Vector::external_interface::ActionResult::MergeFrom(from._internal_result());
  }
}

void GoToPoseResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.GoToPoseResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void GoToPoseResponse::CopyFrom(const GoToPoseResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.GoToPoseResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool GoToPoseResponse::IsInitialized() const {
  return true;
}

void GoToPoseResponse::InternalSwap(GoToPoseResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(GoToPoseResponse, result_)
      + sizeof(GoToPoseResponse::result_)
      - PROTOBUF_FIELD_OFFSET(GoToPoseResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata GoToPoseResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void DockWithCubeRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_DockWithCubeRequest_default_instance_._instance.get_mutable()->motion_prof_ = const_cast< ::Anki::Vector::external_interface::PathMotionProfile*>(
      ::Anki::Vector::external_interface::PathMotionProfile::internal_default_instance());
}
class DockWithCubeRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::PathMotionProfile& motion_prof(const DockWithCubeRequest* msg);
};

const ::Anki::Vector::external_interface::PathMotionProfile&
DockWithCubeRequest::_Internal::motion_prof(const DockWithCubeRequest* msg) {
  return *msg->motion_prof_;
}
DockWithCubeRequest::DockWithCubeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DockWithCubeRequest)
}
DockWithCubeRequest::DockWithCubeRequest(const DockWithCubeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_motion_prof()) {
    motion_prof_ = new ::Anki::Vector::external_interface::PathMotionProfile(*from.motion_prof_);
  } else {
    motion_prof_ = nullptr;
  }
  ::memcpy(&object_id_, &from.object_id_,
    static_cast<size_t>(reinterpret_cast<char*>(&num_retries_) -
    reinterpret_cast<char*>(&object_id_)) + sizeof(num_retries_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DockWithCubeRequest)
}

void DockWithCubeRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DockWithCubeRequest_messages_2eproto.base);
  ::memset(&motion_prof_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&motion_prof_)) + sizeof(num_retries_));
}

DockWithCubeRequest::~DockWithCubeRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DockWithCubeRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void DockWithCubeRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete motion_prof_;
}

void DockWithCubeRequest::ArenaDtor(void* object) {
  DockWithCubeRequest* _this = reinterpret_cast< DockWithCubeRequest* >(object);
  (void)_this;
}
void DockWithCubeRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void DockWithCubeRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const DockWithCubeRequest& DockWithCubeRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DockWithCubeRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void DockWithCubeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DockWithCubeRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && motion_prof_ != nullptr) {
    delete motion_prof_;
  }
  motion_prof_ = nullptr;
  ::memset(&object_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&object_id_)) + sizeof(num_retries_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DockWithCubeRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 object_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float distance_from_marker_mm = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          distance_from_marker_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float approach_angle_rad = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          approach_angle_rad_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.AlignmentType alignment_type = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_alignment_type(static_cast<::Anki::Vector::external_interface::AlignmentType>(val));
        } else goto handle_unusual;
        continue;
      // bool use_approach_angle = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          use_approach_angle_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool use_pre_dock_pose = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          use_pre_dock_pose_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_motion_prof(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 id_tag = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          id_tag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 num_retries = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
          num_retries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* DockWithCubeRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.DockWithCubeRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 object_id = 1;
  if (this->object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_object_id(), target);
  }

  // float distance_from_marker_mm = 2;
  if (!(this->distance_from_marker_mm() <= 0 && this->distance_from_marker_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_distance_from_marker_mm(), target);
  }

  // float approach_angle_rad = 3;
  if (!(this->approach_angle_rad() <= 0 && this->approach_angle_rad() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_approach_angle_rad(), target);
  }

  // .Anki.Vector.external_interface.AlignmentType alignment_type = 4;
  if (this->alignment_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      4, this->_internal_alignment_type(), target);
  }

  // bool use_approach_angle = 5;
  if (this->use_approach_angle() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_use_approach_angle(), target);
  }

  // bool use_pre_dock_pose = 6;
  if (this->use_pre_dock_pose() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_use_pre_dock_pose(), target);
  }

  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 7;
  if (this->has_motion_prof()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        7, _Internal::motion_prof(this), target, stream);
  }

  // int32 id_tag = 8;
  if (this->id_tag() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(8, this->_internal_id_tag(), target);
  }

  // int32 num_retries = 9;
  if (this->num_retries() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(9, this->_internal_num_retries(), 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:Anki.Vector.external_interface.DockWithCubeRequest)
  return target;
}

size_t DockWithCubeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DockWithCubeRequest)
  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;

  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 7;
  if (this->has_motion_prof()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *motion_prof_);
  }

  // int32 object_id = 1;
  if (this->object_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_object_id());
  }

  // float distance_from_marker_mm = 2;
  if (!(this->distance_from_marker_mm() <= 0 && this->distance_from_marker_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // float approach_angle_rad = 3;
  if (!(this->approach_angle_rad() <= 0 && this->approach_angle_rad() >= 0)) {
    total_size += 1 + 4;
  }

  // .Anki.Vector.external_interface.AlignmentType alignment_type = 4;
  if (this->alignment_type() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_alignment_type());
  }

  // bool use_approach_angle = 5;
  if (this->use_approach_angle() != 0) {
    total_size += 1 + 1;
  }

  // bool use_pre_dock_pose = 6;
  if (this->use_pre_dock_pose() != 0) {
    total_size += 1 + 1;
  }

  // int32 id_tag = 8;
  if (this->id_tag() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_id_tag());
  }

  // int32 num_retries = 9;
  if (this->num_retries() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_num_retries());
  }

  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 DockWithCubeRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.DockWithCubeRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const DockWithCubeRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DockWithCubeRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.DockWithCubeRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.DockWithCubeRequest)
    MergeFrom(*source);
  }
}

void DockWithCubeRequest::MergeFrom(const DockWithCubeRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.DockWithCubeRequest)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_motion_prof()) {
    _internal_mutable_motion_prof()->::Anki::Vector::external_interface::PathMotionProfile::MergeFrom(from._internal_motion_prof());
  }
  if (from.object_id() != 0) {
    _internal_set_object_id(from._internal_object_id());
  }
  if (!(from.distance_from_marker_mm() <= 0 && from.distance_from_marker_mm() >= 0)) {
    _internal_set_distance_from_marker_mm(from._internal_distance_from_marker_mm());
  }
  if (!(from.approach_angle_rad() <= 0 && from.approach_angle_rad() >= 0)) {
    _internal_set_approach_angle_rad(from._internal_approach_angle_rad());
  }
  if (from.alignment_type() != 0) {
    _internal_set_alignment_type(from._internal_alignment_type());
  }
  if (from.use_approach_angle() != 0) {
    _internal_set_use_approach_angle(from._internal_use_approach_angle());
  }
  if (from.use_pre_dock_pose() != 0) {
    _internal_set_use_pre_dock_pose(from._internal_use_pre_dock_pose());
  }
  if (from.id_tag() != 0) {
    _internal_set_id_tag(from._internal_id_tag());
  }
  if (from.num_retries() != 0) {
    _internal_set_num_retries(from._internal_num_retries());
  }
}

void DockWithCubeRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.DockWithCubeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DockWithCubeRequest::CopyFrom(const DockWithCubeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DockWithCubeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DockWithCubeRequest::IsInitialized() const {
  return true;
}

void DockWithCubeRequest::InternalSwap(DockWithCubeRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(DockWithCubeRequest, num_retries_)
      + sizeof(DockWithCubeRequest::num_retries_)
      - PROTOBUF_FIELD_OFFSET(DockWithCubeRequest, motion_prof_)>(
          reinterpret_cast<char*>(&motion_prof_),
          reinterpret_cast<char*>(&other->motion_prof_));
}

::PROTOBUF_NAMESPACE_ID::Metadata DockWithCubeRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void DockWithCubeResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_DockWithCubeResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_DockWithCubeResponse_default_instance_._instance.get_mutable()->result_ = const_cast< ::Anki::Vector::external_interface::ActionResult*>(
      ::Anki::Vector::external_interface::ActionResult::internal_default_instance());
}
class DockWithCubeResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const DockWithCubeResponse* msg);
  static const ::Anki::Vector::external_interface::ActionResult& result(const DockWithCubeResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
DockWithCubeResponse::_Internal::status(const DockWithCubeResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::ActionResult&
DockWithCubeResponse::_Internal::result(const DockWithCubeResponse* msg) {
  return *msg->result_;
}
void DockWithCubeResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
DockWithCubeResponse::DockWithCubeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DockWithCubeResponse)
}
DockWithCubeResponse::DockWithCubeResponse(const DockWithCubeResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_result()) {
    result_ = new ::Anki::Vector::external_interface::ActionResult(*from.result_);
  } else {
    result_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DockWithCubeResponse)
}

void DockWithCubeResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DockWithCubeResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

DockWithCubeResponse::~DockWithCubeResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DockWithCubeResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void DockWithCubeResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete result_;
}

void DockWithCubeResponse::ArenaDtor(void* object) {
  DockWithCubeResponse* _this = reinterpret_cast< DockWithCubeResponse* >(object);
  (void)_this;
}
void DockWithCubeResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void DockWithCubeResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const DockWithCubeResponse& DockWithCubeResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DockWithCubeResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void DockWithCubeResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DockWithCubeResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DockWithCubeResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ActionResult result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_result(), 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* DockWithCubeResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.DockWithCubeResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::result(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.DockWithCubeResponse)
  return target;
}

size_t DockWithCubeResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DockWithCubeResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *result_);
  }

  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 DockWithCubeResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.DockWithCubeResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const DockWithCubeResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DockWithCubeResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.DockWithCubeResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.DockWithCubeResponse)
    MergeFrom(*source);
  }
}

void DockWithCubeResponse::MergeFrom(const DockWithCubeResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.DockWithCubeResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_result()) {
    _internal_mutable_result()->::Anki::Vector::external_interface::ActionResult::MergeFrom(from._internal_result());
  }
}

void DockWithCubeResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.DockWithCubeResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DockWithCubeResponse::CopyFrom(const DockWithCubeResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DockWithCubeResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DockWithCubeResponse::IsInitialized() const {
  return true;
}

void DockWithCubeResponse::InternalSwap(DockWithCubeResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(DockWithCubeResponse, result_)
      + sizeof(DockWithCubeResponse::result_)
      - PROTOBUF_FIELD_OFFSET(DockWithCubeResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata DockWithCubeResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void DriveStraightRequest::InitAsDefaultInstance() {
}
class DriveStraightRequest::_Internal {
 public:
};

DriveStraightRequest::DriveStraightRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DriveStraightRequest)
}
DriveStraightRequest::DriveStraightRequest(const DriveStraightRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&speed_mmps_, &from.speed_mmps_,
    static_cast<size_t>(reinterpret_cast<char*>(&num_retries_) -
    reinterpret_cast<char*>(&speed_mmps_)) + sizeof(num_retries_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DriveStraightRequest)
}

void DriveStraightRequest::SharedCtor() {
  ::memset(&speed_mmps_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&speed_mmps_)) + sizeof(num_retries_));
}

DriveStraightRequest::~DriveStraightRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DriveStraightRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void DriveStraightRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void DriveStraightRequest::ArenaDtor(void* object) {
  DriveStraightRequest* _this = reinterpret_cast< DriveStraightRequest* >(object);
  (void)_this;
}
void DriveStraightRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void DriveStraightRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const DriveStraightRequest& DriveStraightRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DriveStraightRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void DriveStraightRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DriveStraightRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&speed_mmps_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&speed_mmps_)) + sizeof(num_retries_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DriveStraightRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float speed_mmps = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          speed_mmps_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float dist_mm = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          dist_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // bool should_play_animation = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          should_play_animation_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 id_tag = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          id_tag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 num_retries = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          num_retries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* DriveStraightRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.DriveStraightRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float speed_mmps = 1;
  if (!(this->speed_mmps() <= 0 && this->speed_mmps() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_speed_mmps(), target);
  }

  // float dist_mm = 2;
  if (!(this->dist_mm() <= 0 && this->dist_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_dist_mm(), target);
  }

  // bool should_play_animation = 3;
  if (this->should_play_animation() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_should_play_animation(), target);
  }

  // int32 id_tag = 4;
  if (this->id_tag() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_id_tag(), target);
  }

  // int32 num_retries = 5;
  if (this->num_retries() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_num_retries(), 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:Anki.Vector.external_interface.DriveStraightRequest)
  return target;
}

size_t DriveStraightRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DriveStraightRequest)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float speed_mmps = 1;
  if (!(this->speed_mmps() <= 0 && this->speed_mmps() >= 0)) {
    total_size += 1 + 4;
  }

  // float dist_mm = 2;
  if (!(this->dist_mm() <= 0 && this->dist_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // bool should_play_animation = 3;
  if (this->should_play_animation() != 0) {
    total_size += 1 + 1;
  }

  // int32 id_tag = 4;
  if (this->id_tag() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_id_tag());
  }

  // int32 num_retries = 5;
  if (this->num_retries() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_num_retries());
  }

  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 DriveStraightRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.DriveStraightRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const DriveStraightRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DriveStraightRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.DriveStraightRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.DriveStraightRequest)
    MergeFrom(*source);
  }
}

void DriveStraightRequest::MergeFrom(const DriveStraightRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.DriveStraightRequest)
  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.speed_mmps() <= 0 && from.speed_mmps() >= 0)) {
    _internal_set_speed_mmps(from._internal_speed_mmps());
  }
  if (!(from.dist_mm() <= 0 && from.dist_mm() >= 0)) {
    _internal_set_dist_mm(from._internal_dist_mm());
  }
  if (from.should_play_animation() != 0) {
    _internal_set_should_play_animation(from._internal_should_play_animation());
  }
  if (from.id_tag() != 0) {
    _internal_set_id_tag(from._internal_id_tag());
  }
  if (from.num_retries() != 0) {
    _internal_set_num_retries(from._internal_num_retries());
  }
}

void DriveStraightRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.DriveStraightRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DriveStraightRequest::CopyFrom(const DriveStraightRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DriveStraightRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DriveStraightRequest::IsInitialized() const {
  return true;
}

void DriveStraightRequest::InternalSwap(DriveStraightRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(DriveStraightRequest, num_retries_)
      + sizeof(DriveStraightRequest::num_retries_)
      - PROTOBUF_FIELD_OFFSET(DriveStraightRequest, speed_mmps_)>(
          reinterpret_cast<char*>(&speed_mmps_),
          reinterpret_cast<char*>(&other->speed_mmps_));
}

::PROTOBUF_NAMESPACE_ID::Metadata DriveStraightRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void DriveStraightResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_DriveStraightResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_DriveStraightResponse_default_instance_._instance.get_mutable()->result_ = const_cast< ::Anki::Vector::external_interface::ActionResult*>(
      ::Anki::Vector::external_interface::ActionResult::internal_default_instance());
}
class DriveStraightResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const DriveStraightResponse* msg);
  static const ::Anki::Vector::external_interface::ActionResult& result(const DriveStraightResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
DriveStraightResponse::_Internal::status(const DriveStraightResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::ActionResult&
DriveStraightResponse::_Internal::result(const DriveStraightResponse* msg) {
  return *msg->result_;
}
void DriveStraightResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
DriveStraightResponse::DriveStraightResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DriveStraightResponse)
}
DriveStraightResponse::DriveStraightResponse(const DriveStraightResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_result()) {
    result_ = new ::Anki::Vector::external_interface::ActionResult(*from.result_);
  } else {
    result_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DriveStraightResponse)
}

void DriveStraightResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DriveStraightResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

DriveStraightResponse::~DriveStraightResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DriveStraightResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void DriveStraightResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete result_;
}

void DriveStraightResponse::ArenaDtor(void* object) {
  DriveStraightResponse* _this = reinterpret_cast< DriveStraightResponse* >(object);
  (void)_this;
}
void DriveStraightResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void DriveStraightResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const DriveStraightResponse& DriveStraightResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DriveStraightResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void DriveStraightResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DriveStraightResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DriveStraightResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ActionResult result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_result(), 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* DriveStraightResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.DriveStraightResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::result(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.DriveStraightResponse)
  return target;
}

size_t DriveStraightResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DriveStraightResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *result_);
  }

  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 DriveStraightResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.DriveStraightResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const DriveStraightResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DriveStraightResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.DriveStraightResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.DriveStraightResponse)
    MergeFrom(*source);
  }
}

void DriveStraightResponse::MergeFrom(const DriveStraightResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.DriveStraightResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_result()) {
    _internal_mutable_result()->::Anki::Vector::external_interface::ActionResult::MergeFrom(from._internal_result());
  }
}

void DriveStraightResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.DriveStraightResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DriveStraightResponse::CopyFrom(const DriveStraightResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DriveStraightResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DriveStraightResponse::IsInitialized() const {
  return true;
}

void DriveStraightResponse::InternalSwap(DriveStraightResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(DriveStraightResponse, result_)
      + sizeof(DriveStraightResponse::result_)
      - PROTOBUF_FIELD_OFFSET(DriveStraightResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata DriveStraightResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void TurnInPlaceRequest::InitAsDefaultInstance() {
}
class TurnInPlaceRequest::_Internal {
 public:
};

TurnInPlaceRequest::TurnInPlaceRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.TurnInPlaceRequest)
}
TurnInPlaceRequest::TurnInPlaceRequest(const TurnInPlaceRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&angle_rad_, &from.angle_rad_,
    static_cast<size_t>(reinterpret_cast<char*>(&num_retries_) -
    reinterpret_cast<char*>(&angle_rad_)) + sizeof(num_retries_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.TurnInPlaceRequest)
}

void TurnInPlaceRequest::SharedCtor() {
  ::memset(&angle_rad_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&angle_rad_)) + sizeof(num_retries_));
}

TurnInPlaceRequest::~TurnInPlaceRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.TurnInPlaceRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void TurnInPlaceRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void TurnInPlaceRequest::ArenaDtor(void* object) {
  TurnInPlaceRequest* _this = reinterpret_cast< TurnInPlaceRequest* >(object);
  (void)_this;
}
void TurnInPlaceRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void TurnInPlaceRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const TurnInPlaceRequest& TurnInPlaceRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_TurnInPlaceRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void TurnInPlaceRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.TurnInPlaceRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&angle_rad_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&angle_rad_)) + sizeof(num_retries_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* TurnInPlaceRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float angle_rad = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          angle_rad_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float speed_rad_per_sec = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          speed_rad_per_sec_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float accel_rad_per_sec2 = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          accel_rad_per_sec2_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float tol_rad = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          tol_rad_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // uint32 is_absolute = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          is_absolute_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 id_tag = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          id_tag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 num_retries = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          num_retries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* TurnInPlaceRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.TurnInPlaceRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float angle_rad = 1;
  if (!(this->angle_rad() <= 0 && this->angle_rad() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_angle_rad(), target);
  }

  // float speed_rad_per_sec = 2;
  if (!(this->speed_rad_per_sec() <= 0 && this->speed_rad_per_sec() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_speed_rad_per_sec(), target);
  }

  // float accel_rad_per_sec2 = 3;
  if (!(this->accel_rad_per_sec2() <= 0 && this->accel_rad_per_sec2() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_accel_rad_per_sec2(), target);
  }

  // float tol_rad = 4;
  if (!(this->tol_rad() <= 0 && this->tol_rad() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_tol_rad(), target);
  }

  // uint32 is_absolute = 5;
  if (this->is_absolute() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(5, this->_internal_is_absolute(), target);
  }

  // int32 id_tag = 6;
  if (this->id_tag() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(6, this->_internal_id_tag(), target);
  }

  // int32 num_retries = 7;
  if (this->num_retries() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_num_retries(), 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:Anki.Vector.external_interface.TurnInPlaceRequest)
  return target;
}

size_t TurnInPlaceRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.TurnInPlaceRequest)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float angle_rad = 1;
  if (!(this->angle_rad() <= 0 && this->angle_rad() >= 0)) {
    total_size += 1 + 4;
  }

  // float speed_rad_per_sec = 2;
  if (!(this->speed_rad_per_sec() <= 0 && this->speed_rad_per_sec() >= 0)) {
    total_size += 1 + 4;
  }

  // float accel_rad_per_sec2 = 3;
  if (!(this->accel_rad_per_sec2() <= 0 && this->accel_rad_per_sec2() >= 0)) {
    total_size += 1 + 4;
  }

  // float tol_rad = 4;
  if (!(this->tol_rad() <= 0 && this->tol_rad() >= 0)) {
    total_size += 1 + 4;
  }

  // uint32 is_absolute = 5;
  if (this->is_absolute() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_is_absolute());
  }

  // int32 id_tag = 6;
  if (this->id_tag() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_id_tag());
  }

  // int32 num_retries = 7;
  if (this->num_retries() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_num_retries());
  }

  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 TurnInPlaceRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.TurnInPlaceRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const TurnInPlaceRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<TurnInPlaceRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.TurnInPlaceRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.TurnInPlaceRequest)
    MergeFrom(*source);
  }
}

void TurnInPlaceRequest::MergeFrom(const TurnInPlaceRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.TurnInPlaceRequest)
  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.angle_rad() <= 0 && from.angle_rad() >= 0)) {
    _internal_set_angle_rad(from._internal_angle_rad());
  }
  if (!(from.speed_rad_per_sec() <= 0 && from.speed_rad_per_sec() >= 0)) {
    _internal_set_speed_rad_per_sec(from._internal_speed_rad_per_sec());
  }
  if (!(from.accel_rad_per_sec2() <= 0 && from.accel_rad_per_sec2() >= 0)) {
    _internal_set_accel_rad_per_sec2(from._internal_accel_rad_per_sec2());
  }
  if (!(from.tol_rad() <= 0 && from.tol_rad() >= 0)) {
    _internal_set_tol_rad(from._internal_tol_rad());
  }
  if (from.is_absolute() != 0) {
    _internal_set_is_absolute(from._internal_is_absolute());
  }
  if (from.id_tag() != 0) {
    _internal_set_id_tag(from._internal_id_tag());
  }
  if (from.num_retries() != 0) {
    _internal_set_num_retries(from._internal_num_retries());
  }
}

void TurnInPlaceRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.TurnInPlaceRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void TurnInPlaceRequest::CopyFrom(const TurnInPlaceRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.TurnInPlaceRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool TurnInPlaceRequest::IsInitialized() const {
  return true;
}

void TurnInPlaceRequest::InternalSwap(TurnInPlaceRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TurnInPlaceRequest, num_retries_)
      + sizeof(TurnInPlaceRequest::num_retries_)
      - PROTOBUF_FIELD_OFFSET(TurnInPlaceRequest, angle_rad_)>(
          reinterpret_cast<char*>(&angle_rad_),
          reinterpret_cast<char*>(&other->angle_rad_));
}

::PROTOBUF_NAMESPACE_ID::Metadata TurnInPlaceRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void TurnInPlaceResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_TurnInPlaceResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_TurnInPlaceResponse_default_instance_._instance.get_mutable()->result_ = const_cast< ::Anki::Vector::external_interface::ActionResult*>(
      ::Anki::Vector::external_interface::ActionResult::internal_default_instance());
}
class TurnInPlaceResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const TurnInPlaceResponse* msg);
  static const ::Anki::Vector::external_interface::ActionResult& result(const TurnInPlaceResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
TurnInPlaceResponse::_Internal::status(const TurnInPlaceResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::ActionResult&
TurnInPlaceResponse::_Internal::result(const TurnInPlaceResponse* msg) {
  return *msg->result_;
}
void TurnInPlaceResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
TurnInPlaceResponse::TurnInPlaceResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.TurnInPlaceResponse)
}
TurnInPlaceResponse::TurnInPlaceResponse(const TurnInPlaceResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_result()) {
    result_ = new ::Anki::Vector::external_interface::ActionResult(*from.result_);
  } else {
    result_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.TurnInPlaceResponse)
}

void TurnInPlaceResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_TurnInPlaceResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

TurnInPlaceResponse::~TurnInPlaceResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.TurnInPlaceResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void TurnInPlaceResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete result_;
}

void TurnInPlaceResponse::ArenaDtor(void* object) {
  TurnInPlaceResponse* _this = reinterpret_cast< TurnInPlaceResponse* >(object);
  (void)_this;
}
void TurnInPlaceResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void TurnInPlaceResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const TurnInPlaceResponse& TurnInPlaceResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_TurnInPlaceResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void TurnInPlaceResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.TurnInPlaceResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* TurnInPlaceResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ActionResult result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_result(), 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* TurnInPlaceResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.TurnInPlaceResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::result(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.TurnInPlaceResponse)
  return target;
}

size_t TurnInPlaceResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.TurnInPlaceResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *result_);
  }

  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 TurnInPlaceResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.TurnInPlaceResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const TurnInPlaceResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<TurnInPlaceResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.TurnInPlaceResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.TurnInPlaceResponse)
    MergeFrom(*source);
  }
}

void TurnInPlaceResponse::MergeFrom(const TurnInPlaceResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.TurnInPlaceResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_result()) {
    _internal_mutable_result()->::Anki::Vector::external_interface::ActionResult::MergeFrom(from._internal_result());
  }
}

void TurnInPlaceResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.TurnInPlaceResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void TurnInPlaceResponse::CopyFrom(const TurnInPlaceResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.TurnInPlaceResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool TurnInPlaceResponse::IsInitialized() const {
  return true;
}

void TurnInPlaceResponse::InternalSwap(TurnInPlaceResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TurnInPlaceResponse, result_)
      + sizeof(TurnInPlaceResponse::result_)
      - PROTOBUF_FIELD_OFFSET(TurnInPlaceResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata TurnInPlaceResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void SetHeadAngleRequest::InitAsDefaultInstance() {
}
class SetHeadAngleRequest::_Internal {
 public:
};

SetHeadAngleRequest::SetHeadAngleRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SetHeadAngleRequest)
}
SetHeadAngleRequest::SetHeadAngleRequest(const SetHeadAngleRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&angle_rad_, &from.angle_rad_,
    static_cast<size_t>(reinterpret_cast<char*>(&num_retries_) -
    reinterpret_cast<char*>(&angle_rad_)) + sizeof(num_retries_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SetHeadAngleRequest)
}

void SetHeadAngleRequest::SharedCtor() {
  ::memset(&angle_rad_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&angle_rad_)) + sizeof(num_retries_));
}

SetHeadAngleRequest::~SetHeadAngleRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SetHeadAngleRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SetHeadAngleRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void SetHeadAngleRequest::ArenaDtor(void* object) {
  SetHeadAngleRequest* _this = reinterpret_cast< SetHeadAngleRequest* >(object);
  (void)_this;
}
void SetHeadAngleRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SetHeadAngleRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SetHeadAngleRequest& SetHeadAngleRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SetHeadAngleRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void SetHeadAngleRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SetHeadAngleRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&angle_rad_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&angle_rad_)) + sizeof(num_retries_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SetHeadAngleRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float angle_rad = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          angle_rad_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float max_speed_rad_per_sec = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          max_speed_rad_per_sec_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float accel_rad_per_sec2 = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          accel_rad_per_sec2_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float duration_sec = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          duration_sec_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 id_tag = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          id_tag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 num_retries = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          num_retries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* SetHeadAngleRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.SetHeadAngleRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float angle_rad = 1;
  if (!(this->angle_rad() <= 0 && this->angle_rad() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_angle_rad(), target);
  }

  // float max_speed_rad_per_sec = 2;
  if (!(this->max_speed_rad_per_sec() <= 0 && this->max_speed_rad_per_sec() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_max_speed_rad_per_sec(), target);
  }

  // float accel_rad_per_sec2 = 3;
  if (!(this->accel_rad_per_sec2() <= 0 && this->accel_rad_per_sec2() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_accel_rad_per_sec2(), target);
  }

  // float duration_sec = 4;
  if (!(this->duration_sec() <= 0 && this->duration_sec() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_duration_sec(), target);
  }

  // int32 id_tag = 5;
  if (this->id_tag() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_id_tag(), target);
  }

  // int32 num_retries = 6;
  if (this->num_retries() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(6, this->_internal_num_retries(), 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:Anki.Vector.external_interface.SetHeadAngleRequest)
  return target;
}

size_t SetHeadAngleRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SetHeadAngleRequest)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float angle_rad = 1;
  if (!(this->angle_rad() <= 0 && this->angle_rad() >= 0)) {
    total_size += 1 + 4;
  }

  // float max_speed_rad_per_sec = 2;
  if (!(this->max_speed_rad_per_sec() <= 0 && this->max_speed_rad_per_sec() >= 0)) {
    total_size += 1 + 4;
  }

  // float accel_rad_per_sec2 = 3;
  if (!(this->accel_rad_per_sec2() <= 0 && this->accel_rad_per_sec2() >= 0)) {
    total_size += 1 + 4;
  }

  // float duration_sec = 4;
  if (!(this->duration_sec() <= 0 && this->duration_sec() >= 0)) {
    total_size += 1 + 4;
  }

  // int32 id_tag = 5;
  if (this->id_tag() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_id_tag());
  }

  // int32 num_retries = 6;
  if (this->num_retries() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_num_retries());
  }

  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 SetHeadAngleRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.SetHeadAngleRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const SetHeadAngleRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SetHeadAngleRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.SetHeadAngleRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.SetHeadAngleRequest)
    MergeFrom(*source);
  }
}

void SetHeadAngleRequest::MergeFrom(const SetHeadAngleRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.SetHeadAngleRequest)
  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.angle_rad() <= 0 && from.angle_rad() >= 0)) {
    _internal_set_angle_rad(from._internal_angle_rad());
  }
  if (!(from.max_speed_rad_per_sec() <= 0 && from.max_speed_rad_per_sec() >= 0)) {
    _internal_set_max_speed_rad_per_sec(from._internal_max_speed_rad_per_sec());
  }
  if (!(from.accel_rad_per_sec2() <= 0 && from.accel_rad_per_sec2() >= 0)) {
    _internal_set_accel_rad_per_sec2(from._internal_accel_rad_per_sec2());
  }
  if (!(from.duration_sec() <= 0 && from.duration_sec() >= 0)) {
    _internal_set_duration_sec(from._internal_duration_sec());
  }
  if (from.id_tag() != 0) {
    _internal_set_id_tag(from._internal_id_tag());
  }
  if (from.num_retries() != 0) {
    _internal_set_num_retries(from._internal_num_retries());
  }
}

void SetHeadAngleRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.SetHeadAngleRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SetHeadAngleRequest::CopyFrom(const SetHeadAngleRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SetHeadAngleRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SetHeadAngleRequest::IsInitialized() const {
  return true;
}

void SetHeadAngleRequest::InternalSwap(SetHeadAngleRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SetHeadAngleRequest, num_retries_)
      + sizeof(SetHeadAngleRequest::num_retries_)
      - PROTOBUF_FIELD_OFFSET(SetHeadAngleRequest, angle_rad_)>(
          reinterpret_cast<char*>(&angle_rad_),
          reinterpret_cast<char*>(&other->angle_rad_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SetHeadAngleRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void SetHeadAngleResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_SetHeadAngleResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_SetHeadAngleResponse_default_instance_._instance.get_mutable()->result_ = const_cast< ::Anki::Vector::external_interface::ActionResult*>(
      ::Anki::Vector::external_interface::ActionResult::internal_default_instance());
}
class SetHeadAngleResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const SetHeadAngleResponse* msg);
  static const ::Anki::Vector::external_interface::ActionResult& result(const SetHeadAngleResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
SetHeadAngleResponse::_Internal::status(const SetHeadAngleResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::ActionResult&
SetHeadAngleResponse::_Internal::result(const SetHeadAngleResponse* msg) {
  return *msg->result_;
}
void SetHeadAngleResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
SetHeadAngleResponse::SetHeadAngleResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SetHeadAngleResponse)
}
SetHeadAngleResponse::SetHeadAngleResponse(const SetHeadAngleResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_result()) {
    result_ = new ::Anki::Vector::external_interface::ActionResult(*from.result_);
  } else {
    result_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SetHeadAngleResponse)
}

void SetHeadAngleResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SetHeadAngleResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

SetHeadAngleResponse::~SetHeadAngleResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SetHeadAngleResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SetHeadAngleResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete result_;
}

void SetHeadAngleResponse::ArenaDtor(void* object) {
  SetHeadAngleResponse* _this = reinterpret_cast< SetHeadAngleResponse* >(object);
  (void)_this;
}
void SetHeadAngleResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SetHeadAngleResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SetHeadAngleResponse& SetHeadAngleResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SetHeadAngleResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void SetHeadAngleResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SetHeadAngleResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SetHeadAngleResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ActionResult result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_result(), 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* SetHeadAngleResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.SetHeadAngleResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::result(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.SetHeadAngleResponse)
  return target;
}

size_t SetHeadAngleResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SetHeadAngleResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *result_);
  }

  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 SetHeadAngleResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.SetHeadAngleResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const SetHeadAngleResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SetHeadAngleResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.SetHeadAngleResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.SetHeadAngleResponse)
    MergeFrom(*source);
  }
}

void SetHeadAngleResponse::MergeFrom(const SetHeadAngleResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.SetHeadAngleResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_result()) {
    _internal_mutable_result()->::Anki::Vector::external_interface::ActionResult::MergeFrom(from._internal_result());
  }
}

void SetHeadAngleResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.SetHeadAngleResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SetHeadAngleResponse::CopyFrom(const SetHeadAngleResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SetHeadAngleResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SetHeadAngleResponse::IsInitialized() const {
  return true;
}

void SetHeadAngleResponse::InternalSwap(SetHeadAngleResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SetHeadAngleResponse, result_)
      + sizeof(SetHeadAngleResponse::result_)
      - PROTOBUF_FIELD_OFFSET(SetHeadAngleResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SetHeadAngleResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void SetLiftHeightRequest::InitAsDefaultInstance() {
}
class SetLiftHeightRequest::_Internal {
 public:
};

SetLiftHeightRequest::SetLiftHeightRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SetLiftHeightRequest)
}
SetLiftHeightRequest::SetLiftHeightRequest(const SetLiftHeightRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&height_mm_, &from.height_mm_,
    static_cast<size_t>(reinterpret_cast<char*>(&num_retries_) -
    reinterpret_cast<char*>(&height_mm_)) + sizeof(num_retries_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SetLiftHeightRequest)
}

void SetLiftHeightRequest::SharedCtor() {
  ::memset(&height_mm_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&height_mm_)) + sizeof(num_retries_));
}

SetLiftHeightRequest::~SetLiftHeightRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SetLiftHeightRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SetLiftHeightRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void SetLiftHeightRequest::ArenaDtor(void* object) {
  SetLiftHeightRequest* _this = reinterpret_cast< SetLiftHeightRequest* >(object);
  (void)_this;
}
void SetLiftHeightRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SetLiftHeightRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SetLiftHeightRequest& SetLiftHeightRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SetLiftHeightRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void SetLiftHeightRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SetLiftHeightRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&height_mm_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&height_mm_)) + sizeof(num_retries_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SetLiftHeightRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float height_mm = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          height_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float max_speed_rad_per_sec = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          max_speed_rad_per_sec_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float accel_rad_per_sec2 = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          accel_rad_per_sec2_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float duration_sec = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          duration_sec_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 id_tag = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          id_tag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 num_retries = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          num_retries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* SetLiftHeightRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.SetLiftHeightRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float height_mm = 1;
  if (!(this->height_mm() <= 0 && this->height_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_height_mm(), target);
  }

  // float max_speed_rad_per_sec = 2;
  if (!(this->max_speed_rad_per_sec() <= 0 && this->max_speed_rad_per_sec() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_max_speed_rad_per_sec(), target);
  }

  // float accel_rad_per_sec2 = 3;
  if (!(this->accel_rad_per_sec2() <= 0 && this->accel_rad_per_sec2() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_accel_rad_per_sec2(), target);
  }

  // float duration_sec = 4;
  if (!(this->duration_sec() <= 0 && this->duration_sec() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_duration_sec(), target);
  }

  // int32 id_tag = 5;
  if (this->id_tag() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_id_tag(), target);
  }

  // int32 num_retries = 6;
  if (this->num_retries() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(6, this->_internal_num_retries(), 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:Anki.Vector.external_interface.SetLiftHeightRequest)
  return target;
}

size_t SetLiftHeightRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SetLiftHeightRequest)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float height_mm = 1;
  if (!(this->height_mm() <= 0 && this->height_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // float max_speed_rad_per_sec = 2;
  if (!(this->max_speed_rad_per_sec() <= 0 && this->max_speed_rad_per_sec() >= 0)) {
    total_size += 1 + 4;
  }

  // float accel_rad_per_sec2 = 3;
  if (!(this->accel_rad_per_sec2() <= 0 && this->accel_rad_per_sec2() >= 0)) {
    total_size += 1 + 4;
  }

  // float duration_sec = 4;
  if (!(this->duration_sec() <= 0 && this->duration_sec() >= 0)) {
    total_size += 1 + 4;
  }

  // int32 id_tag = 5;
  if (this->id_tag() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_id_tag());
  }

  // int32 num_retries = 6;
  if (this->num_retries() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_num_retries());
  }

  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 SetLiftHeightRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.SetLiftHeightRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const SetLiftHeightRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SetLiftHeightRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.SetLiftHeightRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.SetLiftHeightRequest)
    MergeFrom(*source);
  }
}

void SetLiftHeightRequest::MergeFrom(const SetLiftHeightRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.SetLiftHeightRequest)
  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.height_mm() <= 0 && from.height_mm() >= 0)) {
    _internal_set_height_mm(from._internal_height_mm());
  }
  if (!(from.max_speed_rad_per_sec() <= 0 && from.max_speed_rad_per_sec() >= 0)) {
    _internal_set_max_speed_rad_per_sec(from._internal_max_speed_rad_per_sec());
  }
  if (!(from.accel_rad_per_sec2() <= 0 && from.accel_rad_per_sec2() >= 0)) {
    _internal_set_accel_rad_per_sec2(from._internal_accel_rad_per_sec2());
  }
  if (!(from.duration_sec() <= 0 && from.duration_sec() >= 0)) {
    _internal_set_duration_sec(from._internal_duration_sec());
  }
  if (from.id_tag() != 0) {
    _internal_set_id_tag(from._internal_id_tag());
  }
  if (from.num_retries() != 0) {
    _internal_set_num_retries(from._internal_num_retries());
  }
}

void SetLiftHeightRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.SetLiftHeightRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SetLiftHeightRequest::CopyFrom(const SetLiftHeightRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SetLiftHeightRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SetLiftHeightRequest::IsInitialized() const {
  return true;
}

void SetLiftHeightRequest::InternalSwap(SetLiftHeightRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SetLiftHeightRequest, num_retries_)
      + sizeof(SetLiftHeightRequest::num_retries_)
      - PROTOBUF_FIELD_OFFSET(SetLiftHeightRequest, height_mm_)>(
          reinterpret_cast<char*>(&height_mm_),
          reinterpret_cast<char*>(&other->height_mm_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SetLiftHeightRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void SetLiftHeightResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_SetLiftHeightResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_SetLiftHeightResponse_default_instance_._instance.get_mutable()->result_ = const_cast< ::Anki::Vector::external_interface::ActionResult*>(
      ::Anki::Vector::external_interface::ActionResult::internal_default_instance());
}
class SetLiftHeightResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const SetLiftHeightResponse* msg);
  static const ::Anki::Vector::external_interface::ActionResult& result(const SetLiftHeightResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
SetLiftHeightResponse::_Internal::status(const SetLiftHeightResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::ActionResult&
SetLiftHeightResponse::_Internal::result(const SetLiftHeightResponse* msg) {
  return *msg->result_;
}
void SetLiftHeightResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
SetLiftHeightResponse::SetLiftHeightResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SetLiftHeightResponse)
}
SetLiftHeightResponse::SetLiftHeightResponse(const SetLiftHeightResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_result()) {
    result_ = new ::Anki::Vector::external_interface::ActionResult(*from.result_);
  } else {
    result_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SetLiftHeightResponse)
}

void SetLiftHeightResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SetLiftHeightResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

SetLiftHeightResponse::~SetLiftHeightResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SetLiftHeightResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SetLiftHeightResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete result_;
}

void SetLiftHeightResponse::ArenaDtor(void* object) {
  SetLiftHeightResponse* _this = reinterpret_cast< SetLiftHeightResponse* >(object);
  (void)_this;
}
void SetLiftHeightResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SetLiftHeightResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SetLiftHeightResponse& SetLiftHeightResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SetLiftHeightResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void SetLiftHeightResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SetLiftHeightResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SetLiftHeightResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ActionResult result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_result(), 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* SetLiftHeightResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.SetLiftHeightResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::result(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.SetLiftHeightResponse)
  return target;
}

size_t SetLiftHeightResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SetLiftHeightResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *result_);
  }

  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 SetLiftHeightResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.SetLiftHeightResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const SetLiftHeightResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SetLiftHeightResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.SetLiftHeightResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.SetLiftHeightResponse)
    MergeFrom(*source);
  }
}

void SetLiftHeightResponse::MergeFrom(const SetLiftHeightResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.SetLiftHeightResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_result()) {
    _internal_mutable_result()->::Anki::Vector::external_interface::ActionResult::MergeFrom(from._internal_result());
  }
}

void SetLiftHeightResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.SetLiftHeightResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SetLiftHeightResponse::CopyFrom(const SetLiftHeightResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SetLiftHeightResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SetLiftHeightResponse::IsInitialized() const {
  return true;
}

void SetLiftHeightResponse::InternalSwap(SetLiftHeightResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SetLiftHeightResponse, result_)
      + sizeof(SetLiftHeightResponse::result_)
      - PROTOBUF_FIELD_OFFSET(SetLiftHeightResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SetLiftHeightResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void TurnTowardsFaceRequest::InitAsDefaultInstance() {
}
class TurnTowardsFaceRequest::_Internal {
 public:
};

TurnTowardsFaceRequest::TurnTowardsFaceRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.TurnTowardsFaceRequest)
}
TurnTowardsFaceRequest::TurnTowardsFaceRequest(const TurnTowardsFaceRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&face_id_, &from.face_id_,
    static_cast<size_t>(reinterpret_cast<char*>(&num_retries_) -
    reinterpret_cast<char*>(&face_id_)) + sizeof(num_retries_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.TurnTowardsFaceRequest)
}

void TurnTowardsFaceRequest::SharedCtor() {
  ::memset(&face_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&face_id_)) + sizeof(num_retries_));
}

TurnTowardsFaceRequest::~TurnTowardsFaceRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.TurnTowardsFaceRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void TurnTowardsFaceRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void TurnTowardsFaceRequest::ArenaDtor(void* object) {
  TurnTowardsFaceRequest* _this = reinterpret_cast< TurnTowardsFaceRequest* >(object);
  (void)_this;
}
void TurnTowardsFaceRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void TurnTowardsFaceRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const TurnTowardsFaceRequest& TurnTowardsFaceRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_TurnTowardsFaceRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void TurnTowardsFaceRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.TurnTowardsFaceRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&face_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&face_id_)) + sizeof(num_retries_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* TurnTowardsFaceRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 face_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          face_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float max_turn_angle_rad = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          max_turn_angle_rad_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 id_tag = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          id_tag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 num_retries = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          num_retries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* TurnTowardsFaceRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.TurnTowardsFaceRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 face_id = 1;
  if (this->face_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_face_id(), target);
  }

  // float max_turn_angle_rad = 2;
  if (!(this->max_turn_angle_rad() <= 0 && this->max_turn_angle_rad() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_max_turn_angle_rad(), target);
  }

  // int32 id_tag = 3;
  if (this->id_tag() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_id_tag(), target);
  }

  // int32 num_retries = 4;
  if (this->num_retries() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_num_retries(), 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:Anki.Vector.external_interface.TurnTowardsFaceRequest)
  return target;
}

size_t TurnTowardsFaceRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.TurnTowardsFaceRequest)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 face_id = 1;
  if (this->face_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_face_id());
  }

  // float max_turn_angle_rad = 2;
  if (!(this->max_turn_angle_rad() <= 0 && this->max_turn_angle_rad() >= 0)) {
    total_size += 1 + 4;
  }

  // int32 id_tag = 3;
  if (this->id_tag() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_id_tag());
  }

  // int32 num_retries = 4;
  if (this->num_retries() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_num_retries());
  }

  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 TurnTowardsFaceRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.TurnTowardsFaceRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const TurnTowardsFaceRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<TurnTowardsFaceRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.TurnTowardsFaceRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.TurnTowardsFaceRequest)
    MergeFrom(*source);
  }
}

void TurnTowardsFaceRequest::MergeFrom(const TurnTowardsFaceRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.TurnTowardsFaceRequest)
  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.face_id() != 0) {
    _internal_set_face_id(from._internal_face_id());
  }
  if (!(from.max_turn_angle_rad() <= 0 && from.max_turn_angle_rad() >= 0)) {
    _internal_set_max_turn_angle_rad(from._internal_max_turn_angle_rad());
  }
  if (from.id_tag() != 0) {
    _internal_set_id_tag(from._internal_id_tag());
  }
  if (from.num_retries() != 0) {
    _internal_set_num_retries(from._internal_num_retries());
  }
}

void TurnTowardsFaceRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.TurnTowardsFaceRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void TurnTowardsFaceRequest::CopyFrom(const TurnTowardsFaceRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.TurnTowardsFaceRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool TurnTowardsFaceRequest::IsInitialized() const {
  return true;
}

void TurnTowardsFaceRequest::InternalSwap(TurnTowardsFaceRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TurnTowardsFaceRequest, num_retries_)
      + sizeof(TurnTowardsFaceRequest::num_retries_)
      - PROTOBUF_FIELD_OFFSET(TurnTowardsFaceRequest, face_id_)>(
          reinterpret_cast<char*>(&face_id_),
          reinterpret_cast<char*>(&other->face_id_));
}

::PROTOBUF_NAMESPACE_ID::Metadata TurnTowardsFaceRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void TurnTowardsFaceResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_TurnTowardsFaceResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_TurnTowardsFaceResponse_default_instance_._instance.get_mutable()->result_ = const_cast< ::Anki::Vector::external_interface::ActionResult*>(
      ::Anki::Vector::external_interface::ActionResult::internal_default_instance());
}
class TurnTowardsFaceResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const TurnTowardsFaceResponse* msg);
  static const ::Anki::Vector::external_interface::ActionResult& result(const TurnTowardsFaceResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
TurnTowardsFaceResponse::_Internal::status(const TurnTowardsFaceResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::ActionResult&
TurnTowardsFaceResponse::_Internal::result(const TurnTowardsFaceResponse* msg) {
  return *msg->result_;
}
void TurnTowardsFaceResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
TurnTowardsFaceResponse::TurnTowardsFaceResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.TurnTowardsFaceResponse)
}
TurnTowardsFaceResponse::TurnTowardsFaceResponse(const TurnTowardsFaceResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_result()) {
    result_ = new ::Anki::Vector::external_interface::ActionResult(*from.result_);
  } else {
    result_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.TurnTowardsFaceResponse)
}

void TurnTowardsFaceResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_TurnTowardsFaceResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

TurnTowardsFaceResponse::~TurnTowardsFaceResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.TurnTowardsFaceResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void TurnTowardsFaceResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete result_;
}

void TurnTowardsFaceResponse::ArenaDtor(void* object) {
  TurnTowardsFaceResponse* _this = reinterpret_cast< TurnTowardsFaceResponse* >(object);
  (void)_this;
}
void TurnTowardsFaceResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void TurnTowardsFaceResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const TurnTowardsFaceResponse& TurnTowardsFaceResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_TurnTowardsFaceResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void TurnTowardsFaceResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.TurnTowardsFaceResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* TurnTowardsFaceResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ActionResult result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_result(), 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* TurnTowardsFaceResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.TurnTowardsFaceResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::result(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.TurnTowardsFaceResponse)
  return target;
}

size_t TurnTowardsFaceResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.TurnTowardsFaceResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *result_);
  }

  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 TurnTowardsFaceResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.TurnTowardsFaceResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const TurnTowardsFaceResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<TurnTowardsFaceResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.TurnTowardsFaceResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.TurnTowardsFaceResponse)
    MergeFrom(*source);
  }
}

void TurnTowardsFaceResponse::MergeFrom(const TurnTowardsFaceResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.TurnTowardsFaceResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_result()) {
    _internal_mutable_result()->::Anki::Vector::external_interface::ActionResult::MergeFrom(from._internal_result());
  }
}

void TurnTowardsFaceResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.TurnTowardsFaceResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void TurnTowardsFaceResponse::CopyFrom(const TurnTowardsFaceResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.TurnTowardsFaceResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool TurnTowardsFaceResponse::IsInitialized() const {
  return true;
}

void TurnTowardsFaceResponse::InternalSwap(TurnTowardsFaceResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TurnTowardsFaceResponse, result_)
      + sizeof(TurnTowardsFaceResponse::result_)
      - PROTOBUF_FIELD_OFFSET(TurnTowardsFaceResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata TurnTowardsFaceResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void GoToObjectRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_GoToObjectRequest_default_instance_._instance.get_mutable()->motion_prof_ = const_cast< ::Anki::Vector::external_interface::PathMotionProfile*>(
      ::Anki::Vector::external_interface::PathMotionProfile::internal_default_instance());
}
class GoToObjectRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::PathMotionProfile& motion_prof(const GoToObjectRequest* msg);
};

const ::Anki::Vector::external_interface::PathMotionProfile&
GoToObjectRequest::_Internal::motion_prof(const GoToObjectRequest* msg) {
  return *msg->motion_prof_;
}
GoToObjectRequest::GoToObjectRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.GoToObjectRequest)
}
GoToObjectRequest::GoToObjectRequest(const GoToObjectRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_motion_prof()) {
    motion_prof_ = new ::Anki::Vector::external_interface::PathMotionProfile(*from.motion_prof_);
  } else {
    motion_prof_ = nullptr;
  }
  ::memcpy(&object_id_, &from.object_id_,
    static_cast<size_t>(reinterpret_cast<char*>(&num_retries_) -
    reinterpret_cast<char*>(&object_id_)) + sizeof(num_retries_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.GoToObjectRequest)
}

void GoToObjectRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_GoToObjectRequest_messages_2eproto.base);
  ::memset(&motion_prof_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&motion_prof_)) + sizeof(num_retries_));
}

GoToObjectRequest::~GoToObjectRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.GoToObjectRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void GoToObjectRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete motion_prof_;
}

void GoToObjectRequest::ArenaDtor(void* object) {
  GoToObjectRequest* _this = reinterpret_cast< GoToObjectRequest* >(object);
  (void)_this;
}
void GoToObjectRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void GoToObjectRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const GoToObjectRequest& GoToObjectRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_GoToObjectRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void GoToObjectRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.GoToObjectRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && motion_prof_ != nullptr) {
    delete motion_prof_;
  }
  motion_prof_ = nullptr;
  ::memset(&object_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&object_id_)) + sizeof(num_retries_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* GoToObjectRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 object_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_motion_prof(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float distance_from_object_origin_mm = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          distance_from_object_origin_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // bool use_pre_dock_pose = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          use_pre_dock_pose_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 id_tag = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          id_tag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 num_retries = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          num_retries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* GoToObjectRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.GoToObjectRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 object_id = 1;
  if (this->object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_object_id(), target);
  }

  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
  if (this->has_motion_prof()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::motion_prof(this), target, stream);
  }

  // float distance_from_object_origin_mm = 3;
  if (!(this->distance_from_object_origin_mm() <= 0 && this->distance_from_object_origin_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_distance_from_object_origin_mm(), target);
  }

  // bool use_pre_dock_pose = 4;
  if (this->use_pre_dock_pose() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_use_pre_dock_pose(), target);
  }

  // int32 id_tag = 5;
  if (this->id_tag() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_id_tag(), target);
  }

  // int32 num_retries = 6;
  if (this->num_retries() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(6, this->_internal_num_retries(), 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:Anki.Vector.external_interface.GoToObjectRequest)
  return target;
}

size_t GoToObjectRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.GoToObjectRequest)
  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;

  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
  if (this->has_motion_prof()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *motion_prof_);
  }

  // int32 object_id = 1;
  if (this->object_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_object_id());
  }

  // float distance_from_object_origin_mm = 3;
  if (!(this->distance_from_object_origin_mm() <= 0 && this->distance_from_object_origin_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // bool use_pre_dock_pose = 4;
  if (this->use_pre_dock_pose() != 0) {
    total_size += 1 + 1;
  }

  // int32 id_tag = 5;
  if (this->id_tag() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_id_tag());
  }

  // int32 num_retries = 6;
  if (this->num_retries() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_num_retries());
  }

  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 GoToObjectRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.GoToObjectRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const GoToObjectRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<GoToObjectRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.GoToObjectRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.GoToObjectRequest)
    MergeFrom(*source);
  }
}

void GoToObjectRequest::MergeFrom(const GoToObjectRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.GoToObjectRequest)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_motion_prof()) {
    _internal_mutable_motion_prof()->::Anki::Vector::external_interface::PathMotionProfile::MergeFrom(from._internal_motion_prof());
  }
  if (from.object_id() != 0) {
    _internal_set_object_id(from._internal_object_id());
  }
  if (!(from.distance_from_object_origin_mm() <= 0 && from.distance_from_object_origin_mm() >= 0)) {
    _internal_set_distance_from_object_origin_mm(from._internal_distance_from_object_origin_mm());
  }
  if (from.use_pre_dock_pose() != 0) {
    _internal_set_use_pre_dock_pose(from._internal_use_pre_dock_pose());
  }
  if (from.id_tag() != 0) {
    _internal_set_id_tag(from._internal_id_tag());
  }
  if (from.num_retries() != 0) {
    _internal_set_num_retries(from._internal_num_retries());
  }
}

void GoToObjectRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.GoToObjectRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void GoToObjectRequest::CopyFrom(const GoToObjectRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.GoToObjectRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool GoToObjectRequest::IsInitialized() const {
  return true;
}

void GoToObjectRequest::InternalSwap(GoToObjectRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(GoToObjectRequest, num_retries_)
      + sizeof(GoToObjectRequest::num_retries_)
      - PROTOBUF_FIELD_OFFSET(GoToObjectRequest, motion_prof_)>(
          reinterpret_cast<char*>(&motion_prof_),
          reinterpret_cast<char*>(&other->motion_prof_));
}

::PROTOBUF_NAMESPACE_ID::Metadata GoToObjectRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void GoToObjectResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_GoToObjectResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_GoToObjectResponse_default_instance_._instance.get_mutable()->result_ = const_cast< ::Anki::Vector::external_interface::ActionResult*>(
      ::Anki::Vector::external_interface::ActionResult::internal_default_instance());
}
class GoToObjectResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const GoToObjectResponse* msg);
  static const ::Anki::Vector::external_interface::ActionResult& result(const GoToObjectResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
GoToObjectResponse::_Internal::status(const GoToObjectResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::ActionResult&
GoToObjectResponse::_Internal::result(const GoToObjectResponse* msg) {
  return *msg->result_;
}
void GoToObjectResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
GoToObjectResponse::GoToObjectResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.GoToObjectResponse)
}
GoToObjectResponse::GoToObjectResponse(const GoToObjectResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_result()) {
    result_ = new ::Anki::Vector::external_interface::ActionResult(*from.result_);
  } else {
    result_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.GoToObjectResponse)
}

void GoToObjectResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_GoToObjectResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

GoToObjectResponse::~GoToObjectResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.GoToObjectResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void GoToObjectResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete result_;
}

void GoToObjectResponse::ArenaDtor(void* object) {
  GoToObjectResponse* _this = reinterpret_cast< GoToObjectResponse* >(object);
  (void)_this;
}
void GoToObjectResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void GoToObjectResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const GoToObjectResponse& GoToObjectResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_GoToObjectResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void GoToObjectResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.GoToObjectResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* GoToObjectResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ActionResult result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_result(), 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* GoToObjectResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.GoToObjectResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::result(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.GoToObjectResponse)
  return target;
}

size_t GoToObjectResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.GoToObjectResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *result_);
  }

  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 GoToObjectResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.GoToObjectResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const GoToObjectResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<GoToObjectResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.GoToObjectResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.GoToObjectResponse)
    MergeFrom(*source);
  }
}

void GoToObjectResponse::MergeFrom(const GoToObjectResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.GoToObjectResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_result()) {
    _internal_mutable_result()->::Anki::Vector::external_interface::ActionResult::MergeFrom(from._internal_result());
  }
}

void GoToObjectResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.GoToObjectResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void GoToObjectResponse::CopyFrom(const GoToObjectResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.GoToObjectResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool GoToObjectResponse::IsInitialized() const {
  return true;
}

void GoToObjectResponse::InternalSwap(GoToObjectResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(GoToObjectResponse, result_)
      + sizeof(GoToObjectResponse::result_)
      - PROTOBUF_FIELD_OFFSET(GoToObjectResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata GoToObjectResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void RollObjectRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_RollObjectRequest_default_instance_._instance.get_mutable()->motion_prof_ = const_cast< ::Anki::Vector::external_interface::PathMotionProfile*>(
      ::Anki::Vector::external_interface::PathMotionProfile::internal_default_instance());
}
class RollObjectRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::PathMotionProfile& motion_prof(const RollObjectRequest* msg);
};

const ::Anki::Vector::external_interface::PathMotionProfile&
RollObjectRequest::_Internal::motion_prof(const RollObjectRequest* msg) {
  return *msg->motion_prof_;
}
RollObjectRequest::RollObjectRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RollObjectRequest)
}
RollObjectRequest::RollObjectRequest(const RollObjectRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_motion_prof()) {
    motion_prof_ = new ::Anki::Vector::external_interface::PathMotionProfile(*from.motion_prof_);
  } else {
    motion_prof_ = nullptr;
  }
  ::memcpy(&object_id_, &from.object_id_,
    static_cast<size_t>(reinterpret_cast<char*>(&num_retries_) -
    reinterpret_cast<char*>(&object_id_)) + sizeof(num_retries_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RollObjectRequest)
}

void RollObjectRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RollObjectRequest_messages_2eproto.base);
  ::memset(&motion_prof_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&motion_prof_)) + sizeof(num_retries_));
}

RollObjectRequest::~RollObjectRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.RollObjectRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void RollObjectRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete motion_prof_;
}

void RollObjectRequest::ArenaDtor(void* object) {
  RollObjectRequest* _this = reinterpret_cast< RollObjectRequest* >(object);
  (void)_this;
}
void RollObjectRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void RollObjectRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const RollObjectRequest& RollObjectRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RollObjectRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void RollObjectRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.RollObjectRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && motion_prof_ != nullptr) {
    delete motion_prof_;
  }
  motion_prof_ = nullptr;
  ::memset(&object_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&object_id_)) + sizeof(num_retries_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RollObjectRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 object_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_motion_prof(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float approach_angle_rad = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          approach_angle_rad_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // bool use_approach_angle = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          use_approach_angle_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool use_pre_dock_pose = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          use_pre_dock_pose_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 id_tag = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          id_tag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 num_retries = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          num_retries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* RollObjectRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.RollObjectRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 object_id = 1;
  if (this->object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_object_id(), target);
  }

  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
  if (this->has_motion_prof()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::motion_prof(this), target, stream);
  }

  // float approach_angle_rad = 3;
  if (!(this->approach_angle_rad() <= 0 && this->approach_angle_rad() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_approach_angle_rad(), target);
  }

  // bool use_approach_angle = 4;
  if (this->use_approach_angle() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_use_approach_angle(), target);
  }

  // bool use_pre_dock_pose = 5;
  if (this->use_pre_dock_pose() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_use_pre_dock_pose(), target);
  }

  // int32 id_tag = 6;
  if (this->id_tag() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(6, this->_internal_id_tag(), target);
  }

  // int32 num_retries = 7;
  if (this->num_retries() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_num_retries(), 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:Anki.Vector.external_interface.RollObjectRequest)
  return target;
}

size_t RollObjectRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RollObjectRequest)
  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;

  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
  if (this->has_motion_prof()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *motion_prof_);
  }

  // int32 object_id = 1;
  if (this->object_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_object_id());
  }

  // float approach_angle_rad = 3;
  if (!(this->approach_angle_rad() <= 0 && this->approach_angle_rad() >= 0)) {
    total_size += 1 + 4;
  }

  // bool use_approach_angle = 4;
  if (this->use_approach_angle() != 0) {
    total_size += 1 + 1;
  }

  // bool use_pre_dock_pose = 5;
  if (this->use_pre_dock_pose() != 0) {
    total_size += 1 + 1;
  }

  // int32 id_tag = 6;
  if (this->id_tag() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_id_tag());
  }

  // int32 num_retries = 7;
  if (this->num_retries() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_num_retries());
  }

  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 RollObjectRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.RollObjectRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const RollObjectRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RollObjectRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.RollObjectRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.RollObjectRequest)
    MergeFrom(*source);
  }
}

void RollObjectRequest::MergeFrom(const RollObjectRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.RollObjectRequest)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_motion_prof()) {
    _internal_mutable_motion_prof()->::Anki::Vector::external_interface::PathMotionProfile::MergeFrom(from._internal_motion_prof());
  }
  if (from.object_id() != 0) {
    _internal_set_object_id(from._internal_object_id());
  }
  if (!(from.approach_angle_rad() <= 0 && from.approach_angle_rad() >= 0)) {
    _internal_set_approach_angle_rad(from._internal_approach_angle_rad());
  }
  if (from.use_approach_angle() != 0) {
    _internal_set_use_approach_angle(from._internal_use_approach_angle());
  }
  if (from.use_pre_dock_pose() != 0) {
    _internal_set_use_pre_dock_pose(from._internal_use_pre_dock_pose());
  }
  if (from.id_tag() != 0) {
    _internal_set_id_tag(from._internal_id_tag());
  }
  if (from.num_retries() != 0) {
    _internal_set_num_retries(from._internal_num_retries());
  }
}

void RollObjectRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.RollObjectRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void RollObjectRequest::CopyFrom(const RollObjectRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.RollObjectRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RollObjectRequest::IsInitialized() const {
  return true;
}

void RollObjectRequest::InternalSwap(RollObjectRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RollObjectRequest, num_retries_)
      + sizeof(RollObjectRequest::num_retries_)
      - PROTOBUF_FIELD_OFFSET(RollObjectRequest, motion_prof_)>(
          reinterpret_cast<char*>(&motion_prof_),
          reinterpret_cast<char*>(&other->motion_prof_));
}

::PROTOBUF_NAMESPACE_ID::Metadata RollObjectRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void RollObjectResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_RollObjectResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_RollObjectResponse_default_instance_._instance.get_mutable()->result_ = const_cast< ::Anki::Vector::external_interface::ActionResult*>(
      ::Anki::Vector::external_interface::ActionResult::internal_default_instance());
}
class RollObjectResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const RollObjectResponse* msg);
  static const ::Anki::Vector::external_interface::ActionResult& result(const RollObjectResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
RollObjectResponse::_Internal::status(const RollObjectResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::ActionResult&
RollObjectResponse::_Internal::result(const RollObjectResponse* msg) {
  return *msg->result_;
}
void RollObjectResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
RollObjectResponse::RollObjectResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RollObjectResponse)
}
RollObjectResponse::RollObjectResponse(const RollObjectResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_result()) {
    result_ = new ::Anki::Vector::external_interface::ActionResult(*from.result_);
  } else {
    result_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RollObjectResponse)
}

void RollObjectResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RollObjectResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

RollObjectResponse::~RollObjectResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.RollObjectResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void RollObjectResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete result_;
}

void RollObjectResponse::ArenaDtor(void* object) {
  RollObjectResponse* _this = reinterpret_cast< RollObjectResponse* >(object);
  (void)_this;
}
void RollObjectResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void RollObjectResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const RollObjectResponse& RollObjectResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RollObjectResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void RollObjectResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.RollObjectResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RollObjectResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ActionResult result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_result(), 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* RollObjectResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.RollObjectResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::result(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.RollObjectResponse)
  return target;
}

size_t RollObjectResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RollObjectResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *result_);
  }

  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 RollObjectResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.RollObjectResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const RollObjectResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RollObjectResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.RollObjectResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.RollObjectResponse)
    MergeFrom(*source);
  }
}

void RollObjectResponse::MergeFrom(const RollObjectResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.RollObjectResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_result()) {
    _internal_mutable_result()->::Anki::Vector::external_interface::ActionResult::MergeFrom(from._internal_result());
  }
}

void RollObjectResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.RollObjectResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void RollObjectResponse::CopyFrom(const RollObjectResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.RollObjectResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RollObjectResponse::IsInitialized() const {
  return true;
}

void RollObjectResponse::InternalSwap(RollObjectResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RollObjectResponse, result_)
      + sizeof(RollObjectResponse::result_)
      - PROTOBUF_FIELD_OFFSET(RollObjectResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata RollObjectResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PopAWheelieRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_PopAWheelieRequest_default_instance_._instance.get_mutable()->motion_prof_ = const_cast< ::Anki::Vector::external_interface::PathMotionProfile*>(
      ::Anki::Vector::external_interface::PathMotionProfile::internal_default_instance());
}
class PopAWheelieRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::PathMotionProfile& motion_prof(const PopAWheelieRequest* msg);
};

const ::Anki::Vector::external_interface::PathMotionProfile&
PopAWheelieRequest::_Internal::motion_prof(const PopAWheelieRequest* msg) {
  return *msg->motion_prof_;
}
PopAWheelieRequest::PopAWheelieRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PopAWheelieRequest)
}
PopAWheelieRequest::PopAWheelieRequest(const PopAWheelieRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_motion_prof()) {
    motion_prof_ = new ::Anki::Vector::external_interface::PathMotionProfile(*from.motion_prof_);
  } else {
    motion_prof_ = nullptr;
  }
  ::memcpy(&object_id_, &from.object_id_,
    static_cast<size_t>(reinterpret_cast<char*>(&num_retries_) -
    reinterpret_cast<char*>(&object_id_)) + sizeof(num_retries_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PopAWheelieRequest)
}

void PopAWheelieRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PopAWheelieRequest_messages_2eproto.base);
  ::memset(&motion_prof_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&motion_prof_)) + sizeof(num_retries_));
}

PopAWheelieRequest::~PopAWheelieRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PopAWheelieRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PopAWheelieRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete motion_prof_;
}

void PopAWheelieRequest::ArenaDtor(void* object) {
  PopAWheelieRequest* _this = reinterpret_cast< PopAWheelieRequest* >(object);
  (void)_this;
}
void PopAWheelieRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PopAWheelieRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PopAWheelieRequest& PopAWheelieRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PopAWheelieRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void PopAWheelieRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PopAWheelieRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && motion_prof_ != nullptr) {
    delete motion_prof_;
  }
  motion_prof_ = nullptr;
  ::memset(&object_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&object_id_)) + sizeof(num_retries_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PopAWheelieRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 object_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_motion_prof(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float approach_angle_rad = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          approach_angle_rad_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // bool use_approach_angle = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          use_approach_angle_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool use_pre_dock_pose = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          use_pre_dock_pose_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 id_tag = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          id_tag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 num_retries = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          num_retries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* PopAWheelieRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PopAWheelieRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 object_id = 1;
  if (this->object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_object_id(), target);
  }

  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
  if (this->has_motion_prof()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::motion_prof(this), target, stream);
  }

  // float approach_angle_rad = 3;
  if (!(this->approach_angle_rad() <= 0 && this->approach_angle_rad() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_approach_angle_rad(), target);
  }

  // bool use_approach_angle = 4;
  if (this->use_approach_angle() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_use_approach_angle(), target);
  }

  // bool use_pre_dock_pose = 5;
  if (this->use_pre_dock_pose() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_use_pre_dock_pose(), target);
  }

  // int32 id_tag = 6;
  if (this->id_tag() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(6, this->_internal_id_tag(), target);
  }

  // int32 num_retries = 7;
  if (this->num_retries() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_num_retries(), 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:Anki.Vector.external_interface.PopAWheelieRequest)
  return target;
}

size_t PopAWheelieRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PopAWheelieRequest)
  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;

  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
  if (this->has_motion_prof()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *motion_prof_);
  }

  // int32 object_id = 1;
  if (this->object_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_object_id());
  }

  // float approach_angle_rad = 3;
  if (!(this->approach_angle_rad() <= 0 && this->approach_angle_rad() >= 0)) {
    total_size += 1 + 4;
  }

  // bool use_approach_angle = 4;
  if (this->use_approach_angle() != 0) {
    total_size += 1 + 1;
  }

  // bool use_pre_dock_pose = 5;
  if (this->use_pre_dock_pose() != 0) {
    total_size += 1 + 1;
  }

  // int32 id_tag = 6;
  if (this->id_tag() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_id_tag());
  }

  // int32 num_retries = 7;
  if (this->num_retries() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_num_retries());
  }

  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 PopAWheelieRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.PopAWheelieRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const PopAWheelieRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PopAWheelieRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.PopAWheelieRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.PopAWheelieRequest)
    MergeFrom(*source);
  }
}

void PopAWheelieRequest::MergeFrom(const PopAWheelieRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PopAWheelieRequest)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_motion_prof()) {
    _internal_mutable_motion_prof()->::Anki::Vector::external_interface::PathMotionProfile::MergeFrom(from._internal_motion_prof());
  }
  if (from.object_id() != 0) {
    _internal_set_object_id(from._internal_object_id());
  }
  if (!(from.approach_angle_rad() <= 0 && from.approach_angle_rad() >= 0)) {
    _internal_set_approach_angle_rad(from._internal_approach_angle_rad());
  }
  if (from.use_approach_angle() != 0) {
    _internal_set_use_approach_angle(from._internal_use_approach_angle());
  }
  if (from.use_pre_dock_pose() != 0) {
    _internal_set_use_pre_dock_pose(from._internal_use_pre_dock_pose());
  }
  if (from.id_tag() != 0) {
    _internal_set_id_tag(from._internal_id_tag());
  }
  if (from.num_retries() != 0) {
    _internal_set_num_retries(from._internal_num_retries());
  }
}

void PopAWheelieRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.PopAWheelieRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PopAWheelieRequest::CopyFrom(const PopAWheelieRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PopAWheelieRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PopAWheelieRequest::IsInitialized() const {
  return true;
}

void PopAWheelieRequest::InternalSwap(PopAWheelieRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PopAWheelieRequest, num_retries_)
      + sizeof(PopAWheelieRequest::num_retries_)
      - PROTOBUF_FIELD_OFFSET(PopAWheelieRequest, motion_prof_)>(
          reinterpret_cast<char*>(&motion_prof_),
          reinterpret_cast<char*>(&other->motion_prof_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PopAWheelieRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PopAWheelieResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_PopAWheelieResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_PopAWheelieResponse_default_instance_._instance.get_mutable()->result_ = const_cast< ::Anki::Vector::external_interface::ActionResult*>(
      ::Anki::Vector::external_interface::ActionResult::internal_default_instance());
}
class PopAWheelieResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const PopAWheelieResponse* msg);
  static const ::Anki::Vector::external_interface::ActionResult& result(const PopAWheelieResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
PopAWheelieResponse::_Internal::status(const PopAWheelieResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::ActionResult&
PopAWheelieResponse::_Internal::result(const PopAWheelieResponse* msg) {
  return *msg->result_;
}
void PopAWheelieResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
PopAWheelieResponse::PopAWheelieResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PopAWheelieResponse)
}
PopAWheelieResponse::PopAWheelieResponse(const PopAWheelieResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_result()) {
    result_ = new ::Anki::Vector::external_interface::ActionResult(*from.result_);
  } else {
    result_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PopAWheelieResponse)
}

void PopAWheelieResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PopAWheelieResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

PopAWheelieResponse::~PopAWheelieResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PopAWheelieResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PopAWheelieResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete result_;
}

void PopAWheelieResponse::ArenaDtor(void* object) {
  PopAWheelieResponse* _this = reinterpret_cast< PopAWheelieResponse* >(object);
  (void)_this;
}
void PopAWheelieResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PopAWheelieResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PopAWheelieResponse& PopAWheelieResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PopAWheelieResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void PopAWheelieResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PopAWheelieResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PopAWheelieResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ActionResult result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_result(), 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* PopAWheelieResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PopAWheelieResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::result(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.PopAWheelieResponse)
  return target;
}

size_t PopAWheelieResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PopAWheelieResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *result_);
  }

  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 PopAWheelieResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.PopAWheelieResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const PopAWheelieResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PopAWheelieResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.PopAWheelieResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.PopAWheelieResponse)
    MergeFrom(*source);
  }
}

void PopAWheelieResponse::MergeFrom(const PopAWheelieResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PopAWheelieResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_result()) {
    _internal_mutable_result()->::Anki::Vector::external_interface::ActionResult::MergeFrom(from._internal_result());
  }
}

void PopAWheelieResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.PopAWheelieResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PopAWheelieResponse::CopyFrom(const PopAWheelieResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PopAWheelieResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PopAWheelieResponse::IsInitialized() const {
  return true;
}

void PopAWheelieResponse::InternalSwap(PopAWheelieResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PopAWheelieResponse, result_)
      + sizeof(PopAWheelieResponse::result_)
      - PROTOBUF_FIELD_OFFSET(PopAWheelieResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PopAWheelieResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PickupObjectRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_PickupObjectRequest_default_instance_._instance.get_mutable()->motion_prof_ = const_cast< ::Anki::Vector::external_interface::PathMotionProfile*>(
      ::Anki::Vector::external_interface::PathMotionProfile::internal_default_instance());
}
class PickupObjectRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::PathMotionProfile& motion_prof(const PickupObjectRequest* msg);
};

const ::Anki::Vector::external_interface::PathMotionProfile&
PickupObjectRequest::_Internal::motion_prof(const PickupObjectRequest* msg) {
  return *msg->motion_prof_;
}
PickupObjectRequest::PickupObjectRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PickupObjectRequest)
}
PickupObjectRequest::PickupObjectRequest(const PickupObjectRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_motion_prof()) {
    motion_prof_ = new ::Anki::Vector::external_interface::PathMotionProfile(*from.motion_prof_);
  } else {
    motion_prof_ = nullptr;
  }
  ::memcpy(&object_id_, &from.object_id_,
    static_cast<size_t>(reinterpret_cast<char*>(&num_retries_) -
    reinterpret_cast<char*>(&object_id_)) + sizeof(num_retries_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PickupObjectRequest)
}

void PickupObjectRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PickupObjectRequest_messages_2eproto.base);
  ::memset(&motion_prof_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&motion_prof_)) + sizeof(num_retries_));
}

PickupObjectRequest::~PickupObjectRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PickupObjectRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PickupObjectRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete motion_prof_;
}

void PickupObjectRequest::ArenaDtor(void* object) {
  PickupObjectRequest* _this = reinterpret_cast< PickupObjectRequest* >(object);
  (void)_this;
}
void PickupObjectRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PickupObjectRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PickupObjectRequest& PickupObjectRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PickupObjectRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void PickupObjectRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PickupObjectRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && motion_prof_ != nullptr) {
    delete motion_prof_;
  }
  motion_prof_ = nullptr;
  ::memset(&object_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&object_id_)) + sizeof(num_retries_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PickupObjectRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 object_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_motion_prof(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float approach_angle_rad = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          approach_angle_rad_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // bool use_approach_angle = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          use_approach_angle_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool use_pre_dock_pose = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          use_pre_dock_pose_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 id_tag = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          id_tag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 num_retries = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          num_retries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* PickupObjectRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PickupObjectRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 object_id = 1;
  if (this->object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_object_id(), target);
  }

  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
  if (this->has_motion_prof()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::motion_prof(this), target, stream);
  }

  // float approach_angle_rad = 3;
  if (!(this->approach_angle_rad() <= 0 && this->approach_angle_rad() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_approach_angle_rad(), target);
  }

  // bool use_approach_angle = 4;
  if (this->use_approach_angle() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_use_approach_angle(), target);
  }

  // bool use_pre_dock_pose = 5;
  if (this->use_pre_dock_pose() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_use_pre_dock_pose(), target);
  }

  // int32 id_tag = 6;
  if (this->id_tag() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(6, this->_internal_id_tag(), target);
  }

  // int32 num_retries = 7;
  if (this->num_retries() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_num_retries(), 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:Anki.Vector.external_interface.PickupObjectRequest)
  return target;
}

size_t PickupObjectRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PickupObjectRequest)
  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;

  // .Anki.Vector.external_interface.PathMotionProfile motion_prof = 2;
  if (this->has_motion_prof()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *motion_prof_);
  }

  // int32 object_id = 1;
  if (this->object_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_object_id());
  }

  // float approach_angle_rad = 3;
  if (!(this->approach_angle_rad() <= 0 && this->approach_angle_rad() >= 0)) {
    total_size += 1 + 4;
  }

  // bool use_approach_angle = 4;
  if (this->use_approach_angle() != 0) {
    total_size += 1 + 1;
  }

  // bool use_pre_dock_pose = 5;
  if (this->use_pre_dock_pose() != 0) {
    total_size += 1 + 1;
  }

  // int32 id_tag = 6;
  if (this->id_tag() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_id_tag());
  }

  // int32 num_retries = 7;
  if (this->num_retries() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_num_retries());
  }

  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 PickupObjectRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.PickupObjectRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const PickupObjectRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PickupObjectRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.PickupObjectRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.PickupObjectRequest)
    MergeFrom(*source);
  }
}

void PickupObjectRequest::MergeFrom(const PickupObjectRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PickupObjectRequest)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_motion_prof()) {
    _internal_mutable_motion_prof()->::Anki::Vector::external_interface::PathMotionProfile::MergeFrom(from._internal_motion_prof());
  }
  if (from.object_id() != 0) {
    _internal_set_object_id(from._internal_object_id());
  }
  if (!(from.approach_angle_rad() <= 0 && from.approach_angle_rad() >= 0)) {
    _internal_set_approach_angle_rad(from._internal_approach_angle_rad());
  }
  if (from.use_approach_angle() != 0) {
    _internal_set_use_approach_angle(from._internal_use_approach_angle());
  }
  if (from.use_pre_dock_pose() != 0) {
    _internal_set_use_pre_dock_pose(from._internal_use_pre_dock_pose());
  }
  if (from.id_tag() != 0) {
    _internal_set_id_tag(from._internal_id_tag());
  }
  if (from.num_retries() != 0) {
    _internal_set_num_retries(from._internal_num_retries());
  }
}

void PickupObjectRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.PickupObjectRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PickupObjectRequest::CopyFrom(const PickupObjectRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PickupObjectRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PickupObjectRequest::IsInitialized() const {
  return true;
}

void PickupObjectRequest::InternalSwap(PickupObjectRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PickupObjectRequest, num_retries_)
      + sizeof(PickupObjectRequest::num_retries_)
      - PROTOBUF_FIELD_OFFSET(PickupObjectRequest, motion_prof_)>(
          reinterpret_cast<char*>(&motion_prof_),
          reinterpret_cast<char*>(&other->motion_prof_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PickupObjectRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PickupObjectResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_PickupObjectResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_PickupObjectResponse_default_instance_._instance.get_mutable()->result_ = const_cast< ::Anki::Vector::external_interface::ActionResult*>(
      ::Anki::Vector::external_interface::ActionResult::internal_default_instance());
}
class PickupObjectResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const PickupObjectResponse* msg);
  static const ::Anki::Vector::external_interface::ActionResult& result(const PickupObjectResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
PickupObjectResponse::_Internal::status(const PickupObjectResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::ActionResult&
PickupObjectResponse::_Internal::result(const PickupObjectResponse* msg) {
  return *msg->result_;
}
void PickupObjectResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
PickupObjectResponse::PickupObjectResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PickupObjectResponse)
}
PickupObjectResponse::PickupObjectResponse(const PickupObjectResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_result()) {
    result_ = new ::Anki::Vector::external_interface::ActionResult(*from.result_);
  } else {
    result_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PickupObjectResponse)
}

void PickupObjectResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PickupObjectResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

PickupObjectResponse::~PickupObjectResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PickupObjectResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PickupObjectResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete result_;
}

void PickupObjectResponse::ArenaDtor(void* object) {
  PickupObjectResponse* _this = reinterpret_cast< PickupObjectResponse* >(object);
  (void)_this;
}
void PickupObjectResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PickupObjectResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PickupObjectResponse& PickupObjectResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PickupObjectResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void PickupObjectResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PickupObjectResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PickupObjectResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ActionResult result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_result(), 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* PickupObjectResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PickupObjectResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::result(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.PickupObjectResponse)
  return target;
}

size_t PickupObjectResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PickupObjectResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *result_);
  }

  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 PickupObjectResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.PickupObjectResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const PickupObjectResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PickupObjectResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.PickupObjectResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.PickupObjectResponse)
    MergeFrom(*source);
  }
}

void PickupObjectResponse::MergeFrom(const PickupObjectResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PickupObjectResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_result()) {
    _internal_mutable_result()->::Anki::Vector::external_interface::ActionResult::MergeFrom(from._internal_result());
  }
}

void PickupObjectResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.PickupObjectResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PickupObjectResponse::CopyFrom(const PickupObjectResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PickupObjectResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PickupObjectResponse::IsInitialized() const {
  return true;
}

void PickupObjectResponse::InternalSwap(PickupObjectResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PickupObjectResponse, result_)
      + sizeof(PickupObjectResponse::result_)
      - PROTOBUF_FIELD_OFFSET(PickupObjectResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PickupObjectResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PlaceObjectOnGroundHereRequest::InitAsDefaultInstance() {
}
class PlaceObjectOnGroundHereRequest::_Internal {
 public:
};

PlaceObjectOnGroundHereRequest::PlaceObjectOnGroundHereRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest)
}
PlaceObjectOnGroundHereRequest::PlaceObjectOnGroundHereRequest(const PlaceObjectOnGroundHereRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&id_tag_, &from.id_tag_,
    static_cast<size_t>(reinterpret_cast<char*>(&num_retries_) -
    reinterpret_cast<char*>(&id_tag_)) + sizeof(num_retries_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest)
}

void PlaceObjectOnGroundHereRequest::SharedCtor() {
  ::memset(&id_tag_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&id_tag_)) + sizeof(num_retries_));
}

PlaceObjectOnGroundHereRequest::~PlaceObjectOnGroundHereRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PlaceObjectOnGroundHereRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void PlaceObjectOnGroundHereRequest::ArenaDtor(void* object) {
  PlaceObjectOnGroundHereRequest* _this = reinterpret_cast< PlaceObjectOnGroundHereRequest* >(object);
  (void)_this;
}
void PlaceObjectOnGroundHereRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PlaceObjectOnGroundHereRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PlaceObjectOnGroundHereRequest& PlaceObjectOnGroundHereRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PlaceObjectOnGroundHereRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void PlaceObjectOnGroundHereRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&id_tag_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_retries_) -
      reinterpret_cast<char*>(&id_tag_)) + sizeof(num_retries_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PlaceObjectOnGroundHereRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 id_tag = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          id_tag_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 num_retries = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          num_retries_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* PlaceObjectOnGroundHereRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 id_tag = 1;
  if (this->id_tag() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_id_tag(), target);
  }

  // int32 num_retries = 2;
  if (this->num_retries() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_num_retries(), 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:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest)
  return target;
}

size_t PlaceObjectOnGroundHereRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 id_tag = 1;
  if (this->id_tag() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_id_tag());
  }

  // int32 num_retries = 2;
  if (this->num_retries() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_num_retries());
  }

  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 PlaceObjectOnGroundHereRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const PlaceObjectOnGroundHereRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PlaceObjectOnGroundHereRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest)
    MergeFrom(*source);
  }
}

void PlaceObjectOnGroundHereRequest::MergeFrom(const PlaceObjectOnGroundHereRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest)
  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.id_tag() != 0) {
    _internal_set_id_tag(from._internal_id_tag());
  }
  if (from.num_retries() != 0) {
    _internal_set_num_retries(from._internal_num_retries());
  }
}

void PlaceObjectOnGroundHereRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PlaceObjectOnGroundHereRequest::CopyFrom(const PlaceObjectOnGroundHereRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PlaceObjectOnGroundHereRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PlaceObjectOnGroundHereRequest::IsInitialized() const {
  return true;
}

void PlaceObjectOnGroundHereRequest::InternalSwap(PlaceObjectOnGroundHereRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PlaceObjectOnGroundHereRequest, num_retries_)
      + sizeof(PlaceObjectOnGroundHereRequest::num_retries_)
      - PROTOBUF_FIELD_OFFSET(PlaceObjectOnGroundHereRequest, id_tag_)>(
          reinterpret_cast<char*>(&id_tag_),
          reinterpret_cast<char*>(&other->id_tag_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PlaceObjectOnGroundHereRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PlaceObjectOnGroundHereResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_PlaceObjectOnGroundHereResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_PlaceObjectOnGroundHereResponse_default_instance_._instance.get_mutable()->result_ = const_cast< ::Anki::Vector::external_interface::ActionResult*>(
      ::Anki::Vector::external_interface::ActionResult::internal_default_instance());
}
class PlaceObjectOnGroundHereResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const PlaceObjectOnGroundHereResponse* msg);
  static const ::Anki::Vector::external_interface::ActionResult& result(const PlaceObjectOnGroundHereResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
PlaceObjectOnGroundHereResponse::_Internal::status(const PlaceObjectOnGroundHereResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::ActionResult&
PlaceObjectOnGroundHereResponse::_Internal::result(const PlaceObjectOnGroundHereResponse* msg) {
  return *msg->result_;
}
void PlaceObjectOnGroundHereResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
PlaceObjectOnGroundHereResponse::PlaceObjectOnGroundHereResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse)
}
PlaceObjectOnGroundHereResponse::PlaceObjectOnGroundHereResponse(const PlaceObjectOnGroundHereResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_result()) {
    result_ = new ::Anki::Vector::external_interface::ActionResult(*from.result_);
  } else {
    result_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse)
}

void PlaceObjectOnGroundHereResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_PlaceObjectOnGroundHereResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&result_) -
      reinterpret_cast<char*>(&status_)) + sizeof(result_));
}

PlaceObjectOnGroundHereResponse::~PlaceObjectOnGroundHereResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void PlaceObjectOnGroundHereResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete result_;
}

void PlaceObjectOnGroundHereResponse::ArenaDtor(void* object) {
  PlaceObjectOnGroundHereResponse* _this = reinterpret_cast< PlaceObjectOnGroundHereResponse* >(object);
  (void)_this;
}
void PlaceObjectOnGroundHereResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PlaceObjectOnGroundHereResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PlaceObjectOnGroundHereResponse& PlaceObjectOnGroundHereResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PlaceObjectOnGroundHereResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void PlaceObjectOnGroundHereResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && result_ != nullptr) {
    delete result_;
  }
  result_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PlaceObjectOnGroundHereResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ActionResult result = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_result(), 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* PlaceObjectOnGroundHereResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::result(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse)
  return target;
}

size_t PlaceObjectOnGroundHereResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.ActionResult result = 2;
  if (this->has_result()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *result_);
  }

  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 PlaceObjectOnGroundHereResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const PlaceObjectOnGroundHereResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PlaceObjectOnGroundHereResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse)
    MergeFrom(*source);
  }
}

void PlaceObjectOnGroundHereResponse::MergeFrom(const PlaceObjectOnGroundHereResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_result()) {
    _internal_mutable_result()->::Anki::Vector::external_interface::ActionResult::MergeFrom(from._internal_result());
  }
}

void PlaceObjectOnGroundHereResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PlaceObjectOnGroundHereResponse::CopyFrom(const PlaceObjectOnGroundHereResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.PlaceObjectOnGroundHereResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PlaceObjectOnGroundHereResponse::IsInitialized() const {
  return true;
}

void PlaceObjectOnGroundHereResponse::InternalSwap(PlaceObjectOnGroundHereResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PlaceObjectOnGroundHereResponse, result_)
      + sizeof(PlaceObjectOnGroundHereResponse::result_)
      - PROTOBUF_FIELD_OFFSET(PlaceObjectOnGroundHereResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PlaceObjectOnGroundHereResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void BatteryStateRequest::InitAsDefaultInstance() {
}
class BatteryStateRequest::_Internal {
 public:
};

BatteryStateRequest::BatteryStateRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.BatteryStateRequest)
}
BatteryStateRequest::BatteryStateRequest(const BatteryStateRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.BatteryStateRequest)
}

void BatteryStateRequest::SharedCtor() {
}

BatteryStateRequest::~BatteryStateRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.BatteryStateRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void BatteryStateRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void BatteryStateRequest::ArenaDtor(void* object) {
  BatteryStateRequest* _this = reinterpret_cast< BatteryStateRequest* >(object);
  (void)_this;
}
void BatteryStateRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void BatteryStateRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const BatteryStateRequest& BatteryStateRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_BatteryStateRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void BatteryStateRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.BatteryStateRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* BatteryStateRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* BatteryStateRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.BatteryStateRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.BatteryStateRequest)
  return target;
}

size_t BatteryStateRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.BatteryStateRequest)
  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;

  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 BatteryStateRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.BatteryStateRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const BatteryStateRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BatteryStateRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.BatteryStateRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.BatteryStateRequest)
    MergeFrom(*source);
  }
}

void BatteryStateRequest::MergeFrom(const BatteryStateRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.BatteryStateRequest)
  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;

}

void BatteryStateRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.BatteryStateRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void BatteryStateRequest::CopyFrom(const BatteryStateRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.BatteryStateRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool BatteryStateRequest::IsInitialized() const {
  return true;
}

void BatteryStateRequest::InternalSwap(BatteryStateRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata BatteryStateRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void BatteryStateResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_BatteryStateResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_BatteryStateResponse_default_instance_._instance.get_mutable()->cube_battery_ = const_cast< ::Anki::Vector::external_interface::CubeBattery*>(
      ::Anki::Vector::external_interface::CubeBattery::internal_default_instance());
}
class BatteryStateResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const BatteryStateResponse* msg);
  static const ::Anki::Vector::external_interface::CubeBattery& cube_battery(const BatteryStateResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
BatteryStateResponse::_Internal::status(const BatteryStateResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::CubeBattery&
BatteryStateResponse::_Internal::cube_battery(const BatteryStateResponse* msg) {
  return *msg->cube_battery_;
}
void BatteryStateResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
BatteryStateResponse::BatteryStateResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.BatteryStateResponse)
}
BatteryStateResponse::BatteryStateResponse(const BatteryStateResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_cube_battery()) {
    cube_battery_ = new ::Anki::Vector::external_interface::CubeBattery(*from.cube_battery_);
  } else {
    cube_battery_ = nullptr;
  }
  ::memcpy(&battery_level_, &from.battery_level_,
    static_cast<size_t>(reinterpret_cast<char*>(&suggested_charger_sec_) -
    reinterpret_cast<char*>(&battery_level_)) + sizeof(suggested_charger_sec_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.BatteryStateResponse)
}

void BatteryStateResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_BatteryStateResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&suggested_charger_sec_) -
      reinterpret_cast<char*>(&status_)) + sizeof(suggested_charger_sec_));
}

BatteryStateResponse::~BatteryStateResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.BatteryStateResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void BatteryStateResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete cube_battery_;
}

void BatteryStateResponse::ArenaDtor(void* object) {
  BatteryStateResponse* _this = reinterpret_cast< BatteryStateResponse* >(object);
  (void)_this;
}
void BatteryStateResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void BatteryStateResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const BatteryStateResponse& BatteryStateResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_BatteryStateResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void BatteryStateResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.BatteryStateResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && cube_battery_ != nullptr) {
    delete cube_battery_;
  }
  cube_battery_ = nullptr;
  ::memset(&battery_level_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&suggested_charger_sec_) -
      reinterpret_cast<char*>(&battery_level_)) + sizeof(suggested_charger_sec_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* BatteryStateResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.BatteryLevel battery_level = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_battery_level(static_cast<::Anki::Vector::external_interface::BatteryLevel>(val));
        } else goto handle_unusual;
        continue;
      // float battery_volts = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          battery_volts_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // bool is_charging = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          is_charging_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool is_on_charger_platform = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          is_on_charger_platform_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float suggested_charger_sec = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 53)) {
          suggested_charger_sec_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CubeBattery cube_battery = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_cube_battery(), 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* BatteryStateResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.BatteryStateResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.BatteryLevel battery_level = 2;
  if (this->battery_level() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_battery_level(), target);
  }

  // float battery_volts = 3;
  if (!(this->battery_volts() <= 0 && this->battery_volts() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_battery_volts(), target);
  }

  // bool is_charging = 4;
  if (this->is_charging() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_is_charging(), target);
  }

  // bool is_on_charger_platform = 5;
  if (this->is_on_charger_platform() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_is_on_charger_platform(), target);
  }

  // float suggested_charger_sec = 6;
  if (!(this->suggested_charger_sec() <= 0 && this->suggested_charger_sec() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(6, this->_internal_suggested_charger_sec(), target);
  }

  // .Anki.Vector.external_interface.CubeBattery cube_battery = 7;
  if (this->has_cube_battery()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        7, _Internal::cube_battery(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.BatteryStateResponse)
  return target;
}

size_t BatteryStateResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.BatteryStateResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.CubeBattery cube_battery = 7;
  if (this->has_cube_battery()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *cube_battery_);
  }

  // .Anki.Vector.external_interface.BatteryLevel battery_level = 2;
  if (this->battery_level() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_battery_level());
  }

  // float battery_volts = 3;
  if (!(this->battery_volts() <= 0 && this->battery_volts() >= 0)) {
    total_size += 1 + 4;
  }

  // bool is_charging = 4;
  if (this->is_charging() != 0) {
    total_size += 1 + 1;
  }

  // bool is_on_charger_platform = 5;
  if (this->is_on_charger_platform() != 0) {
    total_size += 1 + 1;
  }

  // float suggested_charger_sec = 6;
  if (!(this->suggested_charger_sec() <= 0 && this->suggested_charger_sec() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void BatteryStateResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.BatteryStateResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const BatteryStateResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BatteryStateResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.BatteryStateResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.BatteryStateResponse)
    MergeFrom(*source);
  }
}

void BatteryStateResponse::MergeFrom(const BatteryStateResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.BatteryStateResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_cube_battery()) {
    _internal_mutable_cube_battery()->::Anki::Vector::external_interface::CubeBattery::MergeFrom(from._internal_cube_battery());
  }
  if (from.battery_level() != 0) {
    _internal_set_battery_level(from._internal_battery_level());
  }
  if (!(from.battery_volts() <= 0 && from.battery_volts() >= 0)) {
    _internal_set_battery_volts(from._internal_battery_volts());
  }
  if (from.is_charging() != 0) {
    _internal_set_is_charging(from._internal_is_charging());
  }
  if (from.is_on_charger_platform() != 0) {
    _internal_set_is_on_charger_platform(from._internal_is_on_charger_platform());
  }
  if (!(from.suggested_charger_sec() <= 0 && from.suggested_charger_sec() >= 0)) {
    _internal_set_suggested_charger_sec(from._internal_suggested_charger_sec());
  }
}

void BatteryStateResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.BatteryStateResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void BatteryStateResponse::CopyFrom(const BatteryStateResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.BatteryStateResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool BatteryStateResponse::IsInitialized() const {
  return true;
}

void BatteryStateResponse::InternalSwap(BatteryStateResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(BatteryStateResponse, suggested_charger_sec_)
      + sizeof(BatteryStateResponse::suggested_charger_sec_)
      - PROTOBUF_FIELD_OFFSET(BatteryStateResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata BatteryStateResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CubeBattery::InitAsDefaultInstance() {
}
class CubeBattery::_Internal {
 public:
};

CubeBattery::CubeBattery(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CubeBattery)
}
CubeBattery::CubeBattery(const CubeBattery& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  factory_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_factory_id().empty()) {
    factory_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_factory_id(),
      GetArena());
  }
  ::memcpy(&level_, &from.level_,
    static_cast<size_t>(reinterpret_cast<char*>(&time_since_last_reading_sec_) -
    reinterpret_cast<char*>(&level_)) + sizeof(time_since_last_reading_sec_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CubeBattery)
}

void CubeBattery::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CubeBattery_messages_2eproto.base);
  factory_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&level_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&time_since_last_reading_sec_) -
      reinterpret_cast<char*>(&level_)) + sizeof(time_since_last_reading_sec_));
}

CubeBattery::~CubeBattery() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CubeBattery)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CubeBattery::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  factory_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void CubeBattery::ArenaDtor(void* object) {
  CubeBattery* _this = reinterpret_cast< CubeBattery* >(object);
  (void)_this;
}
void CubeBattery::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CubeBattery::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CubeBattery& CubeBattery::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CubeBattery_messages_2eproto.base);
  return *internal_default_instance();
}


void CubeBattery::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CubeBattery)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  factory_id_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::memset(&level_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&time_since_last_reading_sec_) -
      reinterpret_cast<char*>(&level_)) + sizeof(time_since_last_reading_sec_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CubeBattery::_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) {
      // .Anki.Vector.external_interface.CubeBattery.CubeBatteryLevel level = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_level(static_cast<::Anki::Vector::external_interface::CubeBattery_CubeBatteryLevel>(val));
        } else goto handle_unusual;
        continue;
      // string factory_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_factory_id();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.CubeBattery.factory_id"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float battery_volts = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          battery_volts_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float time_since_last_reading_sec = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          time_since_last_reading_sec_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* CubeBattery::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CubeBattery)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.CubeBattery.CubeBatteryLevel level = 1;
  if (this->level() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_level(), target);
  }

  // string factory_id = 2;
  if (this->factory_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_factory_id().data(), static_cast<int>(this->_internal_factory_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.CubeBattery.factory_id");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_factory_id(), target);
  }

  // float battery_volts = 3;
  if (!(this->battery_volts() <= 0 && this->battery_volts() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_battery_volts(), target);
  }

  // float time_since_last_reading_sec = 4;
  if (!(this->time_since_last_reading_sec() <= 0 && this->time_since_last_reading_sec() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_time_since_last_reading_sec(), 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:Anki.Vector.external_interface.CubeBattery)
  return target;
}

size_t CubeBattery::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CubeBattery)
  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 factory_id = 2;
  if (this->factory_id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_factory_id());
  }

  // .Anki.Vector.external_interface.CubeBattery.CubeBatteryLevel level = 1;
  if (this->level() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_level());
  }

  // float battery_volts = 3;
  if (!(this->battery_volts() <= 0 && this->battery_volts() >= 0)) {
    total_size += 1 + 4;
  }

  // float time_since_last_reading_sec = 4;
  if (!(this->time_since_last_reading_sec() <= 0 && this->time_since_last_reading_sec() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void CubeBattery::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CubeBattery)
  GOOGLE_DCHECK_NE(&from, this);
  const CubeBattery* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CubeBattery>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CubeBattery)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CubeBattery)
    MergeFrom(*source);
  }
}

void CubeBattery::MergeFrom(const CubeBattery& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CubeBattery)
  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.factory_id().size() > 0) {
    _internal_set_factory_id(from._internal_factory_id());
  }
  if (from.level() != 0) {
    _internal_set_level(from._internal_level());
  }
  if (!(from.battery_volts() <= 0 && from.battery_volts() >= 0)) {
    _internal_set_battery_volts(from._internal_battery_volts());
  }
  if (!(from.time_since_last_reading_sec() <= 0 && from.time_since_last_reading_sec() >= 0)) {
    _internal_set_time_since_last_reading_sec(from._internal_time_since_last_reading_sec());
  }
}

void CubeBattery::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CubeBattery)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CubeBattery::CopyFrom(const CubeBattery& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CubeBattery)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CubeBattery::IsInitialized() const {
  return true;
}

void CubeBattery::InternalSwap(CubeBattery* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  factory_id_.Swap(&other->factory_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CubeBattery, time_since_last_reading_sec_)
      + sizeof(CubeBattery::time_since_last_reading_sec_)
      - PROTOBUF_FIELD_OFFSET(CubeBattery, level_)>(
          reinterpret_cast<char*>(&level_),
          reinterpret_cast<char*>(&other->level_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CubeBattery::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void VersionStateRequest::InitAsDefaultInstance() {
}
class VersionStateRequest::_Internal {
 public:
};

VersionStateRequest::VersionStateRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.VersionStateRequest)
}
VersionStateRequest::VersionStateRequest(const VersionStateRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.VersionStateRequest)
}

void VersionStateRequest::SharedCtor() {
}

VersionStateRequest::~VersionStateRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.VersionStateRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void VersionStateRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void VersionStateRequest::ArenaDtor(void* object) {
  VersionStateRequest* _this = reinterpret_cast< VersionStateRequest* >(object);
  (void)_this;
}
void VersionStateRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void VersionStateRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const VersionStateRequest& VersionStateRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_VersionStateRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void VersionStateRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.VersionStateRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* VersionStateRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* VersionStateRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.VersionStateRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.VersionStateRequest)
  return target;
}

size_t VersionStateRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.VersionStateRequest)
  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;

  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 VersionStateRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.VersionStateRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const VersionStateRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<VersionStateRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.VersionStateRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.VersionStateRequest)
    MergeFrom(*source);
  }
}

void VersionStateRequest::MergeFrom(const VersionStateRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.VersionStateRequest)
  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;

}

void VersionStateRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.VersionStateRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void VersionStateRequest::CopyFrom(const VersionStateRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.VersionStateRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool VersionStateRequest::IsInitialized() const {
  return true;
}

void VersionStateRequest::InternalSwap(VersionStateRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata VersionStateRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void VersionStateResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_VersionStateResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class VersionStateResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const VersionStateResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
VersionStateResponse::_Internal::status(const VersionStateResponse* msg) {
  return *msg->status_;
}
void VersionStateResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
VersionStateResponse::VersionStateResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.VersionStateResponse)
}
VersionStateResponse::VersionStateResponse(const VersionStateResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  os_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_os_version().empty()) {
    os_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_os_version(),
      GetArena());
  }
  engine_build_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_engine_build_id().empty()) {
    engine_build_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_engine_build_id(),
      GetArena());
  }
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.VersionStateResponse)
}

void VersionStateResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_VersionStateResponse_messages_2eproto.base);
  os_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  engine_build_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  status_ = nullptr;
}

VersionStateResponse::~VersionStateResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.VersionStateResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void VersionStateResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  os_version_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  engine_build_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete status_;
}

void VersionStateResponse::ArenaDtor(void* object) {
  VersionStateResponse* _this = reinterpret_cast< VersionStateResponse* >(object);
  (void)_this;
}
void VersionStateResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void VersionStateResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const VersionStateResponse& VersionStateResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_VersionStateResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void VersionStateResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.VersionStateResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  os_version_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  engine_build_id_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* VersionStateResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string os_version = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_os_version();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.VersionStateResponse.os_version"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string engine_build_id = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_engine_build_id();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.VersionStateResponse.engine_build_id"));
          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* VersionStateResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.VersionStateResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // string os_version = 2;
  if (this->os_version().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_os_version().data(), static_cast<int>(this->_internal_os_version().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.VersionStateResponse.os_version");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_os_version(), target);
  }

  // string engine_build_id = 3;
  if (this->engine_build_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_engine_build_id().data(), static_cast<int>(this->_internal_engine_build_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.VersionStateResponse.engine_build_id");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_engine_build_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:Anki.Vector.external_interface.VersionStateResponse)
  return target;
}

size_t VersionStateResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.VersionStateResponse)
  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 os_version = 2;
  if (this->os_version().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_os_version());
  }

  // string engine_build_id = 3;
  if (this->engine_build_id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_engine_build_id());
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 VersionStateResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.VersionStateResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const VersionStateResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<VersionStateResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.VersionStateResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.VersionStateResponse)
    MergeFrom(*source);
  }
}

void VersionStateResponse::MergeFrom(const VersionStateResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.VersionStateResponse)
  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.os_version().size() > 0) {
    _internal_set_os_version(from._internal_os_version());
  }
  if (from.engine_build_id().size() > 0) {
    _internal_set_engine_build_id(from._internal_engine_build_id());
  }
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void VersionStateResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.VersionStateResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void VersionStateResponse::CopyFrom(const VersionStateResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.VersionStateResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool VersionStateResponse::IsInitialized() const {
  return true;
}

void VersionStateResponse::InternalSwap(VersionStateResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  os_version_.Swap(&other->os_version_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  engine_build_id_.Swap(&other->engine_build_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata VersionStateResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void SayTextRequest::InitAsDefaultInstance() {
}
class SayTextRequest::_Internal {
 public:
};

SayTextRequest::SayTextRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SayTextRequest)
}
SayTextRequest::SayTextRequest(const SayTextRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  text_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_text().empty()) {
    text_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_text(),
      GetArena());
  }
  ::memcpy(&use_vector_voice_, &from.use_vector_voice_,
    static_cast<size_t>(reinterpret_cast<char*>(&pitch_scalar_) -
    reinterpret_cast<char*>(&use_vector_voice_)) + sizeof(pitch_scalar_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SayTextRequest)
}

void SayTextRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SayTextRequest_messages_2eproto.base);
  text_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&use_vector_voice_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&pitch_scalar_) -
      reinterpret_cast<char*>(&use_vector_voice_)) + sizeof(pitch_scalar_));
}

SayTextRequest::~SayTextRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SayTextRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SayTextRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  text_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void SayTextRequest::ArenaDtor(void* object) {
  SayTextRequest* _this = reinterpret_cast< SayTextRequest* >(object);
  (void)_this;
}
void SayTextRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SayTextRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SayTextRequest& SayTextRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SayTextRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void SayTextRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SayTextRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  text_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::memset(&use_vector_voice_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&pitch_scalar_) -
      reinterpret_cast<char*>(&use_vector_voice_)) + sizeof(pitch_scalar_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SayTextRequest::_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 text = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          auto str = _internal_mutable_text();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.SayTextRequest.text"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool use_vector_voice = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          use_vector_voice_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float duration_scalar = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          duration_scalar_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float pitch_scalar = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          pitch_scalar_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* SayTextRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.SayTextRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string text = 1;
  if (this->text().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_text().data(), static_cast<int>(this->_internal_text().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.SayTextRequest.text");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_text(), target);
  }

  // bool use_vector_voice = 2;
  if (this->use_vector_voice() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_use_vector_voice(), target);
  }

  // float duration_scalar = 3;
  if (!(this->duration_scalar() <= 0 && this->duration_scalar() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_duration_scalar(), target);
  }

  // float pitch_scalar = 4;
  if (!(this->pitch_scalar() <= 0 && this->pitch_scalar() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_pitch_scalar(), 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:Anki.Vector.external_interface.SayTextRequest)
  return target;
}

size_t SayTextRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SayTextRequest)
  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 text = 1;
  if (this->text().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_text());
  }

  // bool use_vector_voice = 2;
  if (this->use_vector_voice() != 0) {
    total_size += 1 + 1;
  }

  // float duration_scalar = 3;
  if (!(this->duration_scalar() <= 0 && this->duration_scalar() >= 0)) {
    total_size += 1 + 4;
  }

  // float pitch_scalar = 4;
  if (!(this->pitch_scalar() <= 0 && this->pitch_scalar() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void SayTextRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.SayTextRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const SayTextRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SayTextRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.SayTextRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.SayTextRequest)
    MergeFrom(*source);
  }
}

void SayTextRequest::MergeFrom(const SayTextRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.SayTextRequest)
  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.text().size() > 0) {
    _internal_set_text(from._internal_text());
  }
  if (from.use_vector_voice() != 0) {
    _internal_set_use_vector_voice(from._internal_use_vector_voice());
  }
  if (!(from.duration_scalar() <= 0 && from.duration_scalar() >= 0)) {
    _internal_set_duration_scalar(from._internal_duration_scalar());
  }
  if (!(from.pitch_scalar() <= 0 && from.pitch_scalar() >= 0)) {
    _internal_set_pitch_scalar(from._internal_pitch_scalar());
  }
}

void SayTextRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.SayTextRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SayTextRequest::CopyFrom(const SayTextRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SayTextRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SayTextRequest::IsInitialized() const {
  return true;
}

void SayTextRequest::InternalSwap(SayTextRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  text_.Swap(&other->text_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SayTextRequest, pitch_scalar_)
      + sizeof(SayTextRequest::pitch_scalar_)
      - PROTOBUF_FIELD_OFFSET(SayTextRequest, use_vector_voice_)>(
          reinterpret_cast<char*>(&use_vector_voice_),
          reinterpret_cast<char*>(&other->use_vector_voice_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SayTextRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void SayTextResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_SayTextResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class SayTextResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const SayTextResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
SayTextResponse::_Internal::status(const SayTextResponse* msg) {
  return *msg->status_;
}
void SayTextResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
SayTextResponse::SayTextResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SayTextResponse)
}
SayTextResponse::SayTextResponse(const SayTextResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  state_ = from.state_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SayTextResponse)
}

void SayTextResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SayTextResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&state_) -
      reinterpret_cast<char*>(&status_)) + sizeof(state_));
}

SayTextResponse::~SayTextResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SayTextResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SayTextResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void SayTextResponse::ArenaDtor(void* object) {
  SayTextResponse* _this = reinterpret_cast< SayTextResponse* >(object);
  (void)_this;
}
void SayTextResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SayTextResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SayTextResponse& SayTextResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SayTextResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void SayTextResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SayTextResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  state_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SayTextResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SayTextResponse.UtteranceState state = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_state(static_cast<::Anki::Vector::external_interface::SayTextResponse_UtteranceState>(val));
        } 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* SayTextResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.SayTextResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.SayTextResponse.UtteranceState state = 2;
  if (this->state() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_state(), 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:Anki.Vector.external_interface.SayTextResponse)
  return target;
}

size_t SayTextResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SayTextResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.SayTextResponse.UtteranceState state = 2;
  if (this->state() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_state());
  }

  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 SayTextResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.SayTextResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const SayTextResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SayTextResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.SayTextResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.SayTextResponse)
    MergeFrom(*source);
  }
}

void SayTextResponse::MergeFrom(const SayTextResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.SayTextResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.state() != 0) {
    _internal_set_state(from._internal_state());
  }
}

void SayTextResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.SayTextResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SayTextResponse::CopyFrom(const SayTextResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SayTextResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SayTextResponse::IsInitialized() const {
  return true;
}

void SayTextResponse::InternalSwap(SayTextResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SayTextResponse, state_)
      + sizeof(SayTextResponse::state_)
      - PROTOBUF_FIELD_OFFSET(SayTextResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SayTextResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void StimulationInfo::InitAsDefaultInstance() {
}
class StimulationInfo::_Internal {
 public:
};

StimulationInfo::StimulationInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  emotion_events_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.StimulationInfo)
}
StimulationInfo::StimulationInfo(const StimulationInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      emotion_events_(from.emotion_events_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&value_, &from.value_,
    static_cast<size_t>(reinterpret_cast<char*>(&max_value_) -
    reinterpret_cast<char*>(&value_)) + sizeof(max_value_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.StimulationInfo)
}

void StimulationInfo::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_StimulationInfo_messages_2eproto.base);
  ::memset(&value_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&max_value_) -
      reinterpret_cast<char*>(&value_)) + sizeof(max_value_));
}

StimulationInfo::~StimulationInfo() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.StimulationInfo)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void StimulationInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void StimulationInfo::ArenaDtor(void* object) {
  StimulationInfo* _this = reinterpret_cast< StimulationInfo* >(object);
  (void)_this;
}
void StimulationInfo::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void StimulationInfo::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const StimulationInfo& StimulationInfo::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_StimulationInfo_messages_2eproto.base);
  return *internal_default_instance();
}


void StimulationInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.StimulationInfo)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  emotion_events_.Clear();
  ::memset(&value_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&max_value_) -
      reinterpret_cast<char*>(&value_)) + sizeof(max_value_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* StimulationInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // repeated string emotion_events = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_emotion_events();
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.StimulationInfo.emotion_events"));
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else goto handle_unusual;
        continue;
      // float value = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float velocity = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          velocity_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float accel = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          accel_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float value_before_event = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 45)) {
          value_before_event_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float min_value = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 53)) {
          min_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float max_value = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 61)) {
          max_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* StimulationInfo::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.StimulationInfo)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string emotion_events = 1;
  for (int i = 0, n = this->_internal_emotion_events_size(); i < n; i++) {
    const auto& s = this->_internal_emotion_events(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.StimulationInfo.emotion_events");
    target = stream->WriteString(1, s, target);
  }

  // float value = 2;
  if (!(this->value() <= 0 && this->value() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_value(), target);
  }

  // float velocity = 3;
  if (!(this->velocity() <= 0 && this->velocity() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_velocity(), target);
  }

  // float accel = 4;
  if (!(this->accel() <= 0 && this->accel() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_accel(), target);
  }

  // float value_before_event = 5;
  if (!(this->value_before_event() <= 0 && this->value_before_event() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(5, this->_internal_value_before_event(), target);
  }

  // float min_value = 6;
  if (!(this->min_value() <= 0 && this->min_value() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(6, this->_internal_min_value(), target);
  }

  // float max_value = 7;
  if (!(this->max_value() <= 0 && this->max_value() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(7, this->_internal_max_value(), 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:Anki.Vector.external_interface.StimulationInfo)
  return target;
}

size_t StimulationInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.StimulationInfo)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string emotion_events = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(emotion_events_.size());
  for (int i = 0, n = emotion_events_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      emotion_events_.Get(i));
  }

  // float value = 2;
  if (!(this->value() <= 0 && this->value() >= 0)) {
    total_size += 1 + 4;
  }

  // float velocity = 3;
  if (!(this->velocity() <= 0 && this->velocity() >= 0)) {
    total_size += 1 + 4;
  }

  // float accel = 4;
  if (!(this->accel() <= 0 && this->accel() >= 0)) {
    total_size += 1 + 4;
  }

  // float value_before_event = 5;
  if (!(this->value_before_event() <= 0 && this->value_before_event() >= 0)) {
    total_size += 1 + 4;
  }

  // float min_value = 6;
  if (!(this->min_value() <= 0 && this->min_value() >= 0)) {
    total_size += 1 + 4;
  }

  // float max_value = 7;
  if (!(this->max_value() <= 0 && this->max_value() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void StimulationInfo::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.StimulationInfo)
  GOOGLE_DCHECK_NE(&from, this);
  const StimulationInfo* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<StimulationInfo>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.StimulationInfo)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.StimulationInfo)
    MergeFrom(*source);
  }
}

void StimulationInfo::MergeFrom(const StimulationInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.StimulationInfo)
  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;

  emotion_events_.MergeFrom(from.emotion_events_);
  if (!(from.value() <= 0 && from.value() >= 0)) {
    _internal_set_value(from._internal_value());
  }
  if (!(from.velocity() <= 0 && from.velocity() >= 0)) {
    _internal_set_velocity(from._internal_velocity());
  }
  if (!(from.accel() <= 0 && from.accel() >= 0)) {
    _internal_set_accel(from._internal_accel());
  }
  if (!(from.value_before_event() <= 0 && from.value_before_event() >= 0)) {
    _internal_set_value_before_event(from._internal_value_before_event());
  }
  if (!(from.min_value() <= 0 && from.min_value() >= 0)) {
    _internal_set_min_value(from._internal_min_value());
  }
  if (!(from.max_value() <= 0 && from.max_value() >= 0)) {
    _internal_set_max_value(from._internal_max_value());
  }
}

void StimulationInfo::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.StimulationInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void StimulationInfo::CopyFrom(const StimulationInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.StimulationInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool StimulationInfo::IsInitialized() const {
  return true;
}

void StimulationInfo::InternalSwap(StimulationInfo* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  emotion_events_.InternalSwap(&other->emotion_events_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(StimulationInfo, max_value_)
      + sizeof(StimulationInfo::max_value_)
      - PROTOBUF_FIELD_OFFSET(StimulationInfo, value_)>(
          reinterpret_cast<char*>(&value_),
          reinterpret_cast<char*>(&other->value_));
}

::PROTOBUF_NAMESPACE_ID::Metadata StimulationInfo::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void AudioSendModeRequest::InitAsDefaultInstance() {
}
class AudioSendModeRequest::_Internal {
 public:
};

AudioSendModeRequest::AudioSendModeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AudioSendModeRequest)
}
AudioSendModeRequest::AudioSendModeRequest(const AudioSendModeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  mode_ = from.mode_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AudioSendModeRequest)
}

void AudioSendModeRequest::SharedCtor() {
  mode_ = 0;
}

AudioSendModeRequest::~AudioSendModeRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AudioSendModeRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AudioSendModeRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void AudioSendModeRequest::ArenaDtor(void* object) {
  AudioSendModeRequest* _this = reinterpret_cast< AudioSendModeRequest* >(object);
  (void)_this;
}
void AudioSendModeRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AudioSendModeRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AudioSendModeRequest& AudioSendModeRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AudioSendModeRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void AudioSendModeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AudioSendModeRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  mode_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AudioSendModeRequest::_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) {
      // .Anki.Vector.external_interface.AudioProcessingMode mode = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_mode(static_cast<::Anki::Vector::external_interface::AudioProcessingMode>(val));
        } 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* AudioSendModeRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AudioSendModeRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.AudioProcessingMode mode = 1;
  if (this->mode() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_mode(), 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:Anki.Vector.external_interface.AudioSendModeRequest)
  return target;
}

size_t AudioSendModeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AudioSendModeRequest)
  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;

  // .Anki.Vector.external_interface.AudioProcessingMode mode = 1;
  if (this->mode() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_mode());
  }

  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 AudioSendModeRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.AudioSendModeRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const AudioSendModeRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AudioSendModeRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.AudioSendModeRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.AudioSendModeRequest)
    MergeFrom(*source);
  }
}

void AudioSendModeRequest::MergeFrom(const AudioSendModeRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AudioSendModeRequest)
  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.mode() != 0) {
    _internal_set_mode(from._internal_mode());
  }
}

void AudioSendModeRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.AudioSendModeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AudioSendModeRequest::CopyFrom(const AudioSendModeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AudioSendModeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AudioSendModeRequest::IsInitialized() const {
  return true;
}

void AudioSendModeRequest::InternalSwap(AudioSendModeRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(mode_, other->mode_);
}

::PROTOBUF_NAMESPACE_ID::Metadata AudioSendModeRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void AudioSendModeChanged::InitAsDefaultInstance() {
}
class AudioSendModeChanged::_Internal {
 public:
};

AudioSendModeChanged::AudioSendModeChanged(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AudioSendModeChanged)
}
AudioSendModeChanged::AudioSendModeChanged(const AudioSendModeChanged& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  mode_ = from.mode_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AudioSendModeChanged)
}

void AudioSendModeChanged::SharedCtor() {
  mode_ = 0;
}

AudioSendModeChanged::~AudioSendModeChanged() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AudioSendModeChanged)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AudioSendModeChanged::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void AudioSendModeChanged::ArenaDtor(void* object) {
  AudioSendModeChanged* _this = reinterpret_cast< AudioSendModeChanged* >(object);
  (void)_this;
}
void AudioSendModeChanged::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AudioSendModeChanged::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AudioSendModeChanged& AudioSendModeChanged::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AudioSendModeChanged_messages_2eproto.base);
  return *internal_default_instance();
}


void AudioSendModeChanged::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AudioSendModeChanged)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  mode_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AudioSendModeChanged::_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) {
      // .Anki.Vector.external_interface.AudioProcessingMode mode = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_mode(static_cast<::Anki::Vector::external_interface::AudioProcessingMode>(val));
        } 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* AudioSendModeChanged::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AudioSendModeChanged)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.AudioProcessingMode mode = 1;
  if (this->mode() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_mode(), 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:Anki.Vector.external_interface.AudioSendModeChanged)
  return target;
}

size_t AudioSendModeChanged::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AudioSendModeChanged)
  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;

  // .Anki.Vector.external_interface.AudioProcessingMode mode = 1;
  if (this->mode() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_mode());
  }

  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 AudioSendModeChanged::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.AudioSendModeChanged)
  GOOGLE_DCHECK_NE(&from, this);
  const AudioSendModeChanged* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AudioSendModeChanged>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.AudioSendModeChanged)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.AudioSendModeChanged)
    MergeFrom(*source);
  }
}

void AudioSendModeChanged::MergeFrom(const AudioSendModeChanged& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AudioSendModeChanged)
  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.mode() != 0) {
    _internal_set_mode(from._internal_mode());
  }
}

void AudioSendModeChanged::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.AudioSendModeChanged)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AudioSendModeChanged::CopyFrom(const AudioSendModeChanged& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AudioSendModeChanged)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AudioSendModeChanged::IsInitialized() const {
  return true;
}

void AudioSendModeChanged::InternalSwap(AudioSendModeChanged* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(mode_, other->mode_);
}

::PROTOBUF_NAMESPACE_ID::Metadata AudioSendModeChanged::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void AudioChunk::InitAsDefaultInstance() {
}
class AudioChunk::_Internal {
 public:
};

AudioChunk::AudioChunk(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AudioChunk)
}
AudioChunk::AudioChunk(const AudioChunk& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  signal_power_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_signal_power().empty()) {
    signal_power_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_signal_power(),
      GetArena());
  }
  direction_strengths_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_direction_strengths().empty()) {
    direction_strengths_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_direction_strengths(),
      GetArena());
  }
  ::memcpy(&robot_time_stamp_, &from.robot_time_stamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&noise_floor_power_) -
    reinterpret_cast<char*>(&robot_time_stamp_)) + sizeof(noise_floor_power_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AudioChunk)
}

void AudioChunk::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_AudioChunk_messages_2eproto.base);
  signal_power_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  direction_strengths_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&robot_time_stamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&noise_floor_power_) -
      reinterpret_cast<char*>(&robot_time_stamp_)) + sizeof(noise_floor_power_));
}

AudioChunk::~AudioChunk() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AudioChunk)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AudioChunk::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  signal_power_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  direction_strengths_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void AudioChunk::ArenaDtor(void* object) {
  AudioChunk* _this = reinterpret_cast< AudioChunk* >(object);
  (void)_this;
}
void AudioChunk::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AudioChunk::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AudioChunk& AudioChunk::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AudioChunk_messages_2eproto.base);
  return *internal_default_instance();
}


void AudioChunk::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AudioChunk)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  signal_power_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  direction_strengths_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::memset(&robot_time_stamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&noise_floor_power_) -
      reinterpret_cast<char*>(&robot_time_stamp_)) + sizeof(noise_floor_power_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AudioChunk::_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 robot_time_stamp = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          robot_time_stamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 group_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          group_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 chunk_id = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          chunk_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 audio_chunk_count = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          audio_chunk_count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bytes signal_power = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          auto str = _internal_mutable_signal_power();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bytes direction_strengths = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          auto str = _internal_mutable_direction_strengths();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 source_direction = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          source_direction_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 source_confidence = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          source_confidence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 noise_floor_power = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
          noise_floor_power_ = ::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* AudioChunk::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AudioChunk)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 robot_time_stamp = 1;
  if (this->robot_time_stamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_robot_time_stamp(), target);
  }

  // uint32 group_id = 2;
  if (this->group_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_group_id(), target);
  }

  // uint32 chunk_id = 3;
  if (this->chunk_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(3, this->_internal_chunk_id(), target);
  }

  // uint32 audio_chunk_count = 4;
  if (this->audio_chunk_count() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(4, this->_internal_audio_chunk_count(), target);
  }

  // bytes signal_power = 5;
  if (this->signal_power().size() > 0) {
    target = stream->WriteBytesMaybeAliased(
        5, this->_internal_signal_power(), target);
  }

  // bytes direction_strengths = 6;
  if (this->direction_strengths().size() > 0) {
    target = stream->WriteBytesMaybeAliased(
        6, this->_internal_direction_strengths(), target);
  }

  // uint32 source_direction = 7;
  if (this->source_direction() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(7, this->_internal_source_direction(), target);
  }

  // uint32 source_confidence = 8;
  if (this->source_confidence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(8, this->_internal_source_confidence(), target);
  }

  // uint32 noise_floor_power = 9;
  if (this->noise_floor_power() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(9, this->_internal_noise_floor_power(), 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:Anki.Vector.external_interface.AudioChunk)
  return target;
}

size_t AudioChunk::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AudioChunk)
  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;

  // bytes signal_power = 5;
  if (this->signal_power().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_signal_power());
  }

  // bytes direction_strengths = 6;
  if (this->direction_strengths().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_direction_strengths());
  }

  // uint32 robot_time_stamp = 1;
  if (this->robot_time_stamp() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_robot_time_stamp());
  }

  // uint32 group_id = 2;
  if (this->group_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_group_id());
  }

  // uint32 chunk_id = 3;
  if (this->chunk_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_chunk_id());
  }

  // uint32 audio_chunk_count = 4;
  if (this->audio_chunk_count() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_audio_chunk_count());
  }

  // uint32 source_direction = 7;
  if (this->source_direction() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_source_direction());
  }

  // uint32 source_confidence = 8;
  if (this->source_confidence() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_source_confidence());
  }

  // uint32 noise_floor_power = 9;
  if (this->noise_floor_power() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_noise_floor_power());
  }

  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 AudioChunk::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.AudioChunk)
  GOOGLE_DCHECK_NE(&from, this);
  const AudioChunk* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AudioChunk>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.AudioChunk)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.AudioChunk)
    MergeFrom(*source);
  }
}

void AudioChunk::MergeFrom(const AudioChunk& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AudioChunk)
  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.signal_power().size() > 0) {
    _internal_set_signal_power(from._internal_signal_power());
  }
  if (from.direction_strengths().size() > 0) {
    _internal_set_direction_strengths(from._internal_direction_strengths());
  }
  if (from.robot_time_stamp() != 0) {
    _internal_set_robot_time_stamp(from._internal_robot_time_stamp());
  }
  if (from.group_id() != 0) {
    _internal_set_group_id(from._internal_group_id());
  }
  if (from.chunk_id() != 0) {
    _internal_set_chunk_id(from._internal_chunk_id());
  }
  if (from.audio_chunk_count() != 0) {
    _internal_set_audio_chunk_count(from._internal_audio_chunk_count());
  }
  if (from.source_direction() != 0) {
    _internal_set_source_direction(from._internal_source_direction());
  }
  if (from.source_confidence() != 0) {
    _internal_set_source_confidence(from._internal_source_confidence());
  }
  if (from.noise_floor_power() != 0) {
    _internal_set_noise_floor_power(from._internal_noise_floor_power());
  }
}

void AudioChunk::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.AudioChunk)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AudioChunk::CopyFrom(const AudioChunk& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AudioChunk)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AudioChunk::IsInitialized() const {
  return true;
}

void AudioChunk::InternalSwap(AudioChunk* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  signal_power_.Swap(&other->signal_power_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  direction_strengths_.Swap(&other->direction_strengths_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AudioChunk, noise_floor_power_)
      + sizeof(AudioChunk::noise_floor_power_)
      - PROTOBUF_FIELD_OFFSET(AudioChunk, robot_time_stamp_)>(
          reinterpret_cast<char*>(&robot_time_stamp_),
          reinterpret_cast<char*>(&other->robot_time_stamp_));
}

::PROTOBUF_NAMESPACE_ID::Metadata AudioChunk::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void AudioFeedRequest::InitAsDefaultInstance() {
}
class AudioFeedRequest::_Internal {
 public:
};

AudioFeedRequest::AudioFeedRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AudioFeedRequest)
}
AudioFeedRequest::AudioFeedRequest(const AudioFeedRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AudioFeedRequest)
}

void AudioFeedRequest::SharedCtor() {
}

AudioFeedRequest::~AudioFeedRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AudioFeedRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AudioFeedRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void AudioFeedRequest::ArenaDtor(void* object) {
  AudioFeedRequest* _this = reinterpret_cast< AudioFeedRequest* >(object);
  (void)_this;
}
void AudioFeedRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AudioFeedRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AudioFeedRequest& AudioFeedRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AudioFeedRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void AudioFeedRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AudioFeedRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AudioFeedRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* AudioFeedRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AudioFeedRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.AudioFeedRequest)
  return target;
}

size_t AudioFeedRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AudioFeedRequest)
  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;

  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 AudioFeedRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.AudioFeedRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const AudioFeedRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AudioFeedRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.AudioFeedRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.AudioFeedRequest)
    MergeFrom(*source);
  }
}

void AudioFeedRequest::MergeFrom(const AudioFeedRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AudioFeedRequest)
  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;

}

void AudioFeedRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.AudioFeedRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AudioFeedRequest::CopyFrom(const AudioFeedRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AudioFeedRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AudioFeedRequest::IsInitialized() const {
  return true;
}

void AudioFeedRequest::InternalSwap(AudioFeedRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata AudioFeedRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void AudioFeedResponse::InitAsDefaultInstance() {
}
class AudioFeedResponse::_Internal {
 public:
};

AudioFeedResponse::AudioFeedResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AudioFeedResponse)
}
AudioFeedResponse::AudioFeedResponse(const AudioFeedResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  signal_power_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_signal_power().empty()) {
    signal_power_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_signal_power(),
      GetArena());
  }
  direction_strengths_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_direction_strengths().empty()) {
    direction_strengths_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_direction_strengths(),
      GetArena());
  }
  ::memcpy(&robot_time_stamp_, &from.robot_time_stamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&noise_floor_power_) -
    reinterpret_cast<char*>(&robot_time_stamp_)) + sizeof(noise_floor_power_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AudioFeedResponse)
}

void AudioFeedResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_AudioFeedResponse_messages_2eproto.base);
  signal_power_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  direction_strengths_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&robot_time_stamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&noise_floor_power_) -
      reinterpret_cast<char*>(&robot_time_stamp_)) + sizeof(noise_floor_power_));
}

AudioFeedResponse::~AudioFeedResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AudioFeedResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AudioFeedResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  signal_power_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  direction_strengths_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void AudioFeedResponse::ArenaDtor(void* object) {
  AudioFeedResponse* _this = reinterpret_cast< AudioFeedResponse* >(object);
  (void)_this;
}
void AudioFeedResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AudioFeedResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AudioFeedResponse& AudioFeedResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AudioFeedResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void AudioFeedResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AudioFeedResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  signal_power_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  direction_strengths_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::memset(&robot_time_stamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&noise_floor_power_) -
      reinterpret_cast<char*>(&robot_time_stamp_)) + sizeof(noise_floor_power_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AudioFeedResponse::_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 robot_time_stamp = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          robot_time_stamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 group_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          group_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bytes signal_power = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_signal_power();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bytes direction_strengths = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          auto str = _internal_mutable_direction_strengths();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 source_direction = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          source_direction_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 source_confidence = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          source_confidence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 noise_floor_power = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          noise_floor_power_ = ::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* AudioFeedResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AudioFeedResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 robot_time_stamp = 1;
  if (this->robot_time_stamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_robot_time_stamp(), target);
  }

  // uint32 group_id = 2;
  if (this->group_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_group_id(), target);
  }

  // bytes signal_power = 3;
  if (this->signal_power().size() > 0) {
    target = stream->WriteBytesMaybeAliased(
        3, this->_internal_signal_power(), target);
  }

  // bytes direction_strengths = 4;
  if (this->direction_strengths().size() > 0) {
    target = stream->WriteBytesMaybeAliased(
        4, this->_internal_direction_strengths(), target);
  }

  // uint32 source_direction = 5;
  if (this->source_direction() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(5, this->_internal_source_direction(), target);
  }

  // uint32 source_confidence = 6;
  if (this->source_confidence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(6, this->_internal_source_confidence(), target);
  }

  // uint32 noise_floor_power = 7;
  if (this->noise_floor_power() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(7, this->_internal_noise_floor_power(), 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:Anki.Vector.external_interface.AudioFeedResponse)
  return target;
}

size_t AudioFeedResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AudioFeedResponse)
  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;

  // bytes signal_power = 3;
  if (this->signal_power().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_signal_power());
  }

  // bytes direction_strengths = 4;
  if (this->direction_strengths().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_direction_strengths());
  }

  // uint32 robot_time_stamp = 1;
  if (this->robot_time_stamp() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_robot_time_stamp());
  }

  // uint32 group_id = 2;
  if (this->group_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_group_id());
  }

  // uint32 source_direction = 5;
  if (this->source_direction() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_source_direction());
  }

  // uint32 source_confidence = 6;
  if (this->source_confidence() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_source_confidence());
  }

  // uint32 noise_floor_power = 7;
  if (this->noise_floor_power() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_noise_floor_power());
  }

  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 AudioFeedResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.AudioFeedResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const AudioFeedResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AudioFeedResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.AudioFeedResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.AudioFeedResponse)
    MergeFrom(*source);
  }
}

void AudioFeedResponse::MergeFrom(const AudioFeedResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AudioFeedResponse)
  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.signal_power().size() > 0) {
    _internal_set_signal_power(from._internal_signal_power());
  }
  if (from.direction_strengths().size() > 0) {
    _internal_set_direction_strengths(from._internal_direction_strengths());
  }
  if (from.robot_time_stamp() != 0) {
    _internal_set_robot_time_stamp(from._internal_robot_time_stamp());
  }
  if (from.group_id() != 0) {
    _internal_set_group_id(from._internal_group_id());
  }
  if (from.source_direction() != 0) {
    _internal_set_source_direction(from._internal_source_direction());
  }
  if (from.source_confidence() != 0) {
    _internal_set_source_confidence(from._internal_source_confidence());
  }
  if (from.noise_floor_power() != 0) {
    _internal_set_noise_floor_power(from._internal_noise_floor_power());
  }
}

void AudioFeedResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.AudioFeedResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AudioFeedResponse::CopyFrom(const AudioFeedResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AudioFeedResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AudioFeedResponse::IsInitialized() const {
  return true;
}

void AudioFeedResponse::InternalSwap(AudioFeedResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  signal_power_.Swap(&other->signal_power_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  direction_strengths_.Swap(&other->direction_strengths_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AudioFeedResponse, noise_floor_power_)
      + sizeof(AudioFeedResponse::noise_floor_power_)
      - PROTOBUF_FIELD_OFFSET(AudioFeedResponse, robot_time_stamp_)>(
          reinterpret_cast<char*>(&robot_time_stamp_),
          reinterpret_cast<char*>(&other->robot_time_stamp_));
}

::PROTOBUF_NAMESPACE_ID::Metadata AudioFeedResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ExternalAudioStreamPrepare::InitAsDefaultInstance() {
}
class ExternalAudioStreamPrepare::_Internal {
 public:
};

ExternalAudioStreamPrepare::ExternalAudioStreamPrepare(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ExternalAudioStreamPrepare)
}
ExternalAudioStreamPrepare::ExternalAudioStreamPrepare(const ExternalAudioStreamPrepare& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&audio_frame_rate_, &from.audio_frame_rate_,
    static_cast<size_t>(reinterpret_cast<char*>(&audio_volume_) -
    reinterpret_cast<char*>(&audio_frame_rate_)) + sizeof(audio_volume_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ExternalAudioStreamPrepare)
}

void ExternalAudioStreamPrepare::SharedCtor() {
  ::memset(&audio_frame_rate_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&audio_volume_) -
      reinterpret_cast<char*>(&audio_frame_rate_)) + sizeof(audio_volume_));
}

ExternalAudioStreamPrepare::~ExternalAudioStreamPrepare() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ExternalAudioStreamPrepare)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ExternalAudioStreamPrepare::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void ExternalAudioStreamPrepare::ArenaDtor(void* object) {
  ExternalAudioStreamPrepare* _this = reinterpret_cast< ExternalAudioStreamPrepare* >(object);
  (void)_this;
}
void ExternalAudioStreamPrepare::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ExternalAudioStreamPrepare::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ExternalAudioStreamPrepare& ExternalAudioStreamPrepare::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ExternalAudioStreamPrepare_messages_2eproto.base);
  return *internal_default_instance();
}


void ExternalAudioStreamPrepare::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ExternalAudioStreamPrepare)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&audio_frame_rate_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&audio_volume_) -
      reinterpret_cast<char*>(&audio_frame_rate_)) + sizeof(audio_volume_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExternalAudioStreamPrepare::_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 audio_frame_rate = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          audio_frame_rate_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 audio_volume = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          audio_volume_ = ::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* ExternalAudioStreamPrepare::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ExternalAudioStreamPrepare)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 audio_frame_rate = 1;
  if (this->audio_frame_rate() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_audio_frame_rate(), target);
  }

  // uint32 audio_volume = 2;
  if (this->audio_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_audio_volume(), 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:Anki.Vector.external_interface.ExternalAudioStreamPrepare)
  return target;
}

size_t ExternalAudioStreamPrepare::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ExternalAudioStreamPrepare)
  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 audio_frame_rate = 1;
  if (this->audio_frame_rate() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_audio_frame_rate());
  }

  // uint32 audio_volume = 2;
  if (this->audio_volume() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_audio_volume());
  }

  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 ExternalAudioStreamPrepare::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamPrepare)
  GOOGLE_DCHECK_NE(&from, this);
  const ExternalAudioStreamPrepare* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ExternalAudioStreamPrepare>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.ExternalAudioStreamPrepare)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.ExternalAudioStreamPrepare)
    MergeFrom(*source);
  }
}

void ExternalAudioStreamPrepare::MergeFrom(const ExternalAudioStreamPrepare& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamPrepare)
  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.audio_frame_rate() != 0) {
    _internal_set_audio_frame_rate(from._internal_audio_frame_rate());
  }
  if (from.audio_volume() != 0) {
    _internal_set_audio_volume(from._internal_audio_volume());
  }
}

void ExternalAudioStreamPrepare::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamPrepare)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ExternalAudioStreamPrepare::CopyFrom(const ExternalAudioStreamPrepare& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamPrepare)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExternalAudioStreamPrepare::IsInitialized() const {
  return true;
}

void ExternalAudioStreamPrepare::InternalSwap(ExternalAudioStreamPrepare* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ExternalAudioStreamPrepare, audio_volume_)
      + sizeof(ExternalAudioStreamPrepare::audio_volume_)
      - PROTOBUF_FIELD_OFFSET(ExternalAudioStreamPrepare, audio_frame_rate_)>(
          reinterpret_cast<char*>(&audio_frame_rate_),
          reinterpret_cast<char*>(&other->audio_frame_rate_));
}

::PROTOBUF_NAMESPACE_ID::Metadata ExternalAudioStreamPrepare::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ExternalAudioStreamChunk::InitAsDefaultInstance() {
}
class ExternalAudioStreamChunk::_Internal {
 public:
};

ExternalAudioStreamChunk::ExternalAudioStreamChunk(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ExternalAudioStreamChunk)
}
ExternalAudioStreamChunk::ExternalAudioStreamChunk(const ExternalAudioStreamChunk& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  audio_chunk_samples_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_audio_chunk_samples().empty()) {
    audio_chunk_samples_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_audio_chunk_samples(),
      GetArena());
  }
  audio_chunk_size_bytes_ = from.audio_chunk_size_bytes_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ExternalAudioStreamChunk)
}

void ExternalAudioStreamChunk::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ExternalAudioStreamChunk_messages_2eproto.base);
  audio_chunk_samples_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  audio_chunk_size_bytes_ = 0u;
}

ExternalAudioStreamChunk::~ExternalAudioStreamChunk() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ExternalAudioStreamChunk)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ExternalAudioStreamChunk::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  audio_chunk_samples_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void ExternalAudioStreamChunk::ArenaDtor(void* object) {
  ExternalAudioStreamChunk* _this = reinterpret_cast< ExternalAudioStreamChunk* >(object);
  (void)_this;
}
void ExternalAudioStreamChunk::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ExternalAudioStreamChunk::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ExternalAudioStreamChunk& ExternalAudioStreamChunk::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ExternalAudioStreamChunk_messages_2eproto.base);
  return *internal_default_instance();
}


void ExternalAudioStreamChunk::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ExternalAudioStreamChunk)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  audio_chunk_samples_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  audio_chunk_size_bytes_ = 0u;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExternalAudioStreamChunk::_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 audio_chunk_size_bytes = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          audio_chunk_size_bytes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bytes audio_chunk_samples = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_audio_chunk_samples();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          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* ExternalAudioStreamChunk::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ExternalAudioStreamChunk)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 audio_chunk_size_bytes = 1;
  if (this->audio_chunk_size_bytes() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_audio_chunk_size_bytes(), target);
  }

  // bytes audio_chunk_samples = 2;
  if (this->audio_chunk_samples().size() > 0) {
    target = stream->WriteBytesMaybeAliased(
        2, this->_internal_audio_chunk_samples(), 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:Anki.Vector.external_interface.ExternalAudioStreamChunk)
  return target;
}

size_t ExternalAudioStreamChunk::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ExternalAudioStreamChunk)
  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;

  // bytes audio_chunk_samples = 2;
  if (this->audio_chunk_samples().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_audio_chunk_samples());
  }

  // uint32 audio_chunk_size_bytes = 1;
  if (this->audio_chunk_size_bytes() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_audio_chunk_size_bytes());
  }

  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 ExternalAudioStreamChunk::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamChunk)
  GOOGLE_DCHECK_NE(&from, this);
  const ExternalAudioStreamChunk* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ExternalAudioStreamChunk>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.ExternalAudioStreamChunk)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.ExternalAudioStreamChunk)
    MergeFrom(*source);
  }
}

void ExternalAudioStreamChunk::MergeFrom(const ExternalAudioStreamChunk& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamChunk)
  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.audio_chunk_samples().size() > 0) {
    _internal_set_audio_chunk_samples(from._internal_audio_chunk_samples());
  }
  if (from.audio_chunk_size_bytes() != 0) {
    _internal_set_audio_chunk_size_bytes(from._internal_audio_chunk_size_bytes());
  }
}

void ExternalAudioStreamChunk::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamChunk)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ExternalAudioStreamChunk::CopyFrom(const ExternalAudioStreamChunk& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamChunk)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExternalAudioStreamChunk::IsInitialized() const {
  return true;
}

void ExternalAudioStreamChunk::InternalSwap(ExternalAudioStreamChunk* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  audio_chunk_samples_.Swap(&other->audio_chunk_samples_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  swap(audio_chunk_size_bytes_, other->audio_chunk_size_bytes_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExternalAudioStreamChunk::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ExternalAudioStreamComplete::InitAsDefaultInstance() {
}
class ExternalAudioStreamComplete::_Internal {
 public:
};

ExternalAudioStreamComplete::ExternalAudioStreamComplete(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ExternalAudioStreamComplete)
}
ExternalAudioStreamComplete::ExternalAudioStreamComplete(const ExternalAudioStreamComplete& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ExternalAudioStreamComplete)
}

void ExternalAudioStreamComplete::SharedCtor() {
}

ExternalAudioStreamComplete::~ExternalAudioStreamComplete() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ExternalAudioStreamComplete)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ExternalAudioStreamComplete::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void ExternalAudioStreamComplete::ArenaDtor(void* object) {
  ExternalAudioStreamComplete* _this = reinterpret_cast< ExternalAudioStreamComplete* >(object);
  (void)_this;
}
void ExternalAudioStreamComplete::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ExternalAudioStreamComplete::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ExternalAudioStreamComplete& ExternalAudioStreamComplete::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ExternalAudioStreamComplete_messages_2eproto.base);
  return *internal_default_instance();
}


void ExternalAudioStreamComplete::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ExternalAudioStreamComplete)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExternalAudioStreamComplete::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* ExternalAudioStreamComplete::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ExternalAudioStreamComplete)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.ExternalAudioStreamComplete)
  return target;
}

size_t ExternalAudioStreamComplete::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ExternalAudioStreamComplete)
  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;

  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 ExternalAudioStreamComplete::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamComplete)
  GOOGLE_DCHECK_NE(&from, this);
  const ExternalAudioStreamComplete* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ExternalAudioStreamComplete>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.ExternalAudioStreamComplete)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.ExternalAudioStreamComplete)
    MergeFrom(*source);
  }
}

void ExternalAudioStreamComplete::MergeFrom(const ExternalAudioStreamComplete& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamComplete)
  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;

}

void ExternalAudioStreamComplete::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamComplete)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ExternalAudioStreamComplete::CopyFrom(const ExternalAudioStreamComplete& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamComplete)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExternalAudioStreamComplete::IsInitialized() const {
  return true;
}

void ExternalAudioStreamComplete::InternalSwap(ExternalAudioStreamComplete* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExternalAudioStreamComplete::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ExternalAudioStreamCancel::InitAsDefaultInstance() {
}
class ExternalAudioStreamCancel::_Internal {
 public:
};

ExternalAudioStreamCancel::ExternalAudioStreamCancel(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ExternalAudioStreamCancel)
}
ExternalAudioStreamCancel::ExternalAudioStreamCancel(const ExternalAudioStreamCancel& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ExternalAudioStreamCancel)
}

void ExternalAudioStreamCancel::SharedCtor() {
}

ExternalAudioStreamCancel::~ExternalAudioStreamCancel() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ExternalAudioStreamCancel)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ExternalAudioStreamCancel::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void ExternalAudioStreamCancel::ArenaDtor(void* object) {
  ExternalAudioStreamCancel* _this = reinterpret_cast< ExternalAudioStreamCancel* >(object);
  (void)_this;
}
void ExternalAudioStreamCancel::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ExternalAudioStreamCancel::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ExternalAudioStreamCancel& ExternalAudioStreamCancel::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ExternalAudioStreamCancel_messages_2eproto.base);
  return *internal_default_instance();
}


void ExternalAudioStreamCancel::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ExternalAudioStreamCancel)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExternalAudioStreamCancel::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* ExternalAudioStreamCancel::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ExternalAudioStreamCancel)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.ExternalAudioStreamCancel)
  return target;
}

size_t ExternalAudioStreamCancel::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ExternalAudioStreamCancel)
  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;

  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 ExternalAudioStreamCancel::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamCancel)
  GOOGLE_DCHECK_NE(&from, this);
  const ExternalAudioStreamCancel* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ExternalAudioStreamCancel>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.ExternalAudioStreamCancel)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.ExternalAudioStreamCancel)
    MergeFrom(*source);
  }
}

void ExternalAudioStreamCancel::MergeFrom(const ExternalAudioStreamCancel& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamCancel)
  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;

}

void ExternalAudioStreamCancel::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamCancel)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ExternalAudioStreamCancel::CopyFrom(const ExternalAudioStreamCancel& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamCancel)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExternalAudioStreamCancel::IsInitialized() const {
  return true;
}

void ExternalAudioStreamCancel::InternalSwap(ExternalAudioStreamCancel* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExternalAudioStreamCancel::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ExternalAudioStreamRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_ExternalAudioStreamRequest_default_instance_.audio_stream_prepare_ = const_cast< ::Anki::Vector::external_interface::ExternalAudioStreamPrepare*>(
      ::Anki::Vector::external_interface::ExternalAudioStreamPrepare::internal_default_instance());
  ::Anki::Vector::external_interface::_ExternalAudioStreamRequest_default_instance_.audio_stream_chunk_ = const_cast< ::Anki::Vector::external_interface::ExternalAudioStreamChunk*>(
      ::Anki::Vector::external_interface::ExternalAudioStreamChunk::internal_default_instance());
  ::Anki::Vector::external_interface::_ExternalAudioStreamRequest_default_instance_.audio_stream_complete_ = const_cast< ::Anki::Vector::external_interface::ExternalAudioStreamComplete*>(
      ::Anki::Vector::external_interface::ExternalAudioStreamComplete::internal_default_instance());
  ::Anki::Vector::external_interface::_ExternalAudioStreamRequest_default_instance_.audio_stream_cancel_ = const_cast< ::Anki::Vector::external_interface::ExternalAudioStreamCancel*>(
      ::Anki::Vector::external_interface::ExternalAudioStreamCancel::internal_default_instance());
}
class ExternalAudioStreamRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ExternalAudioStreamPrepare& audio_stream_prepare(const ExternalAudioStreamRequest* msg);
  static const ::Anki::Vector::external_interface::ExternalAudioStreamChunk& audio_stream_chunk(const ExternalAudioStreamRequest* msg);
  static const ::Anki::Vector::external_interface::ExternalAudioStreamComplete& audio_stream_complete(const ExternalAudioStreamRequest* msg);
  static const ::Anki::Vector::external_interface::ExternalAudioStreamCancel& audio_stream_cancel(const ExternalAudioStreamRequest* msg);
};

const ::Anki::Vector::external_interface::ExternalAudioStreamPrepare&
ExternalAudioStreamRequest::_Internal::audio_stream_prepare(const ExternalAudioStreamRequest* msg) {
  return *msg->audio_request_type_.audio_stream_prepare_;
}
const ::Anki::Vector::external_interface::ExternalAudioStreamChunk&
ExternalAudioStreamRequest::_Internal::audio_stream_chunk(const ExternalAudioStreamRequest* msg) {
  return *msg->audio_request_type_.audio_stream_chunk_;
}
const ::Anki::Vector::external_interface::ExternalAudioStreamComplete&
ExternalAudioStreamRequest::_Internal::audio_stream_complete(const ExternalAudioStreamRequest* msg) {
  return *msg->audio_request_type_.audio_stream_complete_;
}
const ::Anki::Vector::external_interface::ExternalAudioStreamCancel&
ExternalAudioStreamRequest::_Internal::audio_stream_cancel(const ExternalAudioStreamRequest* msg) {
  return *msg->audio_request_type_.audio_stream_cancel_;
}
void ExternalAudioStreamRequest::set_allocated_audio_stream_prepare(::Anki::Vector::external_interface::ExternalAudioStreamPrepare* audio_stream_prepare) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_audio_request_type();
  if (audio_stream_prepare) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(audio_stream_prepare);
    if (message_arena != submessage_arena) {
      audio_stream_prepare = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, audio_stream_prepare, submessage_arena);
    }
    set_has_audio_stream_prepare();
    audio_request_type_.audio_stream_prepare_ = audio_stream_prepare;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_prepare)
}
void ExternalAudioStreamRequest::set_allocated_audio_stream_chunk(::Anki::Vector::external_interface::ExternalAudioStreamChunk* audio_stream_chunk) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_audio_request_type();
  if (audio_stream_chunk) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(audio_stream_chunk);
    if (message_arena != submessage_arena) {
      audio_stream_chunk = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, audio_stream_chunk, submessage_arena);
    }
    set_has_audio_stream_chunk();
    audio_request_type_.audio_stream_chunk_ = audio_stream_chunk;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_chunk)
}
void ExternalAudioStreamRequest::set_allocated_audio_stream_complete(::Anki::Vector::external_interface::ExternalAudioStreamComplete* audio_stream_complete) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_audio_request_type();
  if (audio_stream_complete) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(audio_stream_complete);
    if (message_arena != submessage_arena) {
      audio_stream_complete = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, audio_stream_complete, submessage_arena);
    }
    set_has_audio_stream_complete();
    audio_request_type_.audio_stream_complete_ = audio_stream_complete;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_complete)
}
void ExternalAudioStreamRequest::set_allocated_audio_stream_cancel(::Anki::Vector::external_interface::ExternalAudioStreamCancel* audio_stream_cancel) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_audio_request_type();
  if (audio_stream_cancel) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(audio_stream_cancel);
    if (message_arena != submessage_arena) {
      audio_stream_cancel = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, audio_stream_cancel, submessage_arena);
    }
    set_has_audio_stream_cancel();
    audio_request_type_.audio_stream_cancel_ = audio_stream_cancel;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamRequest.audio_stream_cancel)
}
ExternalAudioStreamRequest::ExternalAudioStreamRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ExternalAudioStreamRequest)
}
ExternalAudioStreamRequest::ExternalAudioStreamRequest(const ExternalAudioStreamRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_audio_request_type();
  switch (from.audio_request_type_case()) {
    case kAudioStreamPrepare: {
      _internal_mutable_audio_stream_prepare()->::Anki::Vector::external_interface::ExternalAudioStreamPrepare::MergeFrom(from._internal_audio_stream_prepare());
      break;
    }
    case kAudioStreamChunk: {
      _internal_mutable_audio_stream_chunk()->::Anki::Vector::external_interface::ExternalAudioStreamChunk::MergeFrom(from._internal_audio_stream_chunk());
      break;
    }
    case kAudioStreamComplete: {
      _internal_mutable_audio_stream_complete()->::Anki::Vector::external_interface::ExternalAudioStreamComplete::MergeFrom(from._internal_audio_stream_complete());
      break;
    }
    case kAudioStreamCancel: {
      _internal_mutable_audio_stream_cancel()->::Anki::Vector::external_interface::ExternalAudioStreamCancel::MergeFrom(from._internal_audio_stream_cancel());
      break;
    }
    case AUDIO_REQUEST_TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ExternalAudioStreamRequest)
}

void ExternalAudioStreamRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ExternalAudioStreamRequest_messages_2eproto.base);
  clear_has_audio_request_type();
}

ExternalAudioStreamRequest::~ExternalAudioStreamRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ExternalAudioStreamRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ExternalAudioStreamRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (has_audio_request_type()) {
    clear_audio_request_type();
  }
}

void ExternalAudioStreamRequest::ArenaDtor(void* object) {
  ExternalAudioStreamRequest* _this = reinterpret_cast< ExternalAudioStreamRequest* >(object);
  (void)_this;
}
void ExternalAudioStreamRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ExternalAudioStreamRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ExternalAudioStreamRequest& ExternalAudioStreamRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ExternalAudioStreamRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void ExternalAudioStreamRequest::clear_audio_request_type() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.ExternalAudioStreamRequest)
  switch (audio_request_type_case()) {
    case kAudioStreamPrepare: {
      if (GetArena() == nullptr) {
        delete audio_request_type_.audio_stream_prepare_;
      }
      break;
    }
    case kAudioStreamChunk: {
      if (GetArena() == nullptr) {
        delete audio_request_type_.audio_stream_chunk_;
      }
      break;
    }
    case kAudioStreamComplete: {
      if (GetArena() == nullptr) {
        delete audio_request_type_.audio_stream_complete_;
      }
      break;
    }
    case kAudioStreamCancel: {
      if (GetArena() == nullptr) {
        delete audio_request_type_.audio_stream_cancel_;
      }
      break;
    }
    case AUDIO_REQUEST_TYPE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = AUDIO_REQUEST_TYPE_NOT_SET;
}


void ExternalAudioStreamRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ExternalAudioStreamRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_audio_request_type();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExternalAudioStreamRequest::_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) {
      // .Anki.Vector.external_interface.ExternalAudioStreamPrepare audio_stream_prepare = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_audio_stream_prepare(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ExternalAudioStreamChunk audio_stream_chunk = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_audio_stream_chunk(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ExternalAudioStreamComplete audio_stream_complete = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_audio_stream_complete(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ExternalAudioStreamCancel audio_stream_cancel = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_audio_stream_cancel(), 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* ExternalAudioStreamRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ExternalAudioStreamRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ExternalAudioStreamPrepare audio_stream_prepare = 1;
  if (_internal_has_audio_stream_prepare()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::audio_stream_prepare(this), target, stream);
  }

  // .Anki.Vector.external_interface.ExternalAudioStreamChunk audio_stream_chunk = 2;
  if (_internal_has_audio_stream_chunk()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::audio_stream_chunk(this), target, stream);
  }

  // .Anki.Vector.external_interface.ExternalAudioStreamComplete audio_stream_complete = 3;
  if (_internal_has_audio_stream_complete()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::audio_stream_complete(this), target, stream);
  }

  // .Anki.Vector.external_interface.ExternalAudioStreamCancel audio_stream_cancel = 4;
  if (_internal_has_audio_stream_cancel()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::audio_stream_cancel(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.ExternalAudioStreamRequest)
  return target;
}

size_t ExternalAudioStreamRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ExternalAudioStreamRequest)
  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;

  switch (audio_request_type_case()) {
    // .Anki.Vector.external_interface.ExternalAudioStreamPrepare audio_stream_prepare = 1;
    case kAudioStreamPrepare: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *audio_request_type_.audio_stream_prepare_);
      break;
    }
    // .Anki.Vector.external_interface.ExternalAudioStreamChunk audio_stream_chunk = 2;
    case kAudioStreamChunk: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *audio_request_type_.audio_stream_chunk_);
      break;
    }
    // .Anki.Vector.external_interface.ExternalAudioStreamComplete audio_stream_complete = 3;
    case kAudioStreamComplete: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *audio_request_type_.audio_stream_complete_);
      break;
    }
    // .Anki.Vector.external_interface.ExternalAudioStreamCancel audio_stream_cancel = 4;
    case kAudioStreamCancel: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *audio_request_type_.audio_stream_cancel_);
      break;
    }
    case AUDIO_REQUEST_TYPE_NOT_SET: {
      break;
    }
  }
  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 ExternalAudioStreamRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const ExternalAudioStreamRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ExternalAudioStreamRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.ExternalAudioStreamRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.ExternalAudioStreamRequest)
    MergeFrom(*source);
  }
}

void ExternalAudioStreamRequest::MergeFrom(const ExternalAudioStreamRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamRequest)
  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;

  switch (from.audio_request_type_case()) {
    case kAudioStreamPrepare: {
      _internal_mutable_audio_stream_prepare()->::Anki::Vector::external_interface::ExternalAudioStreamPrepare::MergeFrom(from._internal_audio_stream_prepare());
      break;
    }
    case kAudioStreamChunk: {
      _internal_mutable_audio_stream_chunk()->::Anki::Vector::external_interface::ExternalAudioStreamChunk::MergeFrom(from._internal_audio_stream_chunk());
      break;
    }
    case kAudioStreamComplete: {
      _internal_mutable_audio_stream_complete()->::Anki::Vector::external_interface::ExternalAudioStreamComplete::MergeFrom(from._internal_audio_stream_complete());
      break;
    }
    case kAudioStreamCancel: {
      _internal_mutable_audio_stream_cancel()->::Anki::Vector::external_interface::ExternalAudioStreamCancel::MergeFrom(from._internal_audio_stream_cancel());
      break;
    }
    case AUDIO_REQUEST_TYPE_NOT_SET: {
      break;
    }
  }
}

void ExternalAudioStreamRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ExternalAudioStreamRequest::CopyFrom(const ExternalAudioStreamRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExternalAudioStreamRequest::IsInitialized() const {
  return true;
}

void ExternalAudioStreamRequest::InternalSwap(ExternalAudioStreamRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(audio_request_type_, other->audio_request_type_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExternalAudioStreamRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ExternalAudioStreamPlaybackComplete::InitAsDefaultInstance() {
}
class ExternalAudioStreamPlaybackComplete::_Internal {
 public:
};

ExternalAudioStreamPlaybackComplete::ExternalAudioStreamPlaybackComplete(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete)
}
ExternalAudioStreamPlaybackComplete::ExternalAudioStreamPlaybackComplete(const ExternalAudioStreamPlaybackComplete& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete)
}

void ExternalAudioStreamPlaybackComplete::SharedCtor() {
}

ExternalAudioStreamPlaybackComplete::~ExternalAudioStreamPlaybackComplete() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ExternalAudioStreamPlaybackComplete::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void ExternalAudioStreamPlaybackComplete::ArenaDtor(void* object) {
  ExternalAudioStreamPlaybackComplete* _this = reinterpret_cast< ExternalAudioStreamPlaybackComplete* >(object);
  (void)_this;
}
void ExternalAudioStreamPlaybackComplete::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ExternalAudioStreamPlaybackComplete::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ExternalAudioStreamPlaybackComplete& ExternalAudioStreamPlaybackComplete::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ExternalAudioStreamPlaybackComplete_messages_2eproto.base);
  return *internal_default_instance();
}


void ExternalAudioStreamPlaybackComplete::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExternalAudioStreamPlaybackComplete::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* ExternalAudioStreamPlaybackComplete::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete)
  return target;
}

size_t ExternalAudioStreamPlaybackComplete::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete)
  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;

  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 ExternalAudioStreamPlaybackComplete::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete)
  GOOGLE_DCHECK_NE(&from, this);
  const ExternalAudioStreamPlaybackComplete* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ExternalAudioStreamPlaybackComplete>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete)
    MergeFrom(*source);
  }
}

void ExternalAudioStreamPlaybackComplete::MergeFrom(const ExternalAudioStreamPlaybackComplete& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete)
  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;

}

void ExternalAudioStreamPlaybackComplete::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ExternalAudioStreamPlaybackComplete::CopyFrom(const ExternalAudioStreamPlaybackComplete& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExternalAudioStreamPlaybackComplete::IsInitialized() const {
  return true;
}

void ExternalAudioStreamPlaybackComplete::InternalSwap(ExternalAudioStreamPlaybackComplete* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExternalAudioStreamPlaybackComplete::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ExternalAudioStreamPlaybackFailure::InitAsDefaultInstance() {
}
class ExternalAudioStreamPlaybackFailure::_Internal {
 public:
};

ExternalAudioStreamPlaybackFailure::ExternalAudioStreamPlaybackFailure(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure)
}
ExternalAudioStreamPlaybackFailure::ExternalAudioStreamPlaybackFailure(const ExternalAudioStreamPlaybackFailure& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure)
}

void ExternalAudioStreamPlaybackFailure::SharedCtor() {
}

ExternalAudioStreamPlaybackFailure::~ExternalAudioStreamPlaybackFailure() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ExternalAudioStreamPlaybackFailure::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void ExternalAudioStreamPlaybackFailure::ArenaDtor(void* object) {
  ExternalAudioStreamPlaybackFailure* _this = reinterpret_cast< ExternalAudioStreamPlaybackFailure* >(object);
  (void)_this;
}
void ExternalAudioStreamPlaybackFailure::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ExternalAudioStreamPlaybackFailure::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ExternalAudioStreamPlaybackFailure& ExternalAudioStreamPlaybackFailure::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ExternalAudioStreamPlaybackFailure_messages_2eproto.base);
  return *internal_default_instance();
}


void ExternalAudioStreamPlaybackFailure::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExternalAudioStreamPlaybackFailure::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* ExternalAudioStreamPlaybackFailure::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure)
  return target;
}

size_t ExternalAudioStreamPlaybackFailure::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure)
  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;

  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 ExternalAudioStreamPlaybackFailure::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure)
  GOOGLE_DCHECK_NE(&from, this);
  const ExternalAudioStreamPlaybackFailure* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ExternalAudioStreamPlaybackFailure>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure)
    MergeFrom(*source);
  }
}

void ExternalAudioStreamPlaybackFailure::MergeFrom(const ExternalAudioStreamPlaybackFailure& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure)
  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;

}

void ExternalAudioStreamPlaybackFailure::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ExternalAudioStreamPlaybackFailure::CopyFrom(const ExternalAudioStreamPlaybackFailure& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExternalAudioStreamPlaybackFailure::IsInitialized() const {
  return true;
}

void ExternalAudioStreamPlaybackFailure::InternalSwap(ExternalAudioStreamPlaybackFailure* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExternalAudioStreamPlaybackFailure::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ExternalAudioStreamBufferOverrun::InitAsDefaultInstance() {
}
class ExternalAudioStreamBufferOverrun::_Internal {
 public:
};

ExternalAudioStreamBufferOverrun::ExternalAudioStreamBufferOverrun(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun)
}
ExternalAudioStreamBufferOverrun::ExternalAudioStreamBufferOverrun(const ExternalAudioStreamBufferOverrun& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&audio_samples_sent_, &from.audio_samples_sent_,
    static_cast<size_t>(reinterpret_cast<char*>(&audio_samples_played_) -
    reinterpret_cast<char*>(&audio_samples_sent_)) + sizeof(audio_samples_played_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun)
}

void ExternalAudioStreamBufferOverrun::SharedCtor() {
  ::memset(&audio_samples_sent_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&audio_samples_played_) -
      reinterpret_cast<char*>(&audio_samples_sent_)) + sizeof(audio_samples_played_));
}

ExternalAudioStreamBufferOverrun::~ExternalAudioStreamBufferOverrun() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ExternalAudioStreamBufferOverrun::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void ExternalAudioStreamBufferOverrun::ArenaDtor(void* object) {
  ExternalAudioStreamBufferOverrun* _this = reinterpret_cast< ExternalAudioStreamBufferOverrun* >(object);
  (void)_this;
}
void ExternalAudioStreamBufferOverrun::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ExternalAudioStreamBufferOverrun::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ExternalAudioStreamBufferOverrun& ExternalAudioStreamBufferOverrun::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ExternalAudioStreamBufferOverrun_messages_2eproto.base);
  return *internal_default_instance();
}


void ExternalAudioStreamBufferOverrun::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&audio_samples_sent_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&audio_samples_played_) -
      reinterpret_cast<char*>(&audio_samples_sent_)) + sizeof(audio_samples_played_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExternalAudioStreamBufferOverrun::_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 audio_samples_sent = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          audio_samples_sent_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 audio_samples_played = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          audio_samples_played_ = ::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* ExternalAudioStreamBufferOverrun::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 audio_samples_sent = 1;
  if (this->audio_samples_sent() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_audio_samples_sent(), target);
  }

  // uint32 audio_samples_played = 2;
  if (this->audio_samples_played() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_audio_samples_played(), 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:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun)
  return target;
}

size_t ExternalAudioStreamBufferOverrun::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun)
  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 audio_samples_sent = 1;
  if (this->audio_samples_sent() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_audio_samples_sent());
  }

  // uint32 audio_samples_played = 2;
  if (this->audio_samples_played() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_audio_samples_played());
  }

  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 ExternalAudioStreamBufferOverrun::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun)
  GOOGLE_DCHECK_NE(&from, this);
  const ExternalAudioStreamBufferOverrun* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ExternalAudioStreamBufferOverrun>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun)
    MergeFrom(*source);
  }
}

void ExternalAudioStreamBufferOverrun::MergeFrom(const ExternalAudioStreamBufferOverrun& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun)
  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.audio_samples_sent() != 0) {
    _internal_set_audio_samples_sent(from._internal_audio_samples_sent());
  }
  if (from.audio_samples_played() != 0) {
    _internal_set_audio_samples_played(from._internal_audio_samples_played());
  }
}

void ExternalAudioStreamBufferOverrun::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ExternalAudioStreamBufferOverrun::CopyFrom(const ExternalAudioStreamBufferOverrun& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExternalAudioStreamBufferOverrun::IsInitialized() const {
  return true;
}

void ExternalAudioStreamBufferOverrun::InternalSwap(ExternalAudioStreamBufferOverrun* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ExternalAudioStreamBufferOverrun, audio_samples_played_)
      + sizeof(ExternalAudioStreamBufferOverrun::audio_samples_played_)
      - PROTOBUF_FIELD_OFFSET(ExternalAudioStreamBufferOverrun, audio_samples_sent_)>(
          reinterpret_cast<char*>(&audio_samples_sent_),
          reinterpret_cast<char*>(&other->audio_samples_sent_));
}

::PROTOBUF_NAMESPACE_ID::Metadata ExternalAudioStreamBufferOverrun::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ExternalAudioStreamResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_ExternalAudioStreamResponse_default_instance_.audio_stream_playback_complete_ = const_cast< ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete*>(
      ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete::internal_default_instance());
  ::Anki::Vector::external_interface::_ExternalAudioStreamResponse_default_instance_.audio_stream_buffer_overrun_ = const_cast< ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun*>(
      ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun::internal_default_instance());
  ::Anki::Vector::external_interface::_ExternalAudioStreamResponse_default_instance_.audio_stream_playback_failyer_ = const_cast< ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure*>(
      ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure::internal_default_instance());
}
class ExternalAudioStreamResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete& audio_stream_playback_complete(const ExternalAudioStreamResponse* msg);
  static const ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun& audio_stream_buffer_overrun(const ExternalAudioStreamResponse* msg);
  static const ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure& audio_stream_playback_failyer(const ExternalAudioStreamResponse* msg);
};

const ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete&
ExternalAudioStreamResponse::_Internal::audio_stream_playback_complete(const ExternalAudioStreamResponse* msg) {
  return *msg->audio_response_type_.audio_stream_playback_complete_;
}
const ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun&
ExternalAudioStreamResponse::_Internal::audio_stream_buffer_overrun(const ExternalAudioStreamResponse* msg) {
  return *msg->audio_response_type_.audio_stream_buffer_overrun_;
}
const ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure&
ExternalAudioStreamResponse::_Internal::audio_stream_playback_failyer(const ExternalAudioStreamResponse* msg) {
  return *msg->audio_response_type_.audio_stream_playback_failyer_;
}
void ExternalAudioStreamResponse::set_allocated_audio_stream_playback_complete(::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* audio_stream_playback_complete) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_audio_response_type();
  if (audio_stream_playback_complete) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(audio_stream_playback_complete);
    if (message_arena != submessage_arena) {
      audio_stream_playback_complete = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, audio_stream_playback_complete, submessage_arena);
    }
    set_has_audio_stream_playback_complete();
    audio_response_type_.audio_stream_playback_complete_ = audio_stream_playback_complete;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_playback_complete)
}
void ExternalAudioStreamResponse::set_allocated_audio_stream_buffer_overrun(::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* audio_stream_buffer_overrun) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_audio_response_type();
  if (audio_stream_buffer_overrun) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(audio_stream_buffer_overrun);
    if (message_arena != submessage_arena) {
      audio_stream_buffer_overrun = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, audio_stream_buffer_overrun, submessage_arena);
    }
    set_has_audio_stream_buffer_overrun();
    audio_response_type_.audio_stream_buffer_overrun_ = audio_stream_buffer_overrun;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_buffer_overrun)
}
void ExternalAudioStreamResponse::set_allocated_audio_stream_playback_failyer(::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* audio_stream_playback_failyer) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_audio_response_type();
  if (audio_stream_playback_failyer) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(audio_stream_playback_failyer);
    if (message_arena != submessage_arena) {
      audio_stream_playback_failyer = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, audio_stream_playback_failyer, submessage_arena);
    }
    set_has_audio_stream_playback_failyer();
    audio_response_type_.audio_stream_playback_failyer_ = audio_stream_playback_failyer;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ExternalAudioStreamResponse.audio_stream_playback_failyer)
}
ExternalAudioStreamResponse::ExternalAudioStreamResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ExternalAudioStreamResponse)
}
ExternalAudioStreamResponse::ExternalAudioStreamResponse(const ExternalAudioStreamResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_audio_response_type();
  switch (from.audio_response_type_case()) {
    case kAudioStreamPlaybackComplete: {
      _internal_mutable_audio_stream_playback_complete()->::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete::MergeFrom(from._internal_audio_stream_playback_complete());
      break;
    }
    case kAudioStreamBufferOverrun: {
      _internal_mutable_audio_stream_buffer_overrun()->::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun::MergeFrom(from._internal_audio_stream_buffer_overrun());
      break;
    }
    case kAudioStreamPlaybackFailyer: {
      _internal_mutable_audio_stream_playback_failyer()->::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure::MergeFrom(from._internal_audio_stream_playback_failyer());
      break;
    }
    case AUDIO_RESPONSE_TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ExternalAudioStreamResponse)
}

void ExternalAudioStreamResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ExternalAudioStreamResponse_messages_2eproto.base);
  clear_has_audio_response_type();
}

ExternalAudioStreamResponse::~ExternalAudioStreamResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ExternalAudioStreamResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ExternalAudioStreamResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (has_audio_response_type()) {
    clear_audio_response_type();
  }
}

void ExternalAudioStreamResponse::ArenaDtor(void* object) {
  ExternalAudioStreamResponse* _this = reinterpret_cast< ExternalAudioStreamResponse* >(object);
  (void)_this;
}
void ExternalAudioStreamResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ExternalAudioStreamResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ExternalAudioStreamResponse& ExternalAudioStreamResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ExternalAudioStreamResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void ExternalAudioStreamResponse::clear_audio_response_type() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.ExternalAudioStreamResponse)
  switch (audio_response_type_case()) {
    case kAudioStreamPlaybackComplete: {
      if (GetArena() == nullptr) {
        delete audio_response_type_.audio_stream_playback_complete_;
      }
      break;
    }
    case kAudioStreamBufferOverrun: {
      if (GetArena() == nullptr) {
        delete audio_response_type_.audio_stream_buffer_overrun_;
      }
      break;
    }
    case kAudioStreamPlaybackFailyer: {
      if (GetArena() == nullptr) {
        delete audio_response_type_.audio_stream_playback_failyer_;
      }
      break;
    }
    case AUDIO_RESPONSE_TYPE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = AUDIO_RESPONSE_TYPE_NOT_SET;
}


void ExternalAudioStreamResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ExternalAudioStreamResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_audio_response_type();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExternalAudioStreamResponse::_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) {
      // .Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete audio_stream_playback_complete = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_audio_stream_playback_complete(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun audio_stream_buffer_overrun = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_audio_stream_buffer_overrun(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure audio_stream_playback_failyer = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_audio_stream_playback_failyer(), 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* ExternalAudioStreamResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ExternalAudioStreamResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete audio_stream_playback_complete = 1;
  if (_internal_has_audio_stream_playback_complete()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::audio_stream_playback_complete(this), target, stream);
  }

  // .Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun audio_stream_buffer_overrun = 2;
  if (_internal_has_audio_stream_buffer_overrun()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::audio_stream_buffer_overrun(this), target, stream);
  }

  // .Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure audio_stream_playback_failyer = 3;
  if (_internal_has_audio_stream_playback_failyer()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::audio_stream_playback_failyer(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.ExternalAudioStreamResponse)
  return target;
}

size_t ExternalAudioStreamResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ExternalAudioStreamResponse)
  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;

  switch (audio_response_type_case()) {
    // .Anki.Vector.external_interface.ExternalAudioStreamPlaybackComplete audio_stream_playback_complete = 1;
    case kAudioStreamPlaybackComplete: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *audio_response_type_.audio_stream_playback_complete_);
      break;
    }
    // .Anki.Vector.external_interface.ExternalAudioStreamBufferOverrun audio_stream_buffer_overrun = 2;
    case kAudioStreamBufferOverrun: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *audio_response_type_.audio_stream_buffer_overrun_);
      break;
    }
    // .Anki.Vector.external_interface.ExternalAudioStreamPlaybackFailure audio_stream_playback_failyer = 3;
    case kAudioStreamPlaybackFailyer: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *audio_response_type_.audio_stream_playback_failyer_);
      break;
    }
    case AUDIO_RESPONSE_TYPE_NOT_SET: {
      break;
    }
  }
  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 ExternalAudioStreamResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const ExternalAudioStreamResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ExternalAudioStreamResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.ExternalAudioStreamResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.ExternalAudioStreamResponse)
    MergeFrom(*source);
  }
}

void ExternalAudioStreamResponse::MergeFrom(const ExternalAudioStreamResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ExternalAudioStreamResponse)
  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;

  switch (from.audio_response_type_case()) {
    case kAudioStreamPlaybackComplete: {
      _internal_mutable_audio_stream_playback_complete()->::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete::MergeFrom(from._internal_audio_stream_playback_complete());
      break;
    }
    case kAudioStreamBufferOverrun: {
      _internal_mutable_audio_stream_buffer_overrun()->::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun::MergeFrom(from._internal_audio_stream_buffer_overrun());
      break;
    }
    case kAudioStreamPlaybackFailyer: {
      _internal_mutable_audio_stream_playback_failyer()->::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure::MergeFrom(from._internal_audio_stream_playback_failyer());
      break;
    }
    case AUDIO_RESPONSE_TYPE_NOT_SET: {
      break;
    }
  }
}

void ExternalAudioStreamResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ExternalAudioStreamResponse::CopyFrom(const ExternalAudioStreamResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ExternalAudioStreamResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExternalAudioStreamResponse::IsInitialized() const {
  return true;
}

void ExternalAudioStreamResponse::InternalSwap(ExternalAudioStreamResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(audio_response_type_, other->audio_response_type_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExternalAudioStreamResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void MasterVolumeRequest::InitAsDefaultInstance() {
}
class MasterVolumeRequest::_Internal {
 public:
};

MasterVolumeRequest::MasterVolumeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.MasterVolumeRequest)
}
MasterVolumeRequest::MasterVolumeRequest(const MasterVolumeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  volume_level_ = from.volume_level_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.MasterVolumeRequest)
}

void MasterVolumeRequest::SharedCtor() {
  volume_level_ = 0;
}

MasterVolumeRequest::~MasterVolumeRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.MasterVolumeRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void MasterVolumeRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void MasterVolumeRequest::ArenaDtor(void* object) {
  MasterVolumeRequest* _this = reinterpret_cast< MasterVolumeRequest* >(object);
  (void)_this;
}
void MasterVolumeRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void MasterVolumeRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const MasterVolumeRequest& MasterVolumeRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MasterVolumeRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void MasterVolumeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.MasterVolumeRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  volume_level_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MasterVolumeRequest::_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) {
      // .Anki.Vector.external_interface.MasterVolumeLevel volume_level = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_volume_level(static_cast<::Anki::Vector::external_interface::MasterVolumeLevel>(val));
        } 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* MasterVolumeRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.MasterVolumeRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.MasterVolumeLevel volume_level = 1;
  if (this->volume_level() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_volume_level(), 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:Anki.Vector.external_interface.MasterVolumeRequest)
  return target;
}

size_t MasterVolumeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.MasterVolumeRequest)
  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;

  // .Anki.Vector.external_interface.MasterVolumeLevel volume_level = 1;
  if (this->volume_level() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_volume_level());
  }

  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 MasterVolumeRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.MasterVolumeRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const MasterVolumeRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MasterVolumeRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.MasterVolumeRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.MasterVolumeRequest)
    MergeFrom(*source);
  }
}

void MasterVolumeRequest::MergeFrom(const MasterVolumeRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.MasterVolumeRequest)
  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.volume_level() != 0) {
    _internal_set_volume_level(from._internal_volume_level());
  }
}

void MasterVolumeRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.MasterVolumeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void MasterVolumeRequest::CopyFrom(const MasterVolumeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.MasterVolumeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MasterVolumeRequest::IsInitialized() const {
  return true;
}

void MasterVolumeRequest::InternalSwap(MasterVolumeRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(volume_level_, other->volume_level_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MasterVolumeRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void MasterVolumeResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_MasterVolumeResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class MasterVolumeResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const MasterVolumeResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
MasterVolumeResponse::_Internal::status(const MasterVolumeResponse* msg) {
  return *msg->status_;
}
void MasterVolumeResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
MasterVolumeResponse::MasterVolumeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.MasterVolumeResponse)
}
MasterVolumeResponse::MasterVolumeResponse(const MasterVolumeResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.MasterVolumeResponse)
}

void MasterVolumeResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MasterVolumeResponse_messages_2eproto.base);
  status_ = nullptr;
}

MasterVolumeResponse::~MasterVolumeResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.MasterVolumeResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void MasterVolumeResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void MasterVolumeResponse::ArenaDtor(void* object) {
  MasterVolumeResponse* _this = reinterpret_cast< MasterVolumeResponse* >(object);
  (void)_this;
}
void MasterVolumeResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void MasterVolumeResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const MasterVolumeResponse& MasterVolumeResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MasterVolumeResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void MasterVolumeResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.MasterVolumeResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MasterVolumeResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* MasterVolumeResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.MasterVolumeResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.MasterVolumeResponse)
  return target;
}

size_t MasterVolumeResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.MasterVolumeResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 MasterVolumeResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.MasterVolumeResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const MasterVolumeResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MasterVolumeResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.MasterVolumeResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.MasterVolumeResponse)
    MergeFrom(*source);
  }
}

void MasterVolumeResponse::MergeFrom(const MasterVolumeResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.MasterVolumeResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void MasterVolumeResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.MasterVolumeResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void MasterVolumeResponse::CopyFrom(const MasterVolumeResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.MasterVolumeResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MasterVolumeResponse::IsInitialized() const {
  return true;
}

void MasterVolumeResponse::InternalSwap(MasterVolumeResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MasterVolumeResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void EnableMarkerDetectionRequest::InitAsDefaultInstance() {
}
class EnableMarkerDetectionRequest::_Internal {
 public:
};

EnableMarkerDetectionRequest::EnableMarkerDetectionRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EnableMarkerDetectionRequest)
}
EnableMarkerDetectionRequest::EnableMarkerDetectionRequest(const EnableMarkerDetectionRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  enable_ = from.enable_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EnableMarkerDetectionRequest)
}

void EnableMarkerDetectionRequest::SharedCtor() {
  enable_ = false;
}

EnableMarkerDetectionRequest::~EnableMarkerDetectionRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EnableMarkerDetectionRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void EnableMarkerDetectionRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void EnableMarkerDetectionRequest::ArenaDtor(void* object) {
  EnableMarkerDetectionRequest* _this = reinterpret_cast< EnableMarkerDetectionRequest* >(object);
  (void)_this;
}
void EnableMarkerDetectionRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void EnableMarkerDetectionRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const EnableMarkerDetectionRequest& EnableMarkerDetectionRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EnableMarkerDetectionRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void EnableMarkerDetectionRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EnableMarkerDetectionRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  enable_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* EnableMarkerDetectionRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool enable = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          enable_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* EnableMarkerDetectionRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.EnableMarkerDetectionRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool enable = 1;
  if (this->enable() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_enable(), 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:Anki.Vector.external_interface.EnableMarkerDetectionRequest)
  return target;
}

size_t EnableMarkerDetectionRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EnableMarkerDetectionRequest)
  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;

  // bool enable = 1;
  if (this->enable() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void EnableMarkerDetectionRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.EnableMarkerDetectionRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const EnableMarkerDetectionRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EnableMarkerDetectionRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.EnableMarkerDetectionRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.EnableMarkerDetectionRequest)
    MergeFrom(*source);
  }
}

void EnableMarkerDetectionRequest::MergeFrom(const EnableMarkerDetectionRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.EnableMarkerDetectionRequest)
  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.enable() != 0) {
    _internal_set_enable(from._internal_enable());
  }
}

void EnableMarkerDetectionRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.EnableMarkerDetectionRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnableMarkerDetectionRequest::CopyFrom(const EnableMarkerDetectionRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EnableMarkerDetectionRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnableMarkerDetectionRequest::IsInitialized() const {
  return true;
}

void EnableMarkerDetectionRequest::InternalSwap(EnableMarkerDetectionRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(enable_, other->enable_);
}

::PROTOBUF_NAMESPACE_ID::Metadata EnableMarkerDetectionRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void EnableMarkerDetectionResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_EnableMarkerDetectionResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class EnableMarkerDetectionResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const EnableMarkerDetectionResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
EnableMarkerDetectionResponse::_Internal::status(const EnableMarkerDetectionResponse* msg) {
  return *msg->status_;
}
void EnableMarkerDetectionResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
EnableMarkerDetectionResponse::EnableMarkerDetectionResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EnableMarkerDetectionResponse)
}
EnableMarkerDetectionResponse::EnableMarkerDetectionResponse(const EnableMarkerDetectionResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EnableMarkerDetectionResponse)
}

void EnableMarkerDetectionResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EnableMarkerDetectionResponse_messages_2eproto.base);
  status_ = nullptr;
}

EnableMarkerDetectionResponse::~EnableMarkerDetectionResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EnableMarkerDetectionResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void EnableMarkerDetectionResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void EnableMarkerDetectionResponse::ArenaDtor(void* object) {
  EnableMarkerDetectionResponse* _this = reinterpret_cast< EnableMarkerDetectionResponse* >(object);
  (void)_this;
}
void EnableMarkerDetectionResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void EnableMarkerDetectionResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const EnableMarkerDetectionResponse& EnableMarkerDetectionResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EnableMarkerDetectionResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void EnableMarkerDetectionResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EnableMarkerDetectionResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* EnableMarkerDetectionResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* EnableMarkerDetectionResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.EnableMarkerDetectionResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.EnableMarkerDetectionResponse)
  return target;
}

size_t EnableMarkerDetectionResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EnableMarkerDetectionResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 EnableMarkerDetectionResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.EnableMarkerDetectionResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const EnableMarkerDetectionResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EnableMarkerDetectionResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.EnableMarkerDetectionResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.EnableMarkerDetectionResponse)
    MergeFrom(*source);
  }
}

void EnableMarkerDetectionResponse::MergeFrom(const EnableMarkerDetectionResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.EnableMarkerDetectionResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void EnableMarkerDetectionResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.EnableMarkerDetectionResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnableMarkerDetectionResponse::CopyFrom(const EnableMarkerDetectionResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EnableMarkerDetectionResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnableMarkerDetectionResponse::IsInitialized() const {
  return true;
}

void EnableMarkerDetectionResponse::InternalSwap(EnableMarkerDetectionResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata EnableMarkerDetectionResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void EnableFaceDetectionRequest::InitAsDefaultInstance() {
}
class EnableFaceDetectionRequest::_Internal {
 public:
};

EnableFaceDetectionRequest::EnableFaceDetectionRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EnableFaceDetectionRequest)
}
EnableFaceDetectionRequest::EnableFaceDetectionRequest(const EnableFaceDetectionRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&enable_, &from.enable_,
    static_cast<size_t>(reinterpret_cast<char*>(&enable_gaze_detection_) -
    reinterpret_cast<char*>(&enable_)) + sizeof(enable_gaze_detection_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EnableFaceDetectionRequest)
}

void EnableFaceDetectionRequest::SharedCtor() {
  ::memset(&enable_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&enable_gaze_detection_) -
      reinterpret_cast<char*>(&enable_)) + sizeof(enable_gaze_detection_));
}

EnableFaceDetectionRequest::~EnableFaceDetectionRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EnableFaceDetectionRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void EnableFaceDetectionRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void EnableFaceDetectionRequest::ArenaDtor(void* object) {
  EnableFaceDetectionRequest* _this = reinterpret_cast< EnableFaceDetectionRequest* >(object);
  (void)_this;
}
void EnableFaceDetectionRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void EnableFaceDetectionRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const EnableFaceDetectionRequest& EnableFaceDetectionRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EnableFaceDetectionRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void EnableFaceDetectionRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EnableFaceDetectionRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&enable_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&enable_gaze_detection_) -
      reinterpret_cast<char*>(&enable_)) + sizeof(enable_gaze_detection_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* EnableFaceDetectionRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool enable = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          enable_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool enable_smile_detection = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          enable_smile_detection_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool enable_expression_estimation = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          enable_expression_estimation_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool enable_blink_detection = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          enable_blink_detection_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool enable_gaze_detection = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          enable_gaze_detection_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* EnableFaceDetectionRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.EnableFaceDetectionRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool enable = 1;
  if (this->enable() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_enable(), target);
  }

  // bool enable_smile_detection = 2;
  if (this->enable_smile_detection() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_enable_smile_detection(), target);
  }

  // bool enable_expression_estimation = 3;
  if (this->enable_expression_estimation() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_enable_expression_estimation(), target);
  }

  // bool enable_blink_detection = 4;
  if (this->enable_blink_detection() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_enable_blink_detection(), target);
  }

  // bool enable_gaze_detection = 5;
  if (this->enable_gaze_detection() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_enable_gaze_detection(), 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:Anki.Vector.external_interface.EnableFaceDetectionRequest)
  return target;
}

size_t EnableFaceDetectionRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EnableFaceDetectionRequest)
  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;

  // bool enable = 1;
  if (this->enable() != 0) {
    total_size += 1 + 1;
  }

  // bool enable_smile_detection = 2;
  if (this->enable_smile_detection() != 0) {
    total_size += 1 + 1;
  }

  // bool enable_expression_estimation = 3;
  if (this->enable_expression_estimation() != 0) {
    total_size += 1 + 1;
  }

  // bool enable_blink_detection = 4;
  if (this->enable_blink_detection() != 0) {
    total_size += 1 + 1;
  }

  // bool enable_gaze_detection = 5;
  if (this->enable_gaze_detection() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void EnableFaceDetectionRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.EnableFaceDetectionRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const EnableFaceDetectionRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EnableFaceDetectionRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.EnableFaceDetectionRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.EnableFaceDetectionRequest)
    MergeFrom(*source);
  }
}

void EnableFaceDetectionRequest::MergeFrom(const EnableFaceDetectionRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.EnableFaceDetectionRequest)
  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.enable() != 0) {
    _internal_set_enable(from._internal_enable());
  }
  if (from.enable_smile_detection() != 0) {
    _internal_set_enable_smile_detection(from._internal_enable_smile_detection());
  }
  if (from.enable_expression_estimation() != 0) {
    _internal_set_enable_expression_estimation(from._internal_enable_expression_estimation());
  }
  if (from.enable_blink_detection() != 0) {
    _internal_set_enable_blink_detection(from._internal_enable_blink_detection());
  }
  if (from.enable_gaze_detection() != 0) {
    _internal_set_enable_gaze_detection(from._internal_enable_gaze_detection());
  }
}

void EnableFaceDetectionRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.EnableFaceDetectionRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnableFaceDetectionRequest::CopyFrom(const EnableFaceDetectionRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EnableFaceDetectionRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnableFaceDetectionRequest::IsInitialized() const {
  return true;
}

void EnableFaceDetectionRequest::InternalSwap(EnableFaceDetectionRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(EnableFaceDetectionRequest, enable_gaze_detection_)
      + sizeof(EnableFaceDetectionRequest::enable_gaze_detection_)
      - PROTOBUF_FIELD_OFFSET(EnableFaceDetectionRequest, enable_)>(
          reinterpret_cast<char*>(&enable_),
          reinterpret_cast<char*>(&other->enable_));
}

::PROTOBUF_NAMESPACE_ID::Metadata EnableFaceDetectionRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void EnableFaceDetectionResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_EnableFaceDetectionResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class EnableFaceDetectionResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const EnableFaceDetectionResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
EnableFaceDetectionResponse::_Internal::status(const EnableFaceDetectionResponse* msg) {
  return *msg->status_;
}
void EnableFaceDetectionResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
EnableFaceDetectionResponse::EnableFaceDetectionResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EnableFaceDetectionResponse)
}
EnableFaceDetectionResponse::EnableFaceDetectionResponse(const EnableFaceDetectionResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EnableFaceDetectionResponse)
}

void EnableFaceDetectionResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EnableFaceDetectionResponse_messages_2eproto.base);
  status_ = nullptr;
}

EnableFaceDetectionResponse::~EnableFaceDetectionResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EnableFaceDetectionResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void EnableFaceDetectionResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void EnableFaceDetectionResponse::ArenaDtor(void* object) {
  EnableFaceDetectionResponse* _this = reinterpret_cast< EnableFaceDetectionResponse* >(object);
  (void)_this;
}
void EnableFaceDetectionResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void EnableFaceDetectionResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const EnableFaceDetectionResponse& EnableFaceDetectionResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EnableFaceDetectionResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void EnableFaceDetectionResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EnableFaceDetectionResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* EnableFaceDetectionResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* EnableFaceDetectionResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.EnableFaceDetectionResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.EnableFaceDetectionResponse)
  return target;
}

size_t EnableFaceDetectionResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EnableFaceDetectionResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 EnableFaceDetectionResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.EnableFaceDetectionResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const EnableFaceDetectionResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EnableFaceDetectionResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.EnableFaceDetectionResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.EnableFaceDetectionResponse)
    MergeFrom(*source);
  }
}

void EnableFaceDetectionResponse::MergeFrom(const EnableFaceDetectionResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.EnableFaceDetectionResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void EnableFaceDetectionResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.EnableFaceDetectionResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnableFaceDetectionResponse::CopyFrom(const EnableFaceDetectionResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EnableFaceDetectionResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnableFaceDetectionResponse::IsInitialized() const {
  return true;
}

void EnableFaceDetectionResponse::InternalSwap(EnableFaceDetectionResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata EnableFaceDetectionResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void EnableMotionDetectionRequest::InitAsDefaultInstance() {
}
class EnableMotionDetectionRequest::_Internal {
 public:
};

EnableMotionDetectionRequest::EnableMotionDetectionRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EnableMotionDetectionRequest)
}
EnableMotionDetectionRequest::EnableMotionDetectionRequest(const EnableMotionDetectionRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  enable_ = from.enable_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EnableMotionDetectionRequest)
}

void EnableMotionDetectionRequest::SharedCtor() {
  enable_ = false;
}

EnableMotionDetectionRequest::~EnableMotionDetectionRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EnableMotionDetectionRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void EnableMotionDetectionRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void EnableMotionDetectionRequest::ArenaDtor(void* object) {
  EnableMotionDetectionRequest* _this = reinterpret_cast< EnableMotionDetectionRequest* >(object);
  (void)_this;
}
void EnableMotionDetectionRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void EnableMotionDetectionRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const EnableMotionDetectionRequest& EnableMotionDetectionRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EnableMotionDetectionRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void EnableMotionDetectionRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EnableMotionDetectionRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  enable_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* EnableMotionDetectionRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool enable = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          enable_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* EnableMotionDetectionRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.EnableMotionDetectionRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool enable = 1;
  if (this->enable() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_enable(), 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:Anki.Vector.external_interface.EnableMotionDetectionRequest)
  return target;
}

size_t EnableMotionDetectionRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EnableMotionDetectionRequest)
  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;

  // bool enable = 1;
  if (this->enable() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void EnableMotionDetectionRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.EnableMotionDetectionRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const EnableMotionDetectionRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EnableMotionDetectionRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.EnableMotionDetectionRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.EnableMotionDetectionRequest)
    MergeFrom(*source);
  }
}

void EnableMotionDetectionRequest::MergeFrom(const EnableMotionDetectionRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.EnableMotionDetectionRequest)
  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.enable() != 0) {
    _internal_set_enable(from._internal_enable());
  }
}

void EnableMotionDetectionRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.EnableMotionDetectionRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnableMotionDetectionRequest::CopyFrom(const EnableMotionDetectionRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EnableMotionDetectionRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnableMotionDetectionRequest::IsInitialized() const {
  return true;
}

void EnableMotionDetectionRequest::InternalSwap(EnableMotionDetectionRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(enable_, other->enable_);
}

::PROTOBUF_NAMESPACE_ID::Metadata EnableMotionDetectionRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void EnableMotionDetectionResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_EnableMotionDetectionResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class EnableMotionDetectionResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const EnableMotionDetectionResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
EnableMotionDetectionResponse::_Internal::status(const EnableMotionDetectionResponse* msg) {
  return *msg->status_;
}
void EnableMotionDetectionResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
EnableMotionDetectionResponse::EnableMotionDetectionResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EnableMotionDetectionResponse)
}
EnableMotionDetectionResponse::EnableMotionDetectionResponse(const EnableMotionDetectionResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EnableMotionDetectionResponse)
}

void EnableMotionDetectionResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EnableMotionDetectionResponse_messages_2eproto.base);
  status_ = nullptr;
}

EnableMotionDetectionResponse::~EnableMotionDetectionResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EnableMotionDetectionResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void EnableMotionDetectionResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void EnableMotionDetectionResponse::ArenaDtor(void* object) {
  EnableMotionDetectionResponse* _this = reinterpret_cast< EnableMotionDetectionResponse* >(object);
  (void)_this;
}
void EnableMotionDetectionResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void EnableMotionDetectionResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const EnableMotionDetectionResponse& EnableMotionDetectionResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EnableMotionDetectionResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void EnableMotionDetectionResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EnableMotionDetectionResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* EnableMotionDetectionResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* EnableMotionDetectionResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.EnableMotionDetectionResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.EnableMotionDetectionResponse)
  return target;
}

size_t EnableMotionDetectionResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EnableMotionDetectionResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 EnableMotionDetectionResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.EnableMotionDetectionResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const EnableMotionDetectionResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EnableMotionDetectionResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.EnableMotionDetectionResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.EnableMotionDetectionResponse)
    MergeFrom(*source);
  }
}

void EnableMotionDetectionResponse::MergeFrom(const EnableMotionDetectionResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.EnableMotionDetectionResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void EnableMotionDetectionResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.EnableMotionDetectionResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnableMotionDetectionResponse::CopyFrom(const EnableMotionDetectionResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EnableMotionDetectionResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnableMotionDetectionResponse::IsInitialized() const {
  return true;
}

void EnableMotionDetectionResponse::InternalSwap(EnableMotionDetectionResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata EnableMotionDetectionResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void EnableMirrorModeRequest::InitAsDefaultInstance() {
}
class EnableMirrorModeRequest::_Internal {
 public:
};

EnableMirrorModeRequest::EnableMirrorModeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EnableMirrorModeRequest)
}
EnableMirrorModeRequest::EnableMirrorModeRequest(const EnableMirrorModeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  enable_ = from.enable_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EnableMirrorModeRequest)
}

void EnableMirrorModeRequest::SharedCtor() {
  enable_ = false;
}

EnableMirrorModeRequest::~EnableMirrorModeRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EnableMirrorModeRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void EnableMirrorModeRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void EnableMirrorModeRequest::ArenaDtor(void* object) {
  EnableMirrorModeRequest* _this = reinterpret_cast< EnableMirrorModeRequest* >(object);
  (void)_this;
}
void EnableMirrorModeRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void EnableMirrorModeRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const EnableMirrorModeRequest& EnableMirrorModeRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EnableMirrorModeRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void EnableMirrorModeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EnableMirrorModeRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  enable_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* EnableMirrorModeRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool enable = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          enable_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* EnableMirrorModeRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.EnableMirrorModeRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool enable = 1;
  if (this->enable() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_enable(), 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:Anki.Vector.external_interface.EnableMirrorModeRequest)
  return target;
}

size_t EnableMirrorModeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EnableMirrorModeRequest)
  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;

  // bool enable = 1;
  if (this->enable() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void EnableMirrorModeRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.EnableMirrorModeRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const EnableMirrorModeRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EnableMirrorModeRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.EnableMirrorModeRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.EnableMirrorModeRequest)
    MergeFrom(*source);
  }
}

void EnableMirrorModeRequest::MergeFrom(const EnableMirrorModeRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.EnableMirrorModeRequest)
  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.enable() != 0) {
    _internal_set_enable(from._internal_enable());
  }
}

void EnableMirrorModeRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.EnableMirrorModeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnableMirrorModeRequest::CopyFrom(const EnableMirrorModeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EnableMirrorModeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnableMirrorModeRequest::IsInitialized() const {
  return true;
}

void EnableMirrorModeRequest::InternalSwap(EnableMirrorModeRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(enable_, other->enable_);
}

::PROTOBUF_NAMESPACE_ID::Metadata EnableMirrorModeRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void EnableMirrorModeResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_EnableMirrorModeResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class EnableMirrorModeResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const EnableMirrorModeResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
EnableMirrorModeResponse::_Internal::status(const EnableMirrorModeResponse* msg) {
  return *msg->status_;
}
void EnableMirrorModeResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
EnableMirrorModeResponse::EnableMirrorModeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EnableMirrorModeResponse)
}
EnableMirrorModeResponse::EnableMirrorModeResponse(const EnableMirrorModeResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EnableMirrorModeResponse)
}

void EnableMirrorModeResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EnableMirrorModeResponse_messages_2eproto.base);
  status_ = nullptr;
}

EnableMirrorModeResponse::~EnableMirrorModeResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EnableMirrorModeResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void EnableMirrorModeResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void EnableMirrorModeResponse::ArenaDtor(void* object) {
  EnableMirrorModeResponse* _this = reinterpret_cast< EnableMirrorModeResponse* >(object);
  (void)_this;
}
void EnableMirrorModeResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void EnableMirrorModeResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const EnableMirrorModeResponse& EnableMirrorModeResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EnableMirrorModeResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void EnableMirrorModeResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EnableMirrorModeResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* EnableMirrorModeResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* EnableMirrorModeResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.EnableMirrorModeResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.EnableMirrorModeResponse)
  return target;
}

size_t EnableMirrorModeResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EnableMirrorModeResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 EnableMirrorModeResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.EnableMirrorModeResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const EnableMirrorModeResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EnableMirrorModeResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.EnableMirrorModeResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.EnableMirrorModeResponse)
    MergeFrom(*source);
  }
}

void EnableMirrorModeResponse::MergeFrom(const EnableMirrorModeResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.EnableMirrorModeResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void EnableMirrorModeResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.EnableMirrorModeResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnableMirrorModeResponse::CopyFrom(const EnableMirrorModeResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EnableMirrorModeResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnableMirrorModeResponse::IsInitialized() const {
  return true;
}

void EnableMirrorModeResponse::InternalSwap(EnableMirrorModeResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata EnableMirrorModeResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void MirrorModeDisabled::InitAsDefaultInstance() {
}
class MirrorModeDisabled::_Internal {
 public:
};

MirrorModeDisabled::MirrorModeDisabled(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.MirrorModeDisabled)
}
MirrorModeDisabled::MirrorModeDisabled(const MirrorModeDisabled& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.MirrorModeDisabled)
}

void MirrorModeDisabled::SharedCtor() {
}

MirrorModeDisabled::~MirrorModeDisabled() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.MirrorModeDisabled)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void MirrorModeDisabled::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void MirrorModeDisabled::ArenaDtor(void* object) {
  MirrorModeDisabled* _this = reinterpret_cast< MirrorModeDisabled* >(object);
  (void)_this;
}
void MirrorModeDisabled::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void MirrorModeDisabled::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const MirrorModeDisabled& MirrorModeDisabled::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MirrorModeDisabled_messages_2eproto.base);
  return *internal_default_instance();
}


void MirrorModeDisabled::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.MirrorModeDisabled)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MirrorModeDisabled::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* MirrorModeDisabled::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.MirrorModeDisabled)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.MirrorModeDisabled)
  return target;
}

size_t MirrorModeDisabled::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.MirrorModeDisabled)
  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;

  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 MirrorModeDisabled::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.MirrorModeDisabled)
  GOOGLE_DCHECK_NE(&from, this);
  const MirrorModeDisabled* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MirrorModeDisabled>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.MirrorModeDisabled)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.MirrorModeDisabled)
    MergeFrom(*source);
  }
}

void MirrorModeDisabled::MergeFrom(const MirrorModeDisabled& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.MirrorModeDisabled)
  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;

}

void MirrorModeDisabled::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.MirrorModeDisabled)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void MirrorModeDisabled::CopyFrom(const MirrorModeDisabled& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.MirrorModeDisabled)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MirrorModeDisabled::IsInitialized() const {
  return true;
}

void MirrorModeDisabled::InternalSwap(MirrorModeDisabled* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MirrorModeDisabled::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void EnableImageStreamingRequest::InitAsDefaultInstance() {
}
class EnableImageStreamingRequest::_Internal {
 public:
};

EnableImageStreamingRequest::EnableImageStreamingRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EnableImageStreamingRequest)
}
EnableImageStreamingRequest::EnableImageStreamingRequest(const EnableImageStreamingRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&enable_, &from.enable_,
    static_cast<size_t>(reinterpret_cast<char*>(&enable_high_resolution_) -
    reinterpret_cast<char*>(&enable_)) + sizeof(enable_high_resolution_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EnableImageStreamingRequest)
}

void EnableImageStreamingRequest::SharedCtor() {
  ::memset(&enable_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&enable_high_resolution_) -
      reinterpret_cast<char*>(&enable_)) + sizeof(enable_high_resolution_));
}

EnableImageStreamingRequest::~EnableImageStreamingRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EnableImageStreamingRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void EnableImageStreamingRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void EnableImageStreamingRequest::ArenaDtor(void* object) {
  EnableImageStreamingRequest* _this = reinterpret_cast< EnableImageStreamingRequest* >(object);
  (void)_this;
}
void EnableImageStreamingRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void EnableImageStreamingRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const EnableImageStreamingRequest& EnableImageStreamingRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EnableImageStreamingRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void EnableImageStreamingRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EnableImageStreamingRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&enable_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&enable_high_resolution_) -
      reinterpret_cast<char*>(&enable_)) + sizeof(enable_high_resolution_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* EnableImageStreamingRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool enable = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          enable_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool enable_high_resolution = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          enable_high_resolution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* EnableImageStreamingRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.EnableImageStreamingRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool enable = 1;
  if (this->enable() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_enable(), target);
  }

  // bool enable_high_resolution = 2;
  if (this->enable_high_resolution() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_enable_high_resolution(), 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:Anki.Vector.external_interface.EnableImageStreamingRequest)
  return target;
}

size_t EnableImageStreamingRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EnableImageStreamingRequest)
  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;

  // bool enable = 1;
  if (this->enable() != 0) {
    total_size += 1 + 1;
  }

  // bool enable_high_resolution = 2;
  if (this->enable_high_resolution() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void EnableImageStreamingRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.EnableImageStreamingRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const EnableImageStreamingRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EnableImageStreamingRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.EnableImageStreamingRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.EnableImageStreamingRequest)
    MergeFrom(*source);
  }
}

void EnableImageStreamingRequest::MergeFrom(const EnableImageStreamingRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.EnableImageStreamingRequest)
  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.enable() != 0) {
    _internal_set_enable(from._internal_enable());
  }
  if (from.enable_high_resolution() != 0) {
    _internal_set_enable_high_resolution(from._internal_enable_high_resolution());
  }
}

void EnableImageStreamingRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.EnableImageStreamingRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnableImageStreamingRequest::CopyFrom(const EnableImageStreamingRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EnableImageStreamingRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnableImageStreamingRequest::IsInitialized() const {
  return true;
}

void EnableImageStreamingRequest::InternalSwap(EnableImageStreamingRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(EnableImageStreamingRequest, enable_high_resolution_)
      + sizeof(EnableImageStreamingRequest::enable_high_resolution_)
      - PROTOBUF_FIELD_OFFSET(EnableImageStreamingRequest, enable_)>(
          reinterpret_cast<char*>(&enable_),
          reinterpret_cast<char*>(&other->enable_));
}

::PROTOBUF_NAMESPACE_ID::Metadata EnableImageStreamingRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void EnableImageStreamingResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_EnableImageStreamingResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class EnableImageStreamingResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const EnableImageStreamingResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
EnableImageStreamingResponse::_Internal::status(const EnableImageStreamingResponse* msg) {
  return *msg->status_;
}
void EnableImageStreamingResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
EnableImageStreamingResponse::EnableImageStreamingResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.EnableImageStreamingResponse)
}
EnableImageStreamingResponse::EnableImageStreamingResponse(const EnableImageStreamingResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.EnableImageStreamingResponse)
}

void EnableImageStreamingResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_EnableImageStreamingResponse_messages_2eproto.base);
  status_ = nullptr;
}

EnableImageStreamingResponse::~EnableImageStreamingResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.EnableImageStreamingResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void EnableImageStreamingResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void EnableImageStreamingResponse::ArenaDtor(void* object) {
  EnableImageStreamingResponse* _this = reinterpret_cast< EnableImageStreamingResponse* >(object);
  (void)_this;
}
void EnableImageStreamingResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void EnableImageStreamingResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const EnableImageStreamingResponse& EnableImageStreamingResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_EnableImageStreamingResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void EnableImageStreamingResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.EnableImageStreamingResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* EnableImageStreamingResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* EnableImageStreamingResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.EnableImageStreamingResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.EnableImageStreamingResponse)
  return target;
}

size_t EnableImageStreamingResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.EnableImageStreamingResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 EnableImageStreamingResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.EnableImageStreamingResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const EnableImageStreamingResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<EnableImageStreamingResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.EnableImageStreamingResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.EnableImageStreamingResponse)
    MergeFrom(*source);
  }
}

void EnableImageStreamingResponse::MergeFrom(const EnableImageStreamingResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.EnableImageStreamingResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void EnableImageStreamingResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.EnableImageStreamingResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnableImageStreamingResponse::CopyFrom(const EnableImageStreamingResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.EnableImageStreamingResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnableImageStreamingResponse::IsInitialized() const {
  return true;
}

void EnableImageStreamingResponse::InternalSwap(EnableImageStreamingResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata EnableImageStreamingResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void IsImageStreamingEnabledRequest::InitAsDefaultInstance() {
}
class IsImageStreamingEnabledRequest::_Internal {
 public:
};

IsImageStreamingEnabledRequest::IsImageStreamingEnabledRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.IsImageStreamingEnabledRequest)
}
IsImageStreamingEnabledRequest::IsImageStreamingEnabledRequest(const IsImageStreamingEnabledRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.IsImageStreamingEnabledRequest)
}

void IsImageStreamingEnabledRequest::SharedCtor() {
}

IsImageStreamingEnabledRequest::~IsImageStreamingEnabledRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.IsImageStreamingEnabledRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void IsImageStreamingEnabledRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void IsImageStreamingEnabledRequest::ArenaDtor(void* object) {
  IsImageStreamingEnabledRequest* _this = reinterpret_cast< IsImageStreamingEnabledRequest* >(object);
  (void)_this;
}
void IsImageStreamingEnabledRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void IsImageStreamingEnabledRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const IsImageStreamingEnabledRequest& IsImageStreamingEnabledRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_IsImageStreamingEnabledRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void IsImageStreamingEnabledRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.IsImageStreamingEnabledRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* IsImageStreamingEnabledRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* IsImageStreamingEnabledRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.IsImageStreamingEnabledRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.IsImageStreamingEnabledRequest)
  return target;
}

size_t IsImageStreamingEnabledRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.IsImageStreamingEnabledRequest)
  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;

  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 IsImageStreamingEnabledRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.IsImageStreamingEnabledRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const IsImageStreamingEnabledRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<IsImageStreamingEnabledRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.IsImageStreamingEnabledRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.IsImageStreamingEnabledRequest)
    MergeFrom(*source);
  }
}

void IsImageStreamingEnabledRequest::MergeFrom(const IsImageStreamingEnabledRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.IsImageStreamingEnabledRequest)
  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;

}

void IsImageStreamingEnabledRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.IsImageStreamingEnabledRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void IsImageStreamingEnabledRequest::CopyFrom(const IsImageStreamingEnabledRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.IsImageStreamingEnabledRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool IsImageStreamingEnabledRequest::IsInitialized() const {
  return true;
}

void IsImageStreamingEnabledRequest::InternalSwap(IsImageStreamingEnabledRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata IsImageStreamingEnabledRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void IsImageStreamingEnabledResponse::InitAsDefaultInstance() {
}
class IsImageStreamingEnabledResponse::_Internal {
 public:
};

IsImageStreamingEnabledResponse::IsImageStreamingEnabledResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.IsImageStreamingEnabledResponse)
}
IsImageStreamingEnabledResponse::IsImageStreamingEnabledResponse(const IsImageStreamingEnabledResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  is_image_streaming_enabled_ = from.is_image_streaming_enabled_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.IsImageStreamingEnabledResponse)
}

void IsImageStreamingEnabledResponse::SharedCtor() {
  is_image_streaming_enabled_ = false;
}

IsImageStreamingEnabledResponse::~IsImageStreamingEnabledResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.IsImageStreamingEnabledResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void IsImageStreamingEnabledResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void IsImageStreamingEnabledResponse::ArenaDtor(void* object) {
  IsImageStreamingEnabledResponse* _this = reinterpret_cast< IsImageStreamingEnabledResponse* >(object);
  (void)_this;
}
void IsImageStreamingEnabledResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void IsImageStreamingEnabledResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const IsImageStreamingEnabledResponse& IsImageStreamingEnabledResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_IsImageStreamingEnabledResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void IsImageStreamingEnabledResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.IsImageStreamingEnabledResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  is_image_streaming_enabled_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* IsImageStreamingEnabledResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool is_image_streaming_enabled = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          is_image_streaming_enabled_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* IsImageStreamingEnabledResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.IsImageStreamingEnabledResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool is_image_streaming_enabled = 1;
  if (this->is_image_streaming_enabled() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_is_image_streaming_enabled(), 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:Anki.Vector.external_interface.IsImageStreamingEnabledResponse)
  return target;
}

size_t IsImageStreamingEnabledResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.IsImageStreamingEnabledResponse)
  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;

  // bool is_image_streaming_enabled = 1;
  if (this->is_image_streaming_enabled() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void IsImageStreamingEnabledResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.IsImageStreamingEnabledResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const IsImageStreamingEnabledResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<IsImageStreamingEnabledResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.IsImageStreamingEnabledResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.IsImageStreamingEnabledResponse)
    MergeFrom(*source);
  }
}

void IsImageStreamingEnabledResponse::MergeFrom(const IsImageStreamingEnabledResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.IsImageStreamingEnabledResponse)
  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.is_image_streaming_enabled() != 0) {
    _internal_set_is_image_streaming_enabled(from._internal_is_image_streaming_enabled());
  }
}

void IsImageStreamingEnabledResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.IsImageStreamingEnabledResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void IsImageStreamingEnabledResponse::CopyFrom(const IsImageStreamingEnabledResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.IsImageStreamingEnabledResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool IsImageStreamingEnabledResponse::IsInitialized() const {
  return true;
}

void IsImageStreamingEnabledResponse::InternalSwap(IsImageStreamingEnabledResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(is_image_streaming_enabled_, other->is_image_streaming_enabled_);
}

::PROTOBUF_NAMESPACE_ID::Metadata IsImageStreamingEnabledResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void VisionModesAutoDisabled::InitAsDefaultInstance() {
}
class VisionModesAutoDisabled::_Internal {
 public:
};

VisionModesAutoDisabled::VisionModesAutoDisabled(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.VisionModesAutoDisabled)
}
VisionModesAutoDisabled::VisionModesAutoDisabled(const VisionModesAutoDisabled& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.VisionModesAutoDisabled)
}

void VisionModesAutoDisabled::SharedCtor() {
}

VisionModesAutoDisabled::~VisionModesAutoDisabled() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.VisionModesAutoDisabled)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void VisionModesAutoDisabled::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void VisionModesAutoDisabled::ArenaDtor(void* object) {
  VisionModesAutoDisabled* _this = reinterpret_cast< VisionModesAutoDisabled* >(object);
  (void)_this;
}
void VisionModesAutoDisabled::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void VisionModesAutoDisabled::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const VisionModesAutoDisabled& VisionModesAutoDisabled::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_VisionModesAutoDisabled_messages_2eproto.base);
  return *internal_default_instance();
}


void VisionModesAutoDisabled::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.VisionModesAutoDisabled)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* VisionModesAutoDisabled::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* VisionModesAutoDisabled::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.VisionModesAutoDisabled)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.VisionModesAutoDisabled)
  return target;
}

size_t VisionModesAutoDisabled::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.VisionModesAutoDisabled)
  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;

  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 VisionModesAutoDisabled::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.VisionModesAutoDisabled)
  GOOGLE_DCHECK_NE(&from, this);
  const VisionModesAutoDisabled* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<VisionModesAutoDisabled>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.VisionModesAutoDisabled)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.VisionModesAutoDisabled)
    MergeFrom(*source);
  }
}

void VisionModesAutoDisabled::MergeFrom(const VisionModesAutoDisabled& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.VisionModesAutoDisabled)
  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;

}

void VisionModesAutoDisabled::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.VisionModesAutoDisabled)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void VisionModesAutoDisabled::CopyFrom(const VisionModesAutoDisabled& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.VisionModesAutoDisabled)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool VisionModesAutoDisabled::IsInitialized() const {
  return true;
}

void VisionModesAutoDisabled::InternalSwap(VisionModesAutoDisabled* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata VisionModesAutoDisabled::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ImageChunk::InitAsDefaultInstance() {
}
class ImageChunk::_Internal {
 public:
};

ImageChunk::ImageChunk(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ImageChunk)
}
ImageChunk::ImageChunk(const ImageChunk& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_data().empty()) {
    data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_data(),
      GetArena());
  }
  ::memcpy(&frame_time_stamp_, &from.frame_time_stamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&chunk_id_) -
    reinterpret_cast<char*>(&frame_time_stamp_)) + sizeof(chunk_id_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ImageChunk)
}

void ImageChunk::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ImageChunk_messages_2eproto.base);
  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&frame_time_stamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&chunk_id_) -
      reinterpret_cast<char*>(&frame_time_stamp_)) + sizeof(chunk_id_));
}

ImageChunk::~ImageChunk() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ImageChunk)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ImageChunk::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  data_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void ImageChunk::ArenaDtor(void* object) {
  ImageChunk* _this = reinterpret_cast< ImageChunk* >(object);
  (void)_this;
}
void ImageChunk::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ImageChunk::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ImageChunk& ImageChunk::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ImageChunk_messages_2eproto.base);
  return *internal_default_instance();
}


void ImageChunk::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ImageChunk)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  data_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::memset(&frame_time_stamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&chunk_id_) -
      reinterpret_cast<char*>(&frame_time_stamp_)) + sizeof(chunk_id_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ImageChunk::_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 frame_time_stamp = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          frame_time_stamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 image_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          image_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 width = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 height = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          height_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ImageChunk.ImageEncoding image_encoding = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_image_encoding(static_cast<::Anki::Vector::external_interface::ImageChunk_ImageEncoding>(val));
        } else goto handle_unusual;
        continue;
      // uint32 display_index = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          display_index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 image_chunk_count = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          image_chunk_count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 chunk_id = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          chunk_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bytes data = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          auto str = _internal_mutable_data();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          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* ImageChunk::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.ImageChunk)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 frame_time_stamp = 1;
  if (this->frame_time_stamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_frame_time_stamp(), target);
  }

  // uint32 image_id = 2;
  if (this->image_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_image_id(), target);
  }

  // uint32 width = 3;
  if (this->width() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(3, this->_internal_width(), target);
  }

  // uint32 height = 4;
  if (this->height() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(4, this->_internal_height(), target);
  }

  // .Anki.Vector.external_interface.ImageChunk.ImageEncoding image_encoding = 5;
  if (this->image_encoding() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      5, this->_internal_image_encoding(), target);
  }

  // uint32 display_index = 6;
  if (this->display_index() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(6, this->_internal_display_index(), target);
  }

  // uint32 image_chunk_count = 7;
  if (this->image_chunk_count() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(7, this->_internal_image_chunk_count(), target);
  }

  // uint32 chunk_id = 8;
  if (this->chunk_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(8, this->_internal_chunk_id(), target);
  }

  // bytes data = 9;
  if (this->data().size() > 0) {
    target = stream->WriteBytesMaybeAliased(
        9, this->_internal_data(), 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:Anki.Vector.external_interface.ImageChunk)
  return target;
}

size_t ImageChunk::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ImageChunk)
  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;

  // bytes data = 9;
  if (this->data().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_data());
  }

  // uint32 frame_time_stamp = 1;
  if (this->frame_time_stamp() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_frame_time_stamp());
  }

  // uint32 image_id = 2;
  if (this->image_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_image_id());
  }

  // uint32 width = 3;
  if (this->width() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_width());
  }

  // uint32 height = 4;
  if (this->height() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_height());
  }

  // .Anki.Vector.external_interface.ImageChunk.ImageEncoding image_encoding = 5;
  if (this->image_encoding() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_image_encoding());
  }

  // uint32 display_index = 6;
  if (this->display_index() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_display_index());
  }

  // uint32 image_chunk_count = 7;
  if (this->image_chunk_count() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_image_chunk_count());
  }

  // uint32 chunk_id = 8;
  if (this->chunk_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_chunk_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 ImageChunk::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.ImageChunk)
  GOOGLE_DCHECK_NE(&from, this);
  const ImageChunk* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ImageChunk>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.ImageChunk)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.ImageChunk)
    MergeFrom(*source);
  }
}

void ImageChunk::MergeFrom(const ImageChunk& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.ImageChunk)
  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.data().size() > 0) {
    _internal_set_data(from._internal_data());
  }
  if (from.frame_time_stamp() != 0) {
    _internal_set_frame_time_stamp(from._internal_frame_time_stamp());
  }
  if (from.image_id() != 0) {
    _internal_set_image_id(from._internal_image_id());
  }
  if (from.width() != 0) {
    _internal_set_width(from._internal_width());
  }
  if (from.height() != 0) {
    _internal_set_height(from._internal_height());
  }
  if (from.image_encoding() != 0) {
    _internal_set_image_encoding(from._internal_image_encoding());
  }
  if (from.display_index() != 0) {
    _internal_set_display_index(from._internal_display_index());
  }
  if (from.image_chunk_count() != 0) {
    _internal_set_image_chunk_count(from._internal_image_chunk_count());
  }
  if (from.chunk_id() != 0) {
    _internal_set_chunk_id(from._internal_chunk_id());
  }
}

void ImageChunk::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.ImageChunk)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ImageChunk::CopyFrom(const ImageChunk& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ImageChunk)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ImageChunk::IsInitialized() const {
  return true;
}

void ImageChunk::InternalSwap(ImageChunk* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  data_.Swap(&other->data_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ImageChunk, chunk_id_)
      + sizeof(ImageChunk::chunk_id_)
      - PROTOBUF_FIELD_OFFSET(ImageChunk, frame_time_stamp_)>(
          reinterpret_cast<char*>(&frame_time_stamp_),
          reinterpret_cast<char*>(&other->frame_time_stamp_));
}

::PROTOBUF_NAMESPACE_ID::Metadata ImageChunk::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CameraFeedRequest::InitAsDefaultInstance() {
}
class CameraFeedRequest::_Internal {
 public:
};

CameraFeedRequest::CameraFeedRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CameraFeedRequest)
}
CameraFeedRequest::CameraFeedRequest(const CameraFeedRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CameraFeedRequest)
}

void CameraFeedRequest::SharedCtor() {
}

CameraFeedRequest::~CameraFeedRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CameraFeedRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CameraFeedRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void CameraFeedRequest::ArenaDtor(void* object) {
  CameraFeedRequest* _this = reinterpret_cast< CameraFeedRequest* >(object);
  (void)_this;
}
void CameraFeedRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CameraFeedRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CameraFeedRequest& CameraFeedRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CameraFeedRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void CameraFeedRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CameraFeedRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CameraFeedRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* CameraFeedRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CameraFeedRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.CameraFeedRequest)
  return target;
}

size_t CameraFeedRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CameraFeedRequest)
  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;

  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 CameraFeedRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CameraFeedRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const CameraFeedRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CameraFeedRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CameraFeedRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CameraFeedRequest)
    MergeFrom(*source);
  }
}

void CameraFeedRequest::MergeFrom(const CameraFeedRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CameraFeedRequest)
  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;

}

void CameraFeedRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CameraFeedRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CameraFeedRequest::CopyFrom(const CameraFeedRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CameraFeedRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CameraFeedRequest::IsInitialized() const {
  return true;
}

void CameraFeedRequest::InternalSwap(CameraFeedRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CameraFeedRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CameraFeedResponse::InitAsDefaultInstance() {
}
class CameraFeedResponse::_Internal {
 public:
};

CameraFeedResponse::CameraFeedResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CameraFeedResponse)
}
CameraFeedResponse::CameraFeedResponse(const CameraFeedResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_data().empty()) {
    data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_data(),
      GetArena());
  }
  ::memcpy(&frame_time_stamp_, &from.frame_time_stamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&image_encoding_) -
    reinterpret_cast<char*>(&frame_time_stamp_)) + sizeof(image_encoding_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CameraFeedResponse)
}

void CameraFeedResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CameraFeedResponse_messages_2eproto.base);
  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&frame_time_stamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&image_encoding_) -
      reinterpret_cast<char*>(&frame_time_stamp_)) + sizeof(image_encoding_));
}

CameraFeedResponse::~CameraFeedResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CameraFeedResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CameraFeedResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  data_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void CameraFeedResponse::ArenaDtor(void* object) {
  CameraFeedResponse* _this = reinterpret_cast< CameraFeedResponse* >(object);
  (void)_this;
}
void CameraFeedResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CameraFeedResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CameraFeedResponse& CameraFeedResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CameraFeedResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void CameraFeedResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CameraFeedResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  data_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::memset(&frame_time_stamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&image_encoding_) -
      reinterpret_cast<char*>(&frame_time_stamp_)) + sizeof(image_encoding_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CameraFeedResponse::_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 frame_time_stamp = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          frame_time_stamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 image_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          image_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ImageChunk.ImageEncoding image_encoding = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_image_encoding(static_cast<::Anki::Vector::external_interface::ImageChunk_ImageEncoding>(val));
        } else goto handle_unusual;
        continue;
      // bytes data = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          auto str = _internal_mutable_data();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          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* CameraFeedResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CameraFeedResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 frame_time_stamp = 1;
  if (this->frame_time_stamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_frame_time_stamp(), target);
  }

  // uint32 image_id = 2;
  if (this->image_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_image_id(), target);
  }

  // .Anki.Vector.external_interface.ImageChunk.ImageEncoding image_encoding = 3;
  if (this->image_encoding() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      3, this->_internal_image_encoding(), target);
  }

  // bytes data = 4;
  if (this->data().size() > 0) {
    target = stream->WriteBytesMaybeAliased(
        4, this->_internal_data(), 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:Anki.Vector.external_interface.CameraFeedResponse)
  return target;
}

size_t CameraFeedResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CameraFeedResponse)
  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;

  // bytes data = 4;
  if (this->data().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_data());
  }

  // uint32 frame_time_stamp = 1;
  if (this->frame_time_stamp() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_frame_time_stamp());
  }

  // uint32 image_id = 2;
  if (this->image_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_image_id());
  }

  // .Anki.Vector.external_interface.ImageChunk.ImageEncoding image_encoding = 3;
  if (this->image_encoding() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_image_encoding());
  }

  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 CameraFeedResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CameraFeedResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const CameraFeedResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CameraFeedResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CameraFeedResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CameraFeedResponse)
    MergeFrom(*source);
  }
}

void CameraFeedResponse::MergeFrom(const CameraFeedResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CameraFeedResponse)
  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.data().size() > 0) {
    _internal_set_data(from._internal_data());
  }
  if (from.frame_time_stamp() != 0) {
    _internal_set_frame_time_stamp(from._internal_frame_time_stamp());
  }
  if (from.image_id() != 0) {
    _internal_set_image_id(from._internal_image_id());
  }
  if (from.image_encoding() != 0) {
    _internal_set_image_encoding(from._internal_image_encoding());
  }
}

void CameraFeedResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CameraFeedResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CameraFeedResponse::CopyFrom(const CameraFeedResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CameraFeedResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CameraFeedResponse::IsInitialized() const {
  return true;
}

void CameraFeedResponse::InternalSwap(CameraFeedResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  data_.Swap(&other->data_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CameraFeedResponse, image_encoding_)
      + sizeof(CameraFeedResponse::image_encoding_)
      - PROTOBUF_FIELD_OFFSET(CameraFeedResponse, frame_time_stamp_)>(
          reinterpret_cast<char*>(&frame_time_stamp_),
          reinterpret_cast<char*>(&other->frame_time_stamp_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CameraFeedResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CaptureSingleImageRequest::InitAsDefaultInstance() {
}
class CaptureSingleImageRequest::_Internal {
 public:
};

CaptureSingleImageRequest::CaptureSingleImageRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CaptureSingleImageRequest)
}
CaptureSingleImageRequest::CaptureSingleImageRequest(const CaptureSingleImageRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  enable_high_resolution_ = from.enable_high_resolution_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CaptureSingleImageRequest)
}

void CaptureSingleImageRequest::SharedCtor() {
  enable_high_resolution_ = false;
}

CaptureSingleImageRequest::~CaptureSingleImageRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CaptureSingleImageRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CaptureSingleImageRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void CaptureSingleImageRequest::ArenaDtor(void* object) {
  CaptureSingleImageRequest* _this = reinterpret_cast< CaptureSingleImageRequest* >(object);
  (void)_this;
}
void CaptureSingleImageRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CaptureSingleImageRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CaptureSingleImageRequest& CaptureSingleImageRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CaptureSingleImageRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void CaptureSingleImageRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CaptureSingleImageRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  enable_high_resolution_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CaptureSingleImageRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool enable_high_resolution = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          enable_high_resolution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* CaptureSingleImageRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CaptureSingleImageRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool enable_high_resolution = 1;
  if (this->enable_high_resolution() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_enable_high_resolution(), 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:Anki.Vector.external_interface.CaptureSingleImageRequest)
  return target;
}

size_t CaptureSingleImageRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CaptureSingleImageRequest)
  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;

  // bool enable_high_resolution = 1;
  if (this->enable_high_resolution() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void CaptureSingleImageRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CaptureSingleImageRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const CaptureSingleImageRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CaptureSingleImageRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CaptureSingleImageRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CaptureSingleImageRequest)
    MergeFrom(*source);
  }
}

void CaptureSingleImageRequest::MergeFrom(const CaptureSingleImageRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CaptureSingleImageRequest)
  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.enable_high_resolution() != 0) {
    _internal_set_enable_high_resolution(from._internal_enable_high_resolution());
  }
}

void CaptureSingleImageRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CaptureSingleImageRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CaptureSingleImageRequest::CopyFrom(const CaptureSingleImageRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CaptureSingleImageRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CaptureSingleImageRequest::IsInitialized() const {
  return true;
}

void CaptureSingleImageRequest::InternalSwap(CaptureSingleImageRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(enable_high_resolution_, other->enable_high_resolution_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CaptureSingleImageRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CaptureSingleImageResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_CaptureSingleImageResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class CaptureSingleImageResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const CaptureSingleImageResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
CaptureSingleImageResponse::_Internal::status(const CaptureSingleImageResponse* msg) {
  return *msg->status_;
}
void CaptureSingleImageResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
CaptureSingleImageResponse::CaptureSingleImageResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CaptureSingleImageResponse)
}
CaptureSingleImageResponse::CaptureSingleImageResponse(const CaptureSingleImageResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_data().empty()) {
    data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_data(),
      GetArena());
  }
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  ::memcpy(&frame_time_stamp_, &from.frame_time_stamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&image_encoding_) -
    reinterpret_cast<char*>(&frame_time_stamp_)) + sizeof(image_encoding_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CaptureSingleImageResponse)
}

void CaptureSingleImageResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CaptureSingleImageResponse_messages_2eproto.base);
  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&image_encoding_) -
      reinterpret_cast<char*>(&status_)) + sizeof(image_encoding_));
}

CaptureSingleImageResponse::~CaptureSingleImageResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CaptureSingleImageResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CaptureSingleImageResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  data_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete status_;
}

void CaptureSingleImageResponse::ArenaDtor(void* object) {
  CaptureSingleImageResponse* _this = reinterpret_cast< CaptureSingleImageResponse* >(object);
  (void)_this;
}
void CaptureSingleImageResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CaptureSingleImageResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CaptureSingleImageResponse& CaptureSingleImageResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CaptureSingleImageResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void CaptureSingleImageResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CaptureSingleImageResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  data_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  ::memset(&frame_time_stamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&image_encoding_) -
      reinterpret_cast<char*>(&frame_time_stamp_)) + sizeof(image_encoding_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CaptureSingleImageResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 frame_time_stamp = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          frame_time_stamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 image_id = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          image_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ImageChunk.ImageEncoding image_encoding = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_image_encoding(static_cast<::Anki::Vector::external_interface::ImageChunk_ImageEncoding>(val));
        } else goto handle_unusual;
        continue;
      // bytes data = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          auto str = _internal_mutable_data();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          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* CaptureSingleImageResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CaptureSingleImageResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // uint32 frame_time_stamp = 2;
  if (this->frame_time_stamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_frame_time_stamp(), target);
  }

  // uint32 image_id = 3;
  if (this->image_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(3, this->_internal_image_id(), target);
  }

  // .Anki.Vector.external_interface.ImageChunk.ImageEncoding image_encoding = 4;
  if (this->image_encoding() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      4, this->_internal_image_encoding(), target);
  }

  // bytes data = 5;
  if (this->data().size() > 0) {
    target = stream->WriteBytesMaybeAliased(
        5, this->_internal_data(), 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:Anki.Vector.external_interface.CaptureSingleImageResponse)
  return target;
}

size_t CaptureSingleImageResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CaptureSingleImageResponse)
  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;

  // bytes data = 5;
  if (this->data().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_data());
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // uint32 frame_time_stamp = 2;
  if (this->frame_time_stamp() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_frame_time_stamp());
  }

  // uint32 image_id = 3;
  if (this->image_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_image_id());
  }

  // .Anki.Vector.external_interface.ImageChunk.ImageEncoding image_encoding = 4;
  if (this->image_encoding() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_image_encoding());
  }

  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 CaptureSingleImageResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CaptureSingleImageResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const CaptureSingleImageResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CaptureSingleImageResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CaptureSingleImageResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CaptureSingleImageResponse)
    MergeFrom(*source);
  }
}

void CaptureSingleImageResponse::MergeFrom(const CaptureSingleImageResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CaptureSingleImageResponse)
  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.data().size() > 0) {
    _internal_set_data(from._internal_data());
  }
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.frame_time_stamp() != 0) {
    _internal_set_frame_time_stamp(from._internal_frame_time_stamp());
  }
  if (from.image_id() != 0) {
    _internal_set_image_id(from._internal_image_id());
  }
  if (from.image_encoding() != 0) {
    _internal_set_image_encoding(from._internal_image_encoding());
  }
}

void CaptureSingleImageResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CaptureSingleImageResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CaptureSingleImageResponse::CopyFrom(const CaptureSingleImageResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CaptureSingleImageResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CaptureSingleImageResponse::IsInitialized() const {
  return true;
}

void CaptureSingleImageResponse::InternalSwap(CaptureSingleImageResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  data_.Swap(&other->data_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CaptureSingleImageResponse, image_encoding_)
      + sizeof(CaptureSingleImageResponse::image_encoding_)
      - PROTOBUF_FIELD_OFFSET(CaptureSingleImageResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CaptureSingleImageResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void SetEyeColorRequest::InitAsDefaultInstance() {
}
class SetEyeColorRequest::_Internal {
 public:
};

SetEyeColorRequest::SetEyeColorRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SetEyeColorRequest)
}
SetEyeColorRequest::SetEyeColorRequest(const SetEyeColorRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&hue_, &from.hue_,
    static_cast<size_t>(reinterpret_cast<char*>(&saturation_) -
    reinterpret_cast<char*>(&hue_)) + sizeof(saturation_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SetEyeColorRequest)
}

void SetEyeColorRequest::SharedCtor() {
  ::memset(&hue_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&saturation_) -
      reinterpret_cast<char*>(&hue_)) + sizeof(saturation_));
}

SetEyeColorRequest::~SetEyeColorRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SetEyeColorRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SetEyeColorRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void SetEyeColorRequest::ArenaDtor(void* object) {
  SetEyeColorRequest* _this = reinterpret_cast< SetEyeColorRequest* >(object);
  (void)_this;
}
void SetEyeColorRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SetEyeColorRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SetEyeColorRequest& SetEyeColorRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SetEyeColorRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void SetEyeColorRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SetEyeColorRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&hue_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&saturation_) -
      reinterpret_cast<char*>(&hue_)) + sizeof(saturation_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SetEyeColorRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float hue = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          hue_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float saturation = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          saturation_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* SetEyeColorRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.SetEyeColorRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float hue = 1;
  if (!(this->hue() <= 0 && this->hue() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_hue(), target);
  }

  // float saturation = 2;
  if (!(this->saturation() <= 0 && this->saturation() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_saturation(), 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:Anki.Vector.external_interface.SetEyeColorRequest)
  return target;
}

size_t SetEyeColorRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SetEyeColorRequest)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float hue = 1;
  if (!(this->hue() <= 0 && this->hue() >= 0)) {
    total_size += 1 + 4;
  }

  // float saturation = 2;
  if (!(this->saturation() <= 0 && this->saturation() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void SetEyeColorRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.SetEyeColorRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const SetEyeColorRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SetEyeColorRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.SetEyeColorRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.SetEyeColorRequest)
    MergeFrom(*source);
  }
}

void SetEyeColorRequest::MergeFrom(const SetEyeColorRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.SetEyeColorRequest)
  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.hue() <= 0 && from.hue() >= 0)) {
    _internal_set_hue(from._internal_hue());
  }
  if (!(from.saturation() <= 0 && from.saturation() >= 0)) {
    _internal_set_saturation(from._internal_saturation());
  }
}

void SetEyeColorRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.SetEyeColorRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SetEyeColorRequest::CopyFrom(const SetEyeColorRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SetEyeColorRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SetEyeColorRequest::IsInitialized() const {
  return true;
}

void SetEyeColorRequest::InternalSwap(SetEyeColorRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SetEyeColorRequest, saturation_)
      + sizeof(SetEyeColorRequest::saturation_)
      - PROTOBUF_FIELD_OFFSET(SetEyeColorRequest, hue_)>(
          reinterpret_cast<char*>(&hue_),
          reinterpret_cast<char*>(&other->hue_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SetEyeColorRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void SetEyeColorResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_SetEyeColorResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class SetEyeColorResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const SetEyeColorResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
SetEyeColorResponse::_Internal::status(const SetEyeColorResponse* msg) {
  return *msg->status_;
}
void SetEyeColorResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
SetEyeColorResponse::SetEyeColorResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SetEyeColorResponse)
}
SetEyeColorResponse::SetEyeColorResponse(const SetEyeColorResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SetEyeColorResponse)
}

void SetEyeColorResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SetEyeColorResponse_messages_2eproto.base);
  status_ = nullptr;
}

SetEyeColorResponse::~SetEyeColorResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SetEyeColorResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SetEyeColorResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void SetEyeColorResponse::ArenaDtor(void* object) {
  SetEyeColorResponse* _this = reinterpret_cast< SetEyeColorResponse* >(object);
  (void)_this;
}
void SetEyeColorResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SetEyeColorResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SetEyeColorResponse& SetEyeColorResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SetEyeColorResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void SetEyeColorResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SetEyeColorResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SetEyeColorResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* SetEyeColorResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.SetEyeColorResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.SetEyeColorResponse)
  return target;
}

size_t SetEyeColorResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SetEyeColorResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 SetEyeColorResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.SetEyeColorResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const SetEyeColorResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SetEyeColorResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.SetEyeColorResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.SetEyeColorResponse)
    MergeFrom(*source);
  }
}

void SetEyeColorResponse::MergeFrom(const SetEyeColorResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.SetEyeColorResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void SetEyeColorResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.SetEyeColorResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SetEyeColorResponse::CopyFrom(const SetEyeColorResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SetEyeColorResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SetEyeColorResponse::IsInitialized() const {
  return true;
}

void SetEyeColorResponse::InternalSwap(SetEyeColorResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SetEyeColorResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CameraConfigRequest::InitAsDefaultInstance() {
}
class CameraConfigRequest::_Internal {
 public:
};

CameraConfigRequest::CameraConfigRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CameraConfigRequest)
}
CameraConfigRequest::CameraConfigRequest(const CameraConfigRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CameraConfigRequest)
}

void CameraConfigRequest::SharedCtor() {
}

CameraConfigRequest::~CameraConfigRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CameraConfigRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CameraConfigRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void CameraConfigRequest::ArenaDtor(void* object) {
  CameraConfigRequest* _this = reinterpret_cast< CameraConfigRequest* >(object);
  (void)_this;
}
void CameraConfigRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CameraConfigRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CameraConfigRequest& CameraConfigRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CameraConfigRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void CameraConfigRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CameraConfigRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CameraConfigRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* CameraConfigRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CameraConfigRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.CameraConfigRequest)
  return target;
}

size_t CameraConfigRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CameraConfigRequest)
  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;

  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 CameraConfigRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CameraConfigRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const CameraConfigRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CameraConfigRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CameraConfigRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CameraConfigRequest)
    MergeFrom(*source);
  }
}

void CameraConfigRequest::MergeFrom(const CameraConfigRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CameraConfigRequest)
  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;

}

void CameraConfigRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CameraConfigRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CameraConfigRequest::CopyFrom(const CameraConfigRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CameraConfigRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CameraConfigRequest::IsInitialized() const {
  return true;
}

void CameraConfigRequest::InternalSwap(CameraConfigRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CameraConfigRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CameraConfigResponse::InitAsDefaultInstance() {
}
class CameraConfigResponse::_Internal {
 public:
};

CameraConfigResponse::CameraConfigResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CameraConfigResponse)
}
CameraConfigResponse::CameraConfigResponse(const CameraConfigResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&focal_length_x_, &from.focal_length_x_,
    static_cast<size_t>(reinterpret_cast<char*>(&max_camera_gain_) -
    reinterpret_cast<char*>(&focal_length_x_)) + sizeof(max_camera_gain_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CameraConfigResponse)
}

void CameraConfigResponse::SharedCtor() {
  ::memset(&focal_length_x_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&max_camera_gain_) -
      reinterpret_cast<char*>(&focal_length_x_)) + sizeof(max_camera_gain_));
}

CameraConfigResponse::~CameraConfigResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CameraConfigResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CameraConfigResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void CameraConfigResponse::ArenaDtor(void* object) {
  CameraConfigResponse* _this = reinterpret_cast< CameraConfigResponse* >(object);
  (void)_this;
}
void CameraConfigResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CameraConfigResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CameraConfigResponse& CameraConfigResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CameraConfigResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void CameraConfigResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CameraConfigResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&focal_length_x_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&max_camera_gain_) -
      reinterpret_cast<char*>(&focal_length_x_)) + sizeof(max_camera_gain_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CameraConfigResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float focal_length_x = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          focal_length_x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float focal_length_y = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          focal_length_y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float center_x = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          center_x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float center_y = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          center_y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float fov_x = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 45)) {
          fov_x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float fov_y = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 53)) {
          fov_y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // uint32 min_camera_exposure_time_ms = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          min_camera_exposure_time_ms_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 max_camera_exposure_time_ms = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          max_camera_exposure_time_ms_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float min_camera_gain = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 77)) {
          min_camera_gain_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float max_camera_gain = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 85)) {
          max_camera_gain_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* CameraConfigResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CameraConfigResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float focal_length_x = 1;
  if (!(this->focal_length_x() <= 0 && this->focal_length_x() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_focal_length_x(), target);
  }

  // float focal_length_y = 2;
  if (!(this->focal_length_y() <= 0 && this->focal_length_y() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_focal_length_y(), target);
  }

  // float center_x = 3;
  if (!(this->center_x() <= 0 && this->center_x() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_center_x(), target);
  }

  // float center_y = 4;
  if (!(this->center_y() <= 0 && this->center_y() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_center_y(), target);
  }

  // float fov_x = 5;
  if (!(this->fov_x() <= 0 && this->fov_x() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(5, this->_internal_fov_x(), target);
  }

  // float fov_y = 6;
  if (!(this->fov_y() <= 0 && this->fov_y() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(6, this->_internal_fov_y(), target);
  }

  // uint32 min_camera_exposure_time_ms = 7;
  if (this->min_camera_exposure_time_ms() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(7, this->_internal_min_camera_exposure_time_ms(), target);
  }

  // uint32 max_camera_exposure_time_ms = 8;
  if (this->max_camera_exposure_time_ms() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(8, this->_internal_max_camera_exposure_time_ms(), target);
  }

  // float min_camera_gain = 9;
  if (!(this->min_camera_gain() <= 0 && this->min_camera_gain() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(9, this->_internal_min_camera_gain(), target);
  }

  // float max_camera_gain = 10;
  if (!(this->max_camera_gain() <= 0 && this->max_camera_gain() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(10, this->_internal_max_camera_gain(), 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:Anki.Vector.external_interface.CameraConfigResponse)
  return target;
}

size_t CameraConfigResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CameraConfigResponse)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float focal_length_x = 1;
  if (!(this->focal_length_x() <= 0 && this->focal_length_x() >= 0)) {
    total_size += 1 + 4;
  }

  // float focal_length_y = 2;
  if (!(this->focal_length_y() <= 0 && this->focal_length_y() >= 0)) {
    total_size += 1 + 4;
  }

  // float center_x = 3;
  if (!(this->center_x() <= 0 && this->center_x() >= 0)) {
    total_size += 1 + 4;
  }

  // float center_y = 4;
  if (!(this->center_y() <= 0 && this->center_y() >= 0)) {
    total_size += 1 + 4;
  }

  // float fov_x = 5;
  if (!(this->fov_x() <= 0 && this->fov_x() >= 0)) {
    total_size += 1 + 4;
  }

  // float fov_y = 6;
  if (!(this->fov_y() <= 0 && this->fov_y() >= 0)) {
    total_size += 1 + 4;
  }

  // uint32 min_camera_exposure_time_ms = 7;
  if (this->min_camera_exposure_time_ms() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_min_camera_exposure_time_ms());
  }

  // uint32 max_camera_exposure_time_ms = 8;
  if (this->max_camera_exposure_time_ms() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_max_camera_exposure_time_ms());
  }

  // float min_camera_gain = 9;
  if (!(this->min_camera_gain() <= 0 && this->min_camera_gain() >= 0)) {
    total_size += 1 + 4;
  }

  // float max_camera_gain = 10;
  if (!(this->max_camera_gain() <= 0 && this->max_camera_gain() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void CameraConfigResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CameraConfigResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const CameraConfigResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CameraConfigResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CameraConfigResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CameraConfigResponse)
    MergeFrom(*source);
  }
}

void CameraConfigResponse::MergeFrom(const CameraConfigResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CameraConfigResponse)
  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.focal_length_x() <= 0 && from.focal_length_x() >= 0)) {
    _internal_set_focal_length_x(from._internal_focal_length_x());
  }
  if (!(from.focal_length_y() <= 0 && from.focal_length_y() >= 0)) {
    _internal_set_focal_length_y(from._internal_focal_length_y());
  }
  if (!(from.center_x() <= 0 && from.center_x() >= 0)) {
    _internal_set_center_x(from._internal_center_x());
  }
  if (!(from.center_y() <= 0 && from.center_y() >= 0)) {
    _internal_set_center_y(from._internal_center_y());
  }
  if (!(from.fov_x() <= 0 && from.fov_x() >= 0)) {
    _internal_set_fov_x(from._internal_fov_x());
  }
  if (!(from.fov_y() <= 0 && from.fov_y() >= 0)) {
    _internal_set_fov_y(from._internal_fov_y());
  }
  if (from.min_camera_exposure_time_ms() != 0) {
    _internal_set_min_camera_exposure_time_ms(from._internal_min_camera_exposure_time_ms());
  }
  if (from.max_camera_exposure_time_ms() != 0) {
    _internal_set_max_camera_exposure_time_ms(from._internal_max_camera_exposure_time_ms());
  }
  if (!(from.min_camera_gain() <= 0 && from.min_camera_gain() >= 0)) {
    _internal_set_min_camera_gain(from._internal_min_camera_gain());
  }
  if (!(from.max_camera_gain() <= 0 && from.max_camera_gain() >= 0)) {
    _internal_set_max_camera_gain(from._internal_max_camera_gain());
  }
}

void CameraConfigResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CameraConfigResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CameraConfigResponse::CopyFrom(const CameraConfigResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CameraConfigResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CameraConfigResponse::IsInitialized() const {
  return true;
}

void CameraConfigResponse::InternalSwap(CameraConfigResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CameraConfigResponse, max_camera_gain_)
      + sizeof(CameraConfigResponse::max_camera_gain_)
      - PROTOBUF_FIELD_OFFSET(CameraConfigResponse, focal_length_x_)>(
          reinterpret_cast<char*>(&focal_length_x_),
          reinterpret_cast<char*>(&other->focal_length_x_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CameraConfigResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void SetCameraSettingsRequest::InitAsDefaultInstance() {
}
class SetCameraSettingsRequest::_Internal {
 public:
};

SetCameraSettingsRequest::SetCameraSettingsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SetCameraSettingsRequest)
}
SetCameraSettingsRequest::SetCameraSettingsRequest(const SetCameraSettingsRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&gain_, &from.gain_,
    static_cast<size_t>(reinterpret_cast<char*>(&enable_auto_exposure_) -
    reinterpret_cast<char*>(&gain_)) + sizeof(enable_auto_exposure_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SetCameraSettingsRequest)
}

void SetCameraSettingsRequest::SharedCtor() {
  ::memset(&gain_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&enable_auto_exposure_) -
      reinterpret_cast<char*>(&gain_)) + sizeof(enable_auto_exposure_));
}

SetCameraSettingsRequest::~SetCameraSettingsRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SetCameraSettingsRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SetCameraSettingsRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void SetCameraSettingsRequest::ArenaDtor(void* object) {
  SetCameraSettingsRequest* _this = reinterpret_cast< SetCameraSettingsRequest* >(object);
  (void)_this;
}
void SetCameraSettingsRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SetCameraSettingsRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SetCameraSettingsRequest& SetCameraSettingsRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SetCameraSettingsRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void SetCameraSettingsRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SetCameraSettingsRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&gain_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&enable_auto_exposure_) -
      reinterpret_cast<char*>(&gain_)) + sizeof(enable_auto_exposure_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SetCameraSettingsRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float gain = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          gain_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // uint32 exposure_ms = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          exposure_ms_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool enable_auto_exposure = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          enable_auto_exposure_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* SetCameraSettingsRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.SetCameraSettingsRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float gain = 1;
  if (!(this->gain() <= 0 && this->gain() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_gain(), target);
  }

  // uint32 exposure_ms = 2;
  if (this->exposure_ms() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_exposure_ms(), target);
  }

  // bool enable_auto_exposure = 3;
  if (this->enable_auto_exposure() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_enable_auto_exposure(), 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:Anki.Vector.external_interface.SetCameraSettingsRequest)
  return target;
}

size_t SetCameraSettingsRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SetCameraSettingsRequest)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float gain = 1;
  if (!(this->gain() <= 0 && this->gain() >= 0)) {
    total_size += 1 + 4;
  }

  // uint32 exposure_ms = 2;
  if (this->exposure_ms() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_exposure_ms());
  }

  // bool enable_auto_exposure = 3;
  if (this->enable_auto_exposure() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void SetCameraSettingsRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.SetCameraSettingsRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const SetCameraSettingsRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SetCameraSettingsRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.SetCameraSettingsRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.SetCameraSettingsRequest)
    MergeFrom(*source);
  }
}

void SetCameraSettingsRequest::MergeFrom(const SetCameraSettingsRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.SetCameraSettingsRequest)
  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.gain() <= 0 && from.gain() >= 0)) {
    _internal_set_gain(from._internal_gain());
  }
  if (from.exposure_ms() != 0) {
    _internal_set_exposure_ms(from._internal_exposure_ms());
  }
  if (from.enable_auto_exposure() != 0) {
    _internal_set_enable_auto_exposure(from._internal_enable_auto_exposure());
  }
}

void SetCameraSettingsRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.SetCameraSettingsRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SetCameraSettingsRequest::CopyFrom(const SetCameraSettingsRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SetCameraSettingsRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SetCameraSettingsRequest::IsInitialized() const {
  return true;
}

void SetCameraSettingsRequest::InternalSwap(SetCameraSettingsRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SetCameraSettingsRequest, enable_auto_exposure_)
      + sizeof(SetCameraSettingsRequest::enable_auto_exposure_)
      - PROTOBUF_FIELD_OFFSET(SetCameraSettingsRequest, gain_)>(
          reinterpret_cast<char*>(&gain_),
          reinterpret_cast<char*>(&other->gain_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SetCameraSettingsRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void SetCameraSettingsResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_SetCameraSettingsResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class SetCameraSettingsResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const SetCameraSettingsResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
SetCameraSettingsResponse::_Internal::status(const SetCameraSettingsResponse* msg) {
  return *msg->status_;
}
void SetCameraSettingsResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
SetCameraSettingsResponse::SetCameraSettingsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SetCameraSettingsResponse)
}
SetCameraSettingsResponse::SetCameraSettingsResponse(const SetCameraSettingsResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  status_message_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_status_message().empty()) {
    status_message_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_status_message(),
      GetArena());
  }
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SetCameraSettingsResponse)
}

void SetCameraSettingsResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SetCameraSettingsResponse_messages_2eproto.base);
  status_message_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  status_ = nullptr;
}

SetCameraSettingsResponse::~SetCameraSettingsResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SetCameraSettingsResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SetCameraSettingsResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  status_message_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete status_;
}

void SetCameraSettingsResponse::ArenaDtor(void* object) {
  SetCameraSettingsResponse* _this = reinterpret_cast< SetCameraSettingsResponse* >(object);
  (void)_this;
}
void SetCameraSettingsResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SetCameraSettingsResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SetCameraSettingsResponse& SetCameraSettingsResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SetCameraSettingsResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void SetCameraSettingsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SetCameraSettingsResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  status_message_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SetCameraSettingsResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string status_message = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_status_message();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.SetCameraSettingsResponse.status_message"));
          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* SetCameraSettingsResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.SetCameraSettingsResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // string status_message = 2;
  if (this->status_message().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_status_message().data(), static_cast<int>(this->_internal_status_message().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.SetCameraSettingsResponse.status_message");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_status_message(), 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:Anki.Vector.external_interface.SetCameraSettingsResponse)
  return target;
}

size_t SetCameraSettingsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SetCameraSettingsResponse)
  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 status_message = 2;
  if (this->status_message().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_status_message());
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 SetCameraSettingsResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.SetCameraSettingsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const SetCameraSettingsResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SetCameraSettingsResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.SetCameraSettingsResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.SetCameraSettingsResponse)
    MergeFrom(*source);
  }
}

void SetCameraSettingsResponse::MergeFrom(const SetCameraSettingsResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.SetCameraSettingsResponse)
  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.status_message().size() > 0) {
    _internal_set_status_message(from._internal_status_message());
  }
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void SetCameraSettingsResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.SetCameraSettingsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SetCameraSettingsResponse::CopyFrom(const SetCameraSettingsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SetCameraSettingsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SetCameraSettingsResponse::IsInitialized() const {
  return true;
}

void SetCameraSettingsResponse::InternalSwap(SetCameraSettingsResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  status_message_.Swap(&other->status_message_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SetCameraSettingsResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CameraSettingsUpdate::InitAsDefaultInstance() {
}
class CameraSettingsUpdate::_Internal {
 public:
};

CameraSettingsUpdate::CameraSettingsUpdate(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CameraSettingsUpdate)
}
CameraSettingsUpdate::CameraSettingsUpdate(const CameraSettingsUpdate& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&gain_, &from.gain_,
    static_cast<size_t>(reinterpret_cast<char*>(&auto_exposure_enabled_) -
    reinterpret_cast<char*>(&gain_)) + sizeof(auto_exposure_enabled_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CameraSettingsUpdate)
}

void CameraSettingsUpdate::SharedCtor() {
  ::memset(&gain_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&auto_exposure_enabled_) -
      reinterpret_cast<char*>(&gain_)) + sizeof(auto_exposure_enabled_));
}

CameraSettingsUpdate::~CameraSettingsUpdate() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CameraSettingsUpdate)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CameraSettingsUpdate::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void CameraSettingsUpdate::ArenaDtor(void* object) {
  CameraSettingsUpdate* _this = reinterpret_cast< CameraSettingsUpdate* >(object);
  (void)_this;
}
void CameraSettingsUpdate::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CameraSettingsUpdate::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CameraSettingsUpdate& CameraSettingsUpdate::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CameraSettingsUpdate_messages_2eproto.base);
  return *internal_default_instance();
}


void CameraSettingsUpdate::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CameraSettingsUpdate)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&gain_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&auto_exposure_enabled_) -
      reinterpret_cast<char*>(&gain_)) + sizeof(auto_exposure_enabled_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CameraSettingsUpdate::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float gain = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          gain_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // uint32 exposure_ms = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          exposure_ms_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool auto_exposure_enabled = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          auto_exposure_enabled_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* CameraSettingsUpdate::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CameraSettingsUpdate)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float gain = 1;
  if (!(this->gain() <= 0 && this->gain() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_gain(), target);
  }

  // uint32 exposure_ms = 2;
  if (this->exposure_ms() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_exposure_ms(), target);
  }

  // bool auto_exposure_enabled = 3;
  if (this->auto_exposure_enabled() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_auto_exposure_enabled(), 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:Anki.Vector.external_interface.CameraSettingsUpdate)
  return target;
}

size_t CameraSettingsUpdate::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CameraSettingsUpdate)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float gain = 1;
  if (!(this->gain() <= 0 && this->gain() >= 0)) {
    total_size += 1 + 4;
  }

  // uint32 exposure_ms = 2;
  if (this->exposure_ms() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_exposure_ms());
  }

  // bool auto_exposure_enabled = 3;
  if (this->auto_exposure_enabled() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void CameraSettingsUpdate::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CameraSettingsUpdate)
  GOOGLE_DCHECK_NE(&from, this);
  const CameraSettingsUpdate* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CameraSettingsUpdate>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CameraSettingsUpdate)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CameraSettingsUpdate)
    MergeFrom(*source);
  }
}

void CameraSettingsUpdate::MergeFrom(const CameraSettingsUpdate& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CameraSettingsUpdate)
  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.gain() <= 0 && from.gain() >= 0)) {
    _internal_set_gain(from._internal_gain());
  }
  if (from.exposure_ms() != 0) {
    _internal_set_exposure_ms(from._internal_exposure_ms());
  }
  if (from.auto_exposure_enabled() != 0) {
    _internal_set_auto_exposure_enabled(from._internal_auto_exposure_enabled());
  }
}

void CameraSettingsUpdate::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CameraSettingsUpdate)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CameraSettingsUpdate::CopyFrom(const CameraSettingsUpdate& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CameraSettingsUpdate)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CameraSettingsUpdate::IsInitialized() const {
  return true;
}

void CameraSettingsUpdate::InternalSwap(CameraSettingsUpdate* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CameraSettingsUpdate, auto_exposure_enabled_)
      + sizeof(CameraSettingsUpdate::auto_exposure_enabled_)
      - PROTOBUF_FIELD_OFFSET(CameraSettingsUpdate, gain_)>(
          reinterpret_cast<char*>(&gain_),
          reinterpret_cast<char*>(&other->gain_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CameraSettingsUpdate::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void SDKInitializationRequest::InitAsDefaultInstance() {
}
class SDKInitializationRequest::_Internal {
 public:
};

SDKInitializationRequest::SDKInitializationRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SDKInitializationRequest)
}
SDKInitializationRequest::SDKInitializationRequest(const SDKInitializationRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  sdk_module_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_sdk_module_version().empty()) {
    sdk_module_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_sdk_module_version(),
      GetArena());
  }
  python_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_python_version().empty()) {
    python_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_python_version(),
      GetArena());
  }
  python_implementation_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_python_implementation().empty()) {
    python_implementation_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_python_implementation(),
      GetArena());
  }
  os_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_os_version().empty()) {
    os_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_os_version(),
      GetArena());
  }
  cpu_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_cpu_version().empty()) {
    cpu_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_cpu_version(),
      GetArena());
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SDKInitializationRequest)
}

void SDKInitializationRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SDKInitializationRequest_messages_2eproto.base);
  sdk_module_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  python_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  python_implementation_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  os_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  cpu_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

SDKInitializationRequest::~SDKInitializationRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SDKInitializationRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SDKInitializationRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  sdk_module_version_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  python_version_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  python_implementation_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  os_version_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  cpu_version_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void SDKInitializationRequest::ArenaDtor(void* object) {
  SDKInitializationRequest* _this = reinterpret_cast< SDKInitializationRequest* >(object);
  (void)_this;
}
void SDKInitializationRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SDKInitializationRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SDKInitializationRequest& SDKInitializationRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SDKInitializationRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void SDKInitializationRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SDKInitializationRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  sdk_module_version_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  python_version_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  python_implementation_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  os_version_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  cpu_version_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SDKInitializationRequest::_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 sdk_module_version = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          auto str = _internal_mutable_sdk_module_version();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.SDKInitializationRequest.sdk_module_version"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string python_version = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_python_version();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.SDKInitializationRequest.python_version"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string python_implementation = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_python_implementation();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.SDKInitializationRequest.python_implementation"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string os_version = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          auto str = _internal_mutable_os_version();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.SDKInitializationRequest.os_version"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string cpu_version = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          auto str = _internal_mutable_cpu_version();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.SDKInitializationRequest.cpu_version"));
          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* SDKInitializationRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.SDKInitializationRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string sdk_module_version = 1;
  if (this->sdk_module_version().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_sdk_module_version().data(), static_cast<int>(this->_internal_sdk_module_version().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.SDKInitializationRequest.sdk_module_version");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_sdk_module_version(), target);
  }

  // string python_version = 2;
  if (this->python_version().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_python_version().data(), static_cast<int>(this->_internal_python_version().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.SDKInitializationRequest.python_version");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_python_version(), target);
  }

  // string python_implementation = 3;
  if (this->python_implementation().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_python_implementation().data(), static_cast<int>(this->_internal_python_implementation().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.SDKInitializationRequest.python_implementation");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_python_implementation(), target);
  }

  // string os_version = 4;
  if (this->os_version().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_os_version().data(), static_cast<int>(this->_internal_os_version().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.SDKInitializationRequest.os_version");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_os_version(), target);
  }

  // string cpu_version = 5;
  if (this->cpu_version().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_cpu_version().data(), static_cast<int>(this->_internal_cpu_version().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.SDKInitializationRequest.cpu_version");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_cpu_version(), 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:Anki.Vector.external_interface.SDKInitializationRequest)
  return target;
}

size_t SDKInitializationRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SDKInitializationRequest)
  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 sdk_module_version = 1;
  if (this->sdk_module_version().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_sdk_module_version());
  }

  // string python_version = 2;
  if (this->python_version().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_python_version());
  }

  // string python_implementation = 3;
  if (this->python_implementation().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_python_implementation());
  }

  // string os_version = 4;
  if (this->os_version().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_os_version());
  }

  // string cpu_version = 5;
  if (this->cpu_version().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_cpu_version());
  }

  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 SDKInitializationRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.SDKInitializationRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const SDKInitializationRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SDKInitializationRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.SDKInitializationRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.SDKInitializationRequest)
    MergeFrom(*source);
  }
}

void SDKInitializationRequest::MergeFrom(const SDKInitializationRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.SDKInitializationRequest)
  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.sdk_module_version().size() > 0) {
    _internal_set_sdk_module_version(from._internal_sdk_module_version());
  }
  if (from.python_version().size() > 0) {
    _internal_set_python_version(from._internal_python_version());
  }
  if (from.python_implementation().size() > 0) {
    _internal_set_python_implementation(from._internal_python_implementation());
  }
  if (from.os_version().size() > 0) {
    _internal_set_os_version(from._internal_os_version());
  }
  if (from.cpu_version().size() > 0) {
    _internal_set_cpu_version(from._internal_cpu_version());
  }
}

void SDKInitializationRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.SDKInitializationRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SDKInitializationRequest::CopyFrom(const SDKInitializationRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SDKInitializationRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SDKInitializationRequest::IsInitialized() const {
  return true;
}

void SDKInitializationRequest::InternalSwap(SDKInitializationRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  sdk_module_version_.Swap(&other->sdk_module_version_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  python_version_.Swap(&other->python_version_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  python_implementation_.Swap(&other->python_implementation_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  os_version_.Swap(&other->os_version_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  cpu_version_.Swap(&other->cpu_version_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}

::PROTOBUF_NAMESPACE_ID::Metadata SDKInitializationRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void SDKInitializationResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_SDKInitializationResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class SDKInitializationResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const SDKInitializationResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
SDKInitializationResponse::_Internal::status(const SDKInitializationResponse* msg) {
  return *msg->status_;
}
void SDKInitializationResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
SDKInitializationResponse::SDKInitializationResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SDKInitializationResponse)
}
SDKInitializationResponse::SDKInitializationResponse(const SDKInitializationResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SDKInitializationResponse)
}

void SDKInitializationResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SDKInitializationResponse_messages_2eproto.base);
  status_ = nullptr;
}

SDKInitializationResponse::~SDKInitializationResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SDKInitializationResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SDKInitializationResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void SDKInitializationResponse::ArenaDtor(void* object) {
  SDKInitializationResponse* _this = reinterpret_cast< SDKInitializationResponse* >(object);
  (void)_this;
}
void SDKInitializationResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SDKInitializationResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SDKInitializationResponse& SDKInitializationResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SDKInitializationResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void SDKInitializationResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SDKInitializationResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SDKInitializationResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* SDKInitializationResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.SDKInitializationResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.SDKInitializationResponse)
  return target;
}

size_t SDKInitializationResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SDKInitializationResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 SDKInitializationResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.SDKInitializationResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const SDKInitializationResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SDKInitializationResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.SDKInitializationResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.SDKInitializationResponse)
    MergeFrom(*source);
  }
}

void SDKInitializationResponse::MergeFrom(const SDKInitializationResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.SDKInitializationResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void SDKInitializationResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.SDKInitializationResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SDKInitializationResponse::CopyFrom(const SDKInitializationResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SDKInitializationResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SDKInitializationResponse::IsInitialized() const {
  return true;
}

void SDKInitializationResponse::InternalSwap(SDKInitializationResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SDKInitializationResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void AppDisconnected::InitAsDefaultInstance() {
}
class AppDisconnected::_Internal {
 public:
};

AppDisconnected::AppDisconnected(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AppDisconnected)
}
AppDisconnected::AppDisconnected(const AppDisconnected& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AppDisconnected)
}

void AppDisconnected::SharedCtor() {
}

AppDisconnected::~AppDisconnected() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AppDisconnected)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AppDisconnected::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void AppDisconnected::ArenaDtor(void* object) {
  AppDisconnected* _this = reinterpret_cast< AppDisconnected* >(object);
  (void)_this;
}
void AppDisconnected::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AppDisconnected::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AppDisconnected& AppDisconnected::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AppDisconnected_messages_2eproto.base);
  return *internal_default_instance();
}


void AppDisconnected::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AppDisconnected)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AppDisconnected::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* AppDisconnected::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AppDisconnected)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.AppDisconnected)
  return target;
}

size_t AppDisconnected::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AppDisconnected)
  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;

  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 AppDisconnected::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.AppDisconnected)
  GOOGLE_DCHECK_NE(&from, this);
  const AppDisconnected* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AppDisconnected>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.AppDisconnected)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.AppDisconnected)
    MergeFrom(*source);
  }
}

void AppDisconnected::MergeFrom(const AppDisconnected& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AppDisconnected)
  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;

}

void AppDisconnected::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.AppDisconnected)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AppDisconnected::CopyFrom(const AppDisconnected& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AppDisconnected)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AppDisconnected::IsInitialized() const {
  return true;
}

void AppDisconnected::InternalSwap(AppDisconnected* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata AppDisconnected::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void AppIntentRequest::InitAsDefaultInstance() {
}
class AppIntentRequest::_Internal {
 public:
};

AppIntentRequest::AppIntentRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AppIntentRequest)
}
AppIntentRequest::AppIntentRequest(const AppIntentRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  intent_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_intent().empty()) {
    intent_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_intent(),
      GetArena());
  }
  param_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_param().empty()) {
    param_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_param(),
      GetArena());
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AppIntentRequest)
}

void AppIntentRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_AppIntentRequest_messages_2eproto.base);
  intent_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  param_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

AppIntentRequest::~AppIntentRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AppIntentRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AppIntentRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  intent_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  param_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void AppIntentRequest::ArenaDtor(void* object) {
  AppIntentRequest* _this = reinterpret_cast< AppIntentRequest* >(object);
  (void)_this;
}
void AppIntentRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AppIntentRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AppIntentRequest& AppIntentRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AppIntentRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void AppIntentRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AppIntentRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  intent_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  param_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AppIntentRequest::_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 intent = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          auto str = _internal_mutable_intent();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.AppIntentRequest.intent"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string param = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_param();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.AppIntentRequest.param"));
          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* AppIntentRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AppIntentRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string intent = 1;
  if (this->intent().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_intent().data(), static_cast<int>(this->_internal_intent().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.AppIntentRequest.intent");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_intent(), target);
  }

  // string param = 2;
  if (this->param().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_param().data(), static_cast<int>(this->_internal_param().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.AppIntentRequest.param");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_param(), 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:Anki.Vector.external_interface.AppIntentRequest)
  return target;
}

size_t AppIntentRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AppIntentRequest)
  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 intent = 1;
  if (this->intent().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_intent());
  }

  // string param = 2;
  if (this->param().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_param());
  }

  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 AppIntentRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.AppIntentRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const AppIntentRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AppIntentRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.AppIntentRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.AppIntentRequest)
    MergeFrom(*source);
  }
}

void AppIntentRequest::MergeFrom(const AppIntentRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AppIntentRequest)
  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.intent().size() > 0) {
    _internal_set_intent(from._internal_intent());
  }
  if (from.param().size() > 0) {
    _internal_set_param(from._internal_param());
  }
}

void AppIntentRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.AppIntentRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AppIntentRequest::CopyFrom(const AppIntentRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AppIntentRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AppIntentRequest::IsInitialized() const {
  return true;
}

void AppIntentRequest::InternalSwap(AppIntentRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  intent_.Swap(&other->intent_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  param_.Swap(&other->param_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}

::PROTOBUF_NAMESPACE_ID::Metadata AppIntentRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void AppIntentResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_AppIntentResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class AppIntentResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const AppIntentResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
AppIntentResponse::_Internal::status(const AppIntentResponse* msg) {
  return *msg->status_;
}
void AppIntentResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
AppIntentResponse::AppIntentResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AppIntentResponse)
}
AppIntentResponse::AppIntentResponse(const AppIntentResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AppIntentResponse)
}

void AppIntentResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_AppIntentResponse_messages_2eproto.base);
  status_ = nullptr;
}

AppIntentResponse::~AppIntentResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AppIntentResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AppIntentResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void AppIntentResponse::ArenaDtor(void* object) {
  AppIntentResponse* _this = reinterpret_cast< AppIntentResponse* >(object);
  (void)_this;
}
void AppIntentResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AppIntentResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AppIntentResponse& AppIntentResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AppIntentResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void AppIntentResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AppIntentResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AppIntentResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* AppIntentResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AppIntentResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.AppIntentResponse)
  return target;
}

size_t AppIntentResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AppIntentResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 AppIntentResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.AppIntentResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const AppIntentResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AppIntentResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.AppIntentResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.AppIntentResponse)
    MergeFrom(*source);
  }
}

void AppIntentResponse::MergeFrom(const AppIntentResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AppIntentResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void AppIntentResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.AppIntentResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AppIntentResponse::CopyFrom(const AppIntentResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AppIntentResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AppIntentResponse::IsInitialized() const {
  return true;
}

void AppIntentResponse::InternalSwap(AppIntentResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata AppIntentResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void FeatureStatus::InitAsDefaultInstance() {
}
class FeatureStatus::_Internal {
 public:
};

FeatureStatus::FeatureStatus(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.FeatureStatus)
}
FeatureStatus::FeatureStatus(const FeatureStatus& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  feature_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_feature_name().empty()) {
    feature_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_feature_name(),
      GetArena());
  }
  source_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_source().empty()) {
    source_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_source(),
      GetArena());
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.FeatureStatus)
}

void FeatureStatus::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_FeatureStatus_messages_2eproto.base);
  feature_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  source_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

FeatureStatus::~FeatureStatus() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.FeatureStatus)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void FeatureStatus::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  feature_name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  source_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void FeatureStatus::ArenaDtor(void* object) {
  FeatureStatus* _this = reinterpret_cast< FeatureStatus* >(object);
  (void)_this;
}
void FeatureStatus::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void FeatureStatus::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const FeatureStatus& FeatureStatus::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_FeatureStatus_messages_2eproto.base);
  return *internal_default_instance();
}


void FeatureStatus::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.FeatureStatus)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  feature_name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  source_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FeatureStatus::_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 feature_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          auto str = _internal_mutable_feature_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.FeatureStatus.feature_name"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string source = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_source();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.FeatureStatus.source"));
          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* FeatureStatus::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.FeatureStatus)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string feature_name = 1;
  if (this->feature_name().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_feature_name().data(), static_cast<int>(this->_internal_feature_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.FeatureStatus.feature_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_feature_name(), target);
  }

  // string source = 2;
  if (this->source().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_source().data(), static_cast<int>(this->_internal_source().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.FeatureStatus.source");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_source(), 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:Anki.Vector.external_interface.FeatureStatus)
  return target;
}

size_t FeatureStatus::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.FeatureStatus)
  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 feature_name = 1;
  if (this->feature_name().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_feature_name());
  }

  // string source = 2;
  if (this->source().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_source());
  }

  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 FeatureStatus::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.FeatureStatus)
  GOOGLE_DCHECK_NE(&from, this);
  const FeatureStatus* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<FeatureStatus>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.FeatureStatus)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.FeatureStatus)
    MergeFrom(*source);
  }
}

void FeatureStatus::MergeFrom(const FeatureStatus& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.FeatureStatus)
  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.feature_name().size() > 0) {
    _internal_set_feature_name(from._internal_feature_name());
  }
  if (from.source().size() > 0) {
    _internal_set_source(from._internal_source());
  }
}

void FeatureStatus::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.FeatureStatus)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void FeatureStatus::CopyFrom(const FeatureStatus& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.FeatureStatus)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FeatureStatus::IsInitialized() const {
  return true;
}

void FeatureStatus::InternalSwap(FeatureStatus* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  feature_name_.Swap(&other->feature_name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  source_.Swap(&other->source_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}

::PROTOBUF_NAMESPACE_ID::Metadata FeatureStatus::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Onboarding::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_Onboarding_default_instance_.onboarding_state_ = const_cast< ::Anki::Vector::external_interface::OnboardingState*>(
      ::Anki::Vector::external_interface::OnboardingState::internal_default_instance());
  ::Anki::Vector::external_interface::_Onboarding_default_instance_.onboarding_wake_up_finished_ = const_cast< ::Anki::Vector::external_interface::OnboardingWakeUpFinished*>(
      ::Anki::Vector::external_interface::OnboardingWakeUpFinished::internal_default_instance());
  ::Anki::Vector::external_interface::_Onboarding_default_instance_.onboarding_1p0_charging_info_ = const_cast< ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo*>(
      ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo::internal_default_instance());
}
class Onboarding::_Internal {
 public:
  static const ::Anki::Vector::external_interface::OnboardingState& onboarding_state(const Onboarding* msg);
  static const ::Anki::Vector::external_interface::OnboardingWakeUpFinished& onboarding_wake_up_finished(const Onboarding* msg);
  static const ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo& onboarding_1p0_charging_info(const Onboarding* msg);
};

const ::Anki::Vector::external_interface::OnboardingState&
Onboarding::_Internal::onboarding_state(const Onboarding* msg) {
  return *msg->onboarding_type_.onboarding_state_;
}
const ::Anki::Vector::external_interface::OnboardingWakeUpFinished&
Onboarding::_Internal::onboarding_wake_up_finished(const Onboarding* msg) {
  return *msg->onboarding_type_.onboarding_wake_up_finished_;
}
const ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo&
Onboarding::_Internal::onboarding_1p0_charging_info(const Onboarding* msg) {
  return *msg->onboarding_type_.onboarding_1p0_charging_info_;
}
void Onboarding::set_allocated_onboarding_state(::Anki::Vector::external_interface::OnboardingState* onboarding_state) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_onboarding_type();
  if (onboarding_state) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_state);
    if (message_arena != submessage_arena) {
      onboarding_state = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_state, submessage_arena);
    }
    set_has_onboarding_state();
    onboarding_type_.onboarding_state_ = onboarding_state;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Onboarding.onboarding_state)
}
void Onboarding::set_allocated_onboarding_wake_up_finished(::Anki::Vector::external_interface::OnboardingWakeUpFinished* onboarding_wake_up_finished) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_onboarding_type();
  if (onboarding_wake_up_finished) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_wake_up_finished);
    if (message_arena != submessage_arena) {
      onboarding_wake_up_finished = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_wake_up_finished, submessage_arena);
    }
    set_has_onboarding_wake_up_finished();
    onboarding_type_.onboarding_wake_up_finished_ = onboarding_wake_up_finished;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Onboarding.onboarding_wake_up_finished)
}
void Onboarding::set_allocated_onboarding_1p0_charging_info(::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* onboarding_1p0_charging_info) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_onboarding_type();
  if (onboarding_1p0_charging_info) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_1p0_charging_info);
    if (message_arena != submessage_arena) {
      onboarding_1p0_charging_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_1p0_charging_info, submessage_arena);
    }
    set_has_onboarding_1p0_charging_info();
    onboarding_type_.onboarding_1p0_charging_info_ = onboarding_1p0_charging_info;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.Onboarding.onboarding_1p0_charging_info)
}
Onboarding::Onboarding(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.Onboarding)
}
Onboarding::Onboarding(const Onboarding& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_onboarding_type();
  switch (from.onboarding_type_case()) {
    case kOnboardingState: {
      _internal_mutable_onboarding_state()->::Anki::Vector::external_interface::OnboardingState::MergeFrom(from._internal_onboarding_state());
      break;
    }
    case kOnboardingWakeUpFinished: {
      _internal_mutable_onboarding_wake_up_finished()->::Anki::Vector::external_interface::OnboardingWakeUpFinished::MergeFrom(from._internal_onboarding_wake_up_finished());
      break;
    }
    case kOnboarding1P0ChargingInfo: {
      _internal_mutable_onboarding_1p0_charging_info()->::Anki::Vector::external_interface::Onboarding1p0ChargingInfo::MergeFrom(from._internal_onboarding_1p0_charging_info());
      break;
    }
    case ONBOARDING_TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.Onboarding)
}

void Onboarding::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Onboarding_messages_2eproto.base);
  clear_has_onboarding_type();
}

Onboarding::~Onboarding() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.Onboarding)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void Onboarding::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (has_onboarding_type()) {
    clear_onboarding_type();
  }
}

void Onboarding::ArenaDtor(void* object) {
  Onboarding* _this = reinterpret_cast< Onboarding* >(object);
  (void)_this;
}
void Onboarding::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Onboarding::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Onboarding& Onboarding::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Onboarding_messages_2eproto.base);
  return *internal_default_instance();
}


void Onboarding::clear_onboarding_type() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.Onboarding)
  switch (onboarding_type_case()) {
    case kOnboardingState: {
      if (GetArena() == nullptr) {
        delete onboarding_type_.onboarding_state_;
      }
      break;
    }
    case kOnboardingWakeUpFinished: {
      if (GetArena() == nullptr) {
        delete onboarding_type_.onboarding_wake_up_finished_;
      }
      break;
    }
    case kOnboarding1P0ChargingInfo: {
      if (GetArena() == nullptr) {
        delete onboarding_type_.onboarding_1p0_charging_info_;
      }
      break;
    }
    case ONBOARDING_TYPE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = ONBOARDING_TYPE_NOT_SET;
}


void Onboarding::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.Onboarding)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_onboarding_type();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Onboarding::_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) {
      // .Anki.Vector.external_interface.OnboardingState onboarding_state = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_state(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingWakeUpFinished onboarding_wake_up_finished = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_wake_up_finished(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.Onboarding1p0ChargingInfo onboarding_1p0_charging_info = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_1p0_charging_info(), 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* Onboarding::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.Onboarding)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.OnboardingState onboarding_state = 1;
  if (_internal_has_onboarding_state()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::onboarding_state(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingWakeUpFinished onboarding_wake_up_finished = 9;
  if (_internal_has_onboarding_wake_up_finished()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        9, _Internal::onboarding_wake_up_finished(this), target, stream);
  }

  // .Anki.Vector.external_interface.Onboarding1p0ChargingInfo onboarding_1p0_charging_info = 10;
  if (_internal_has_onboarding_1p0_charging_info()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        10, _Internal::onboarding_1p0_charging_info(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.Onboarding)
  return target;
}

size_t Onboarding::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.Onboarding)
  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;

  switch (onboarding_type_case()) {
    // .Anki.Vector.external_interface.OnboardingState onboarding_state = 1;
    case kOnboardingState: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *onboarding_type_.onboarding_state_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingWakeUpFinished onboarding_wake_up_finished = 9;
    case kOnboardingWakeUpFinished: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *onboarding_type_.onboarding_wake_up_finished_);
      break;
    }
    // .Anki.Vector.external_interface.Onboarding1p0ChargingInfo onboarding_1p0_charging_info = 10;
    case kOnboarding1P0ChargingInfo: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *onboarding_type_.onboarding_1p0_charging_info_);
      break;
    }
    case ONBOARDING_TYPE_NOT_SET: {
      break;
    }
  }
  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 Onboarding::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.Onboarding)
  GOOGLE_DCHECK_NE(&from, this);
  const Onboarding* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Onboarding>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.Onboarding)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.Onboarding)
    MergeFrom(*source);
  }
}

void Onboarding::MergeFrom(const Onboarding& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.Onboarding)
  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;

  switch (from.onboarding_type_case()) {
    case kOnboardingState: {
      _internal_mutable_onboarding_state()->::Anki::Vector::external_interface::OnboardingState::MergeFrom(from._internal_onboarding_state());
      break;
    }
    case kOnboardingWakeUpFinished: {
      _internal_mutable_onboarding_wake_up_finished()->::Anki::Vector::external_interface::OnboardingWakeUpFinished::MergeFrom(from._internal_onboarding_wake_up_finished());
      break;
    }
    case kOnboarding1P0ChargingInfo: {
      _internal_mutable_onboarding_1p0_charging_info()->::Anki::Vector::external_interface::Onboarding1p0ChargingInfo::MergeFrom(from._internal_onboarding_1p0_charging_info());
      break;
    }
    case ONBOARDING_TYPE_NOT_SET: {
      break;
    }
  }
}

void Onboarding::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.Onboarding)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Onboarding::CopyFrom(const Onboarding& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.Onboarding)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Onboarding::IsInitialized() const {
  return true;
}

void Onboarding::InternalSwap(Onboarding* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(onboarding_type_, other->onboarding_type_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata Onboarding::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void RobotHistoryRequest::InitAsDefaultInstance() {
}
class RobotHistoryRequest::_Internal {
 public:
};

RobotHistoryRequest::RobotHistoryRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RobotHistoryRequest)
}
RobotHistoryRequest::RobotHistoryRequest(const RobotHistoryRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RobotHistoryRequest)
}

void RobotHistoryRequest::SharedCtor() {
}

RobotHistoryRequest::~RobotHistoryRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.RobotHistoryRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void RobotHistoryRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void RobotHistoryRequest::ArenaDtor(void* object) {
  RobotHistoryRequest* _this = reinterpret_cast< RobotHistoryRequest* >(object);
  (void)_this;
}
void RobotHistoryRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void RobotHistoryRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const RobotHistoryRequest& RobotHistoryRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RobotHistoryRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void RobotHistoryRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.RobotHistoryRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RobotHistoryRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* RobotHistoryRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.RobotHistoryRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.RobotHistoryRequest)
  return target;
}

size_t RobotHistoryRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RobotHistoryRequest)
  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;

  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 RobotHistoryRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.RobotHistoryRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const RobotHistoryRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RobotHistoryRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.RobotHistoryRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.RobotHistoryRequest)
    MergeFrom(*source);
  }
}

void RobotHistoryRequest::MergeFrom(const RobotHistoryRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.RobotHistoryRequest)
  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;

}

void RobotHistoryRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.RobotHistoryRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void RobotHistoryRequest::CopyFrom(const RobotHistoryRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.RobotHistoryRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RobotHistoryRequest::IsInitialized() const {
  return true;
}

void RobotHistoryRequest::InternalSwap(RobotHistoryRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RobotHistoryRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void RobotHistoryResponse::InitAsDefaultInstance() {
}
class RobotHistoryResponse::_Internal {
 public:
};

RobotHistoryResponse::RobotHistoryResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  messages_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RobotHistoryResponse)
}
RobotHistoryResponse::RobotHistoryResponse(const RobotHistoryResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      messages_(from.messages_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RobotHistoryResponse)
}

void RobotHistoryResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RobotHistoryResponse_messages_2eproto.base);
}

RobotHistoryResponse::~RobotHistoryResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.RobotHistoryResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void RobotHistoryResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void RobotHistoryResponse::ArenaDtor(void* object) {
  RobotHistoryResponse* _this = reinterpret_cast< RobotHistoryResponse* >(object);
  (void)_this;
}
void RobotHistoryResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void RobotHistoryResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const RobotHistoryResponse& RobotHistoryResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RobotHistoryResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void RobotHistoryResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.RobotHistoryResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  messages_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RobotHistoryResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // repeated .Anki.Vector.external_interface.TimeStampedStatus messages = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_messages(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* RobotHistoryResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.RobotHistoryResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .Anki.Vector.external_interface.TimeStampedStatus messages = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_messages_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_messages(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.RobotHistoryResponse)
  return target;
}

size_t RobotHistoryResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RobotHistoryResponse)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .Anki.Vector.external_interface.TimeStampedStatus messages = 1;
  total_size += 1UL * this->_internal_messages_size();
  for (const auto& msg : this->messages_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void RobotHistoryResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.RobotHistoryResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const RobotHistoryResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RobotHistoryResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.RobotHistoryResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.RobotHistoryResponse)
    MergeFrom(*source);
  }
}

void RobotHistoryResponse::MergeFrom(const RobotHistoryResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.RobotHistoryResponse)
  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;

  messages_.MergeFrom(from.messages_);
}

void RobotHistoryResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.RobotHistoryResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void RobotHistoryResponse::CopyFrom(const RobotHistoryResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.RobotHistoryResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RobotHistoryResponse::IsInitialized() const {
  return true;
}

void RobotHistoryResponse::InternalSwap(RobotHistoryResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  messages_.InternalSwap(&other->messages_);
}

::PROTOBUF_NAMESPACE_ID::Metadata RobotHistoryResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingState::InitAsDefaultInstance() {
}
class OnboardingState::_Internal {
 public:
};

OnboardingState::OnboardingState(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingState)
}
OnboardingState::OnboardingState(const OnboardingState& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  stage_ = from.stage_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingState)
}

void OnboardingState::SharedCtor() {
  stage_ = 0;
}

OnboardingState::~OnboardingState() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingState)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingState::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void OnboardingState::ArenaDtor(void* object) {
  OnboardingState* _this = reinterpret_cast< OnboardingState* >(object);
  (void)_this;
}
void OnboardingState::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingState::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingState& OnboardingState::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingState_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingState::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  stage_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingState::_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) {
      // .Anki.Vector.external_interface.OnboardingStages stage = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_stage(static_cast<::Anki::Vector::external_interface::OnboardingStages>(val));
        } 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* OnboardingState::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.OnboardingStages stage = 1;
  if (this->stage() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_stage(), 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:Anki.Vector.external_interface.OnboardingState)
  return target;
}

size_t OnboardingState::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingState)
  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;

  // .Anki.Vector.external_interface.OnboardingStages stage = 1;
  if (this->stage() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_stage());
  }

  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 OnboardingState::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingState)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingState* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingState>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingState)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingState)
    MergeFrom(*source);
  }
}

void OnboardingState::MergeFrom(const OnboardingState& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingState)
  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.stage() != 0) {
    _internal_set_stage(from._internal_stage());
  }
}

void OnboardingState::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingState)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingState::CopyFrom(const OnboardingState& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingState)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingState::IsInitialized() const {
  return true;
}

void OnboardingState::InternalSwap(OnboardingState* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(stage_, other->stage_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingState::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingStateRequest::InitAsDefaultInstance() {
}
class OnboardingStateRequest::_Internal {
 public:
};

OnboardingStateRequest::OnboardingStateRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingStateRequest)
}
OnboardingStateRequest::OnboardingStateRequest(const OnboardingStateRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingStateRequest)
}

void OnboardingStateRequest::SharedCtor() {
}

OnboardingStateRequest::~OnboardingStateRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingStateRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingStateRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void OnboardingStateRequest::ArenaDtor(void* object) {
  OnboardingStateRequest* _this = reinterpret_cast< OnboardingStateRequest* >(object);
  (void)_this;
}
void OnboardingStateRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingStateRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingStateRequest& OnboardingStateRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingStateRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingStateRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingStateRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingStateRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* OnboardingStateRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingStateRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.OnboardingStateRequest)
  return target;
}

size_t OnboardingStateRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingStateRequest)
  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;

  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 OnboardingStateRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingStateRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingStateRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingStateRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingStateRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingStateRequest)
    MergeFrom(*source);
  }
}

void OnboardingStateRequest::MergeFrom(const OnboardingStateRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingStateRequest)
  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;

}

void OnboardingStateRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingStateRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingStateRequest::CopyFrom(const OnboardingStateRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingStateRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingStateRequest::IsInitialized() const {
  return true;
}

void OnboardingStateRequest::InternalSwap(OnboardingStateRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingStateRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingStateResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_OnboardingStateResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_OnboardingStateResponse_default_instance_._instance.get_mutable()->onboarding_state_ = const_cast< ::Anki::Vector::external_interface::OnboardingState*>(
      ::Anki::Vector::external_interface::OnboardingState::internal_default_instance());
}
class OnboardingStateResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const OnboardingStateResponse* msg);
  static const ::Anki::Vector::external_interface::OnboardingState& onboarding_state(const OnboardingStateResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
OnboardingStateResponse::_Internal::status(const OnboardingStateResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::OnboardingState&
OnboardingStateResponse::_Internal::onboarding_state(const OnboardingStateResponse* msg) {
  return *msg->onboarding_state_;
}
void OnboardingStateResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
OnboardingStateResponse::OnboardingStateResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingStateResponse)
}
OnboardingStateResponse::OnboardingStateResponse(const OnboardingStateResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_onboarding_state()) {
    onboarding_state_ = new ::Anki::Vector::external_interface::OnboardingState(*from.onboarding_state_);
  } else {
    onboarding_state_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingStateResponse)
}

void OnboardingStateResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_OnboardingStateResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&onboarding_state_) -
      reinterpret_cast<char*>(&status_)) + sizeof(onboarding_state_));
}

OnboardingStateResponse::~OnboardingStateResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingStateResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingStateResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete onboarding_state_;
}

void OnboardingStateResponse::ArenaDtor(void* object) {
  OnboardingStateResponse* _this = reinterpret_cast< OnboardingStateResponse* >(object);
  (void)_this;
}
void OnboardingStateResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingStateResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingStateResponse& OnboardingStateResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingStateResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingStateResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingStateResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && onboarding_state_ != nullptr) {
    delete onboarding_state_;
  }
  onboarding_state_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingStateResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingState onboarding_state = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_state(), 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* OnboardingStateResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingStateResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingState onboarding_state = 2;
  if (this->has_onboarding_state()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::onboarding_state(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.OnboardingStateResponse)
  return target;
}

size_t OnboardingStateResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingStateResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.OnboardingState onboarding_state = 2;
  if (this->has_onboarding_state()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *onboarding_state_);
  }

  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 OnboardingStateResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingStateResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingStateResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingStateResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingStateResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingStateResponse)
    MergeFrom(*source);
  }
}

void OnboardingStateResponse::MergeFrom(const OnboardingStateResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingStateResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_onboarding_state()) {
    _internal_mutable_onboarding_state()->::Anki::Vector::external_interface::OnboardingState::MergeFrom(from._internal_onboarding_state());
  }
}

void OnboardingStateResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingStateResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingStateResponse::CopyFrom(const OnboardingStateResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingStateResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingStateResponse::IsInitialized() const {
  return true;
}

void OnboardingStateResponse::InternalSwap(OnboardingStateResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(OnboardingStateResponse, onboarding_state_)
      + sizeof(OnboardingStateResponse::onboarding_state_)
      - PROTOBUF_FIELD_OFFSET(OnboardingStateResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingStateResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingSetPhaseRequest::InitAsDefaultInstance() {
}
class OnboardingSetPhaseRequest::_Internal {
 public:
};

OnboardingSetPhaseRequest::OnboardingSetPhaseRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingSetPhaseRequest)
}
OnboardingSetPhaseRequest::OnboardingSetPhaseRequest(const OnboardingSetPhaseRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  phase_ = from.phase_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingSetPhaseRequest)
}

void OnboardingSetPhaseRequest::SharedCtor() {
  phase_ = 0;
}

OnboardingSetPhaseRequest::~OnboardingSetPhaseRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingSetPhaseRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingSetPhaseRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void OnboardingSetPhaseRequest::ArenaDtor(void* object) {
  OnboardingSetPhaseRequest* _this = reinterpret_cast< OnboardingSetPhaseRequest* >(object);
  (void)_this;
}
void OnboardingSetPhaseRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingSetPhaseRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingSetPhaseRequest& OnboardingSetPhaseRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingSetPhaseRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingSetPhaseRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingSetPhaseRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  phase_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingSetPhaseRequest::_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) {
      // .Anki.Vector.external_interface.OnboardingPhase phase = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_phase(static_cast<::Anki::Vector::external_interface::OnboardingPhase>(val));
        } 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* OnboardingSetPhaseRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingSetPhaseRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.OnboardingPhase phase = 1;
  if (this->phase() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_phase(), 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:Anki.Vector.external_interface.OnboardingSetPhaseRequest)
  return target;
}

size_t OnboardingSetPhaseRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingSetPhaseRequest)
  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;

  // .Anki.Vector.external_interface.OnboardingPhase phase = 1;
  if (this->phase() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_phase());
  }

  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 OnboardingSetPhaseRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingSetPhaseRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingSetPhaseRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingSetPhaseRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingSetPhaseRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingSetPhaseRequest)
    MergeFrom(*source);
  }
}

void OnboardingSetPhaseRequest::MergeFrom(const OnboardingSetPhaseRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingSetPhaseRequest)
  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.phase() != 0) {
    _internal_set_phase(from._internal_phase());
  }
}

void OnboardingSetPhaseRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingSetPhaseRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingSetPhaseRequest::CopyFrom(const OnboardingSetPhaseRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingSetPhaseRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingSetPhaseRequest::IsInitialized() const {
  return true;
}

void OnboardingSetPhaseRequest::InternalSwap(OnboardingSetPhaseRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(phase_, other->phase_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingSetPhaseRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingSetPhaseResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_OnboardingSetPhaseResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class OnboardingSetPhaseResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const OnboardingSetPhaseResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
OnboardingSetPhaseResponse::_Internal::status(const OnboardingSetPhaseResponse* msg) {
  return *msg->status_;
}
void OnboardingSetPhaseResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
OnboardingSetPhaseResponse::OnboardingSetPhaseResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingSetPhaseResponse)
}
OnboardingSetPhaseResponse::OnboardingSetPhaseResponse(const OnboardingSetPhaseResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  ::memcpy(&phase_, &from.phase_,
    static_cast<size_t>(reinterpret_cast<char*>(&phase_state_) -
    reinterpret_cast<char*>(&phase_)) + sizeof(phase_state_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingSetPhaseResponse)
}

void OnboardingSetPhaseResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_OnboardingSetPhaseResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&phase_state_) -
      reinterpret_cast<char*>(&status_)) + sizeof(phase_state_));
}

OnboardingSetPhaseResponse::~OnboardingSetPhaseResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingSetPhaseResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingSetPhaseResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void OnboardingSetPhaseResponse::ArenaDtor(void* object) {
  OnboardingSetPhaseResponse* _this = reinterpret_cast< OnboardingSetPhaseResponse* >(object);
  (void)_this;
}
void OnboardingSetPhaseResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingSetPhaseResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingSetPhaseResponse& OnboardingSetPhaseResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingSetPhaseResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingSetPhaseResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingSetPhaseResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  ::memset(&phase_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&phase_state_) -
      reinterpret_cast<char*>(&phase_)) + sizeof(phase_state_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingSetPhaseResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingPhase phase = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_phase(static_cast<::Anki::Vector::external_interface::OnboardingPhase>(val));
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingPhaseState phase_state = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_phase_state(static_cast<::Anki::Vector::external_interface::OnboardingPhaseState>(val));
        } 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* OnboardingSetPhaseResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingSetPhaseResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingPhase phase = 2;
  if (this->phase() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_phase(), target);
  }

  // .Anki.Vector.external_interface.OnboardingPhaseState phase_state = 3;
  if (this->phase_state() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      3, this->_internal_phase_state(), 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:Anki.Vector.external_interface.OnboardingSetPhaseResponse)
  return target;
}

size_t OnboardingSetPhaseResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingSetPhaseResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.OnboardingPhase phase = 2;
  if (this->phase() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_phase());
  }

  // .Anki.Vector.external_interface.OnboardingPhaseState phase_state = 3;
  if (this->phase_state() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_phase_state());
  }

  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 OnboardingSetPhaseResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingSetPhaseResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingSetPhaseResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingSetPhaseResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingSetPhaseResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingSetPhaseResponse)
    MergeFrom(*source);
  }
}

void OnboardingSetPhaseResponse::MergeFrom(const OnboardingSetPhaseResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingSetPhaseResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.phase() != 0) {
    _internal_set_phase(from._internal_phase());
  }
  if (from.phase_state() != 0) {
    _internal_set_phase_state(from._internal_phase_state());
  }
}

void OnboardingSetPhaseResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingSetPhaseResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingSetPhaseResponse::CopyFrom(const OnboardingSetPhaseResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingSetPhaseResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingSetPhaseResponse::IsInitialized() const {
  return true;
}

void OnboardingSetPhaseResponse::InternalSwap(OnboardingSetPhaseResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(OnboardingSetPhaseResponse, phase_state_)
      + sizeof(OnboardingSetPhaseResponse::phase_state_)
      - PROTOBUF_FIELD_OFFSET(OnboardingSetPhaseResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingSetPhaseResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingPhaseProgressRequest::InitAsDefaultInstance() {
}
class OnboardingPhaseProgressRequest::_Internal {
 public:
};

OnboardingPhaseProgressRequest::OnboardingPhaseProgressRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingPhaseProgressRequest)
}
OnboardingPhaseProgressRequest::OnboardingPhaseProgressRequest(const OnboardingPhaseProgressRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingPhaseProgressRequest)
}

void OnboardingPhaseProgressRequest::SharedCtor() {
}

OnboardingPhaseProgressRequest::~OnboardingPhaseProgressRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingPhaseProgressRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingPhaseProgressRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void OnboardingPhaseProgressRequest::ArenaDtor(void* object) {
  OnboardingPhaseProgressRequest* _this = reinterpret_cast< OnboardingPhaseProgressRequest* >(object);
  (void)_this;
}
void OnboardingPhaseProgressRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingPhaseProgressRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingPhaseProgressRequest& OnboardingPhaseProgressRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingPhaseProgressRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingPhaseProgressRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingPhaseProgressRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingPhaseProgressRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* OnboardingPhaseProgressRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingPhaseProgressRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.OnboardingPhaseProgressRequest)
  return target;
}

size_t OnboardingPhaseProgressRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingPhaseProgressRequest)
  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;

  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 OnboardingPhaseProgressRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingPhaseProgressRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingPhaseProgressRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingPhaseProgressRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingPhaseProgressRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingPhaseProgressRequest)
    MergeFrom(*source);
  }
}

void OnboardingPhaseProgressRequest::MergeFrom(const OnboardingPhaseProgressRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingPhaseProgressRequest)
  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;

}

void OnboardingPhaseProgressRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingPhaseProgressRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingPhaseProgressRequest::CopyFrom(const OnboardingPhaseProgressRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingPhaseProgressRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingPhaseProgressRequest::IsInitialized() const {
  return true;
}

void OnboardingPhaseProgressRequest::InternalSwap(OnboardingPhaseProgressRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingPhaseProgressRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingPhaseProgressResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_OnboardingPhaseProgressResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class OnboardingPhaseProgressResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const OnboardingPhaseProgressResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
OnboardingPhaseProgressResponse::_Internal::status(const OnboardingPhaseProgressResponse* msg) {
  return *msg->status_;
}
void OnboardingPhaseProgressResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
OnboardingPhaseProgressResponse::OnboardingPhaseProgressResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingPhaseProgressResponse)
}
OnboardingPhaseProgressResponse::OnboardingPhaseProgressResponse(const OnboardingPhaseProgressResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  ::memcpy(&last_set_phase_, &from.last_set_phase_,
    static_cast<size_t>(reinterpret_cast<char*>(&percent_completed_) -
    reinterpret_cast<char*>(&last_set_phase_)) + sizeof(percent_completed_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingPhaseProgressResponse)
}

void OnboardingPhaseProgressResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_OnboardingPhaseProgressResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&percent_completed_) -
      reinterpret_cast<char*>(&status_)) + sizeof(percent_completed_));
}

OnboardingPhaseProgressResponse::~OnboardingPhaseProgressResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingPhaseProgressResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingPhaseProgressResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void OnboardingPhaseProgressResponse::ArenaDtor(void* object) {
  OnboardingPhaseProgressResponse* _this = reinterpret_cast< OnboardingPhaseProgressResponse* >(object);
  (void)_this;
}
void OnboardingPhaseProgressResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingPhaseProgressResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingPhaseProgressResponse& OnboardingPhaseProgressResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingPhaseProgressResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingPhaseProgressResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingPhaseProgressResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  ::memset(&last_set_phase_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&percent_completed_) -
      reinterpret_cast<char*>(&last_set_phase_)) + sizeof(percent_completed_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingPhaseProgressResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingPhase last_set_phase = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_last_set_phase(static_cast<::Anki::Vector::external_interface::OnboardingPhase>(val));
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingPhaseState last_set_phase_state = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_last_set_phase_state(static_cast<::Anki::Vector::external_interface::OnboardingPhaseState>(val));
        } else goto handle_unusual;
        continue;
      // int32 percent_completed = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          percent_completed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* OnboardingPhaseProgressResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingPhaseProgressResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingPhase last_set_phase = 2;
  if (this->last_set_phase() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_last_set_phase(), target);
  }

  // .Anki.Vector.external_interface.OnboardingPhaseState last_set_phase_state = 3;
  if (this->last_set_phase_state() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      3, this->_internal_last_set_phase_state(), target);
  }

  // int32 percent_completed = 4;
  if (this->percent_completed() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_percent_completed(), 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:Anki.Vector.external_interface.OnboardingPhaseProgressResponse)
  return target;
}

size_t OnboardingPhaseProgressResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingPhaseProgressResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.OnboardingPhase last_set_phase = 2;
  if (this->last_set_phase() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_last_set_phase());
  }

  // .Anki.Vector.external_interface.OnboardingPhaseState last_set_phase_state = 3;
  if (this->last_set_phase_state() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_last_set_phase_state());
  }

  // int32 percent_completed = 4;
  if (this->percent_completed() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_percent_completed());
  }

  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 OnboardingPhaseProgressResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingPhaseProgressResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingPhaseProgressResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingPhaseProgressResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingPhaseProgressResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingPhaseProgressResponse)
    MergeFrom(*source);
  }
}

void OnboardingPhaseProgressResponse::MergeFrom(const OnboardingPhaseProgressResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingPhaseProgressResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.last_set_phase() != 0) {
    _internal_set_last_set_phase(from._internal_last_set_phase());
  }
  if (from.last_set_phase_state() != 0) {
    _internal_set_last_set_phase_state(from._internal_last_set_phase_state());
  }
  if (from.percent_completed() != 0) {
    _internal_set_percent_completed(from._internal_percent_completed());
  }
}

void OnboardingPhaseProgressResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingPhaseProgressResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingPhaseProgressResponse::CopyFrom(const OnboardingPhaseProgressResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingPhaseProgressResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingPhaseProgressResponse::IsInitialized() const {
  return true;
}

void OnboardingPhaseProgressResponse::InternalSwap(OnboardingPhaseProgressResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(OnboardingPhaseProgressResponse, percent_completed_)
      + sizeof(OnboardingPhaseProgressResponse::percent_completed_)
      - PROTOBUF_FIELD_OFFSET(OnboardingPhaseProgressResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingPhaseProgressResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingChargeInfoRequest::InitAsDefaultInstance() {
}
class OnboardingChargeInfoRequest::_Internal {
 public:
};

OnboardingChargeInfoRequest::OnboardingChargeInfoRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingChargeInfoRequest)
}
OnboardingChargeInfoRequest::OnboardingChargeInfoRequest(const OnboardingChargeInfoRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingChargeInfoRequest)
}

void OnboardingChargeInfoRequest::SharedCtor() {
}

OnboardingChargeInfoRequest::~OnboardingChargeInfoRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingChargeInfoRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingChargeInfoRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void OnboardingChargeInfoRequest::ArenaDtor(void* object) {
  OnboardingChargeInfoRequest* _this = reinterpret_cast< OnboardingChargeInfoRequest* >(object);
  (void)_this;
}
void OnboardingChargeInfoRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingChargeInfoRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingChargeInfoRequest& OnboardingChargeInfoRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingChargeInfoRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingChargeInfoRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingChargeInfoRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingChargeInfoRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* OnboardingChargeInfoRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingChargeInfoRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.OnboardingChargeInfoRequest)
  return target;
}

size_t OnboardingChargeInfoRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingChargeInfoRequest)
  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;

  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 OnboardingChargeInfoRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingChargeInfoRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingChargeInfoRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingChargeInfoRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingChargeInfoRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingChargeInfoRequest)
    MergeFrom(*source);
  }
}

void OnboardingChargeInfoRequest::MergeFrom(const OnboardingChargeInfoRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingChargeInfoRequest)
  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;

}

void OnboardingChargeInfoRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingChargeInfoRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingChargeInfoRequest::CopyFrom(const OnboardingChargeInfoRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingChargeInfoRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingChargeInfoRequest::IsInitialized() const {
  return true;
}

void OnboardingChargeInfoRequest::InternalSwap(OnboardingChargeInfoRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingChargeInfoRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingChargeInfoResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_OnboardingChargeInfoResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class OnboardingChargeInfoResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const OnboardingChargeInfoResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
OnboardingChargeInfoResponse::_Internal::status(const OnboardingChargeInfoResponse* msg) {
  return *msg->status_;
}
void OnboardingChargeInfoResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
OnboardingChargeInfoResponse::OnboardingChargeInfoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingChargeInfoResponse)
}
OnboardingChargeInfoResponse::OnboardingChargeInfoResponse(const OnboardingChargeInfoResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  ::memcpy(&on_charger_, &from.on_charger_,
    static_cast<size_t>(reinterpret_cast<char*>(&required_charge_time_) -
    reinterpret_cast<char*>(&on_charger_)) + sizeof(required_charge_time_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingChargeInfoResponse)
}

void OnboardingChargeInfoResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_OnboardingChargeInfoResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&required_charge_time_) -
      reinterpret_cast<char*>(&status_)) + sizeof(required_charge_time_));
}

OnboardingChargeInfoResponse::~OnboardingChargeInfoResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingChargeInfoResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingChargeInfoResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void OnboardingChargeInfoResponse::ArenaDtor(void* object) {
  OnboardingChargeInfoResponse* _this = reinterpret_cast< OnboardingChargeInfoResponse* >(object);
  (void)_this;
}
void OnboardingChargeInfoResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingChargeInfoResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingChargeInfoResponse& OnboardingChargeInfoResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingChargeInfoResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingChargeInfoResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingChargeInfoResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  ::memset(&on_charger_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&required_charge_time_) -
      reinterpret_cast<char*>(&on_charger_)) + sizeof(required_charge_time_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingChargeInfoResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool on_charger = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          on_charger_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool needs_to_charge = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          needs_to_charge_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float required_charge_time = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          required_charge_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* OnboardingChargeInfoResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingChargeInfoResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // bool on_charger = 2;
  if (this->on_charger() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_on_charger(), target);
  }

  // bool needs_to_charge = 3;
  if (this->needs_to_charge() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_needs_to_charge(), target);
  }

  // float required_charge_time = 4;
  if (!(this->required_charge_time() <= 0 && this->required_charge_time() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_required_charge_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:Anki.Vector.external_interface.OnboardingChargeInfoResponse)
  return target;
}

size_t OnboardingChargeInfoResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingChargeInfoResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // bool on_charger = 2;
  if (this->on_charger() != 0) {
    total_size += 1 + 1;
  }

  // bool needs_to_charge = 3;
  if (this->needs_to_charge() != 0) {
    total_size += 1 + 1;
  }

  // float required_charge_time = 4;
  if (!(this->required_charge_time() <= 0 && this->required_charge_time() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void OnboardingChargeInfoResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingChargeInfoResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingChargeInfoResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingChargeInfoResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingChargeInfoResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingChargeInfoResponse)
    MergeFrom(*source);
  }
}

void OnboardingChargeInfoResponse::MergeFrom(const OnboardingChargeInfoResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingChargeInfoResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.on_charger() != 0) {
    _internal_set_on_charger(from._internal_on_charger());
  }
  if (from.needs_to_charge() != 0) {
    _internal_set_needs_to_charge(from._internal_needs_to_charge());
  }
  if (!(from.required_charge_time() <= 0 && from.required_charge_time() >= 0)) {
    _internal_set_required_charge_time(from._internal_required_charge_time());
  }
}

void OnboardingChargeInfoResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingChargeInfoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingChargeInfoResponse::CopyFrom(const OnboardingChargeInfoResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingChargeInfoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingChargeInfoResponse::IsInitialized() const {
  return true;
}

void OnboardingChargeInfoResponse::InternalSwap(OnboardingChargeInfoResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(OnboardingChargeInfoResponse, required_charge_time_)
      + sizeof(OnboardingChargeInfoResponse::required_charge_time_)
      - PROTOBUF_FIELD_OFFSET(OnboardingChargeInfoResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingChargeInfoResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingSkipOnboarding::InitAsDefaultInstance() {
}
class OnboardingSkipOnboarding::_Internal {
 public:
};

OnboardingSkipOnboarding::OnboardingSkipOnboarding(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingSkipOnboarding)
}
OnboardingSkipOnboarding::OnboardingSkipOnboarding(const OnboardingSkipOnboarding& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingSkipOnboarding)
}

void OnboardingSkipOnboarding::SharedCtor() {
}

OnboardingSkipOnboarding::~OnboardingSkipOnboarding() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingSkipOnboarding)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingSkipOnboarding::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void OnboardingSkipOnboarding::ArenaDtor(void* object) {
  OnboardingSkipOnboarding* _this = reinterpret_cast< OnboardingSkipOnboarding* >(object);
  (void)_this;
}
void OnboardingSkipOnboarding::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingSkipOnboarding::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingSkipOnboarding& OnboardingSkipOnboarding::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingSkipOnboarding_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingSkipOnboarding::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingSkipOnboarding)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingSkipOnboarding::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* OnboardingSkipOnboarding::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingSkipOnboarding)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.OnboardingSkipOnboarding)
  return target;
}

size_t OnboardingSkipOnboarding::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingSkipOnboarding)
  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;

  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 OnboardingSkipOnboarding::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingSkipOnboarding)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingSkipOnboarding* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingSkipOnboarding>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingSkipOnboarding)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingSkipOnboarding)
    MergeFrom(*source);
  }
}

void OnboardingSkipOnboarding::MergeFrom(const OnboardingSkipOnboarding& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingSkipOnboarding)
  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;

}

void OnboardingSkipOnboarding::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingSkipOnboarding)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingSkipOnboarding::CopyFrom(const OnboardingSkipOnboarding& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingSkipOnboarding)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingSkipOnboarding::IsInitialized() const {
  return true;
}

void OnboardingSkipOnboarding::InternalSwap(OnboardingSkipOnboarding* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingSkipOnboarding::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingRestart::InitAsDefaultInstance() {
}
class OnboardingRestart::_Internal {
 public:
};

OnboardingRestart::OnboardingRestart(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingRestart)
}
OnboardingRestart::OnboardingRestart(const OnboardingRestart& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingRestart)
}

void OnboardingRestart::SharedCtor() {
}

OnboardingRestart::~OnboardingRestart() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingRestart)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingRestart::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void OnboardingRestart::ArenaDtor(void* object) {
  OnboardingRestart* _this = reinterpret_cast< OnboardingRestart* >(object);
  (void)_this;
}
void OnboardingRestart::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingRestart::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingRestart& OnboardingRestart::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingRestart_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingRestart::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingRestart)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingRestart::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* OnboardingRestart::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingRestart)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.OnboardingRestart)
  return target;
}

size_t OnboardingRestart::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingRestart)
  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;

  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 OnboardingRestart::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingRestart)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingRestart* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingRestart>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingRestart)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingRestart)
    MergeFrom(*source);
  }
}

void OnboardingRestart::MergeFrom(const OnboardingRestart& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingRestart)
  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;

}

void OnboardingRestart::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingRestart)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingRestart::CopyFrom(const OnboardingRestart& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingRestart)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingRestart::IsInitialized() const {
  return true;
}

void OnboardingRestart::InternalSwap(OnboardingRestart* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingRestart::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingMarkCompleteAndExit::InitAsDefaultInstance() {
}
class OnboardingMarkCompleteAndExit::_Internal {
 public:
};

OnboardingMarkCompleteAndExit::OnboardingMarkCompleteAndExit(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingMarkCompleteAndExit)
}
OnboardingMarkCompleteAndExit::OnboardingMarkCompleteAndExit(const OnboardingMarkCompleteAndExit& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingMarkCompleteAndExit)
}

void OnboardingMarkCompleteAndExit::SharedCtor() {
}

OnboardingMarkCompleteAndExit::~OnboardingMarkCompleteAndExit() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingMarkCompleteAndExit)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingMarkCompleteAndExit::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void OnboardingMarkCompleteAndExit::ArenaDtor(void* object) {
  OnboardingMarkCompleteAndExit* _this = reinterpret_cast< OnboardingMarkCompleteAndExit* >(object);
  (void)_this;
}
void OnboardingMarkCompleteAndExit::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingMarkCompleteAndExit::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingMarkCompleteAndExit& OnboardingMarkCompleteAndExit::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingMarkCompleteAndExit_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingMarkCompleteAndExit::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingMarkCompleteAndExit)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingMarkCompleteAndExit::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* OnboardingMarkCompleteAndExit::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingMarkCompleteAndExit)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.OnboardingMarkCompleteAndExit)
  return target;
}

size_t OnboardingMarkCompleteAndExit::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingMarkCompleteAndExit)
  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;

  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 OnboardingMarkCompleteAndExit::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingMarkCompleteAndExit)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingMarkCompleteAndExit* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingMarkCompleteAndExit>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingMarkCompleteAndExit)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingMarkCompleteAndExit)
    MergeFrom(*source);
  }
}

void OnboardingMarkCompleteAndExit::MergeFrom(const OnboardingMarkCompleteAndExit& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingMarkCompleteAndExit)
  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;

}

void OnboardingMarkCompleteAndExit::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingMarkCompleteAndExit)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingMarkCompleteAndExit::CopyFrom(const OnboardingMarkCompleteAndExit& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingMarkCompleteAndExit)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingMarkCompleteAndExit::IsInitialized() const {
  return true;
}

void OnboardingMarkCompleteAndExit::InternalSwap(OnboardingMarkCompleteAndExit* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingMarkCompleteAndExit::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingInputRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_OnboardingInputRequest_default_instance_.onboarding_complete_request_ = const_cast< ::Anki::Vector::external_interface::OnboardingCompleteRequest*>(
      ::Anki::Vector::external_interface::OnboardingCompleteRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_OnboardingInputRequest_default_instance_.onboarding_wake_up_request_ = const_cast< ::Anki::Vector::external_interface::OnboardingWakeUpRequest*>(
      ::Anki::Vector::external_interface::OnboardingWakeUpRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_OnboardingInputRequest_default_instance_.onboarding_skip_onboarding_ = const_cast< ::Anki::Vector::external_interface::OnboardingSkipOnboarding*>(
      ::Anki::Vector::external_interface::OnboardingSkipOnboarding::internal_default_instance());
  ::Anki::Vector::external_interface::_OnboardingInputRequest_default_instance_.onboarding_restart_ = const_cast< ::Anki::Vector::external_interface::OnboardingRestart*>(
      ::Anki::Vector::external_interface::OnboardingRestart::internal_default_instance());
  ::Anki::Vector::external_interface::_OnboardingInputRequest_default_instance_.onboarding_wake_up_started_request_ = const_cast< ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest*>(
      ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_OnboardingInputRequest_default_instance_.onboarding_set_phase_request_ = const_cast< ::Anki::Vector::external_interface::OnboardingSetPhaseRequest*>(
      ::Anki::Vector::external_interface::OnboardingSetPhaseRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_OnboardingInputRequest_default_instance_.onboarding_phase_progress_request_ = const_cast< ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest*>(
      ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_OnboardingInputRequest_default_instance_.onboarding_charge_info_request_ = const_cast< ::Anki::Vector::external_interface::OnboardingChargeInfoRequest*>(
      ::Anki::Vector::external_interface::OnboardingChargeInfoRequest::internal_default_instance());
  ::Anki::Vector::external_interface::_OnboardingInputRequest_default_instance_.onboarding_mark_complete_and_exit_ = const_cast< ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit*>(
      ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit::internal_default_instance());
}
class OnboardingInputRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::OnboardingCompleteRequest& onboarding_complete_request(const OnboardingInputRequest* msg);
  static const ::Anki::Vector::external_interface::OnboardingWakeUpRequest& onboarding_wake_up_request(const OnboardingInputRequest* msg);
  static const ::Anki::Vector::external_interface::OnboardingSkipOnboarding& onboarding_skip_onboarding(const OnboardingInputRequest* msg);
  static const ::Anki::Vector::external_interface::OnboardingRestart& onboarding_restart(const OnboardingInputRequest* msg);
  static const ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest& onboarding_wake_up_started_request(const OnboardingInputRequest* msg);
  static const ::Anki::Vector::external_interface::OnboardingSetPhaseRequest& onboarding_set_phase_request(const OnboardingInputRequest* msg);
  static const ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest& onboarding_phase_progress_request(const OnboardingInputRequest* msg);
  static const ::Anki::Vector::external_interface::OnboardingChargeInfoRequest& onboarding_charge_info_request(const OnboardingInputRequest* msg);
  static const ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit& onboarding_mark_complete_and_exit(const OnboardingInputRequest* msg);
};

const ::Anki::Vector::external_interface::OnboardingCompleteRequest&
OnboardingInputRequest::_Internal::onboarding_complete_request(const OnboardingInputRequest* msg) {
  return *msg->oneof_message_type_.onboarding_complete_request_;
}
const ::Anki::Vector::external_interface::OnboardingWakeUpRequest&
OnboardingInputRequest::_Internal::onboarding_wake_up_request(const OnboardingInputRequest* msg) {
  return *msg->oneof_message_type_.onboarding_wake_up_request_;
}
const ::Anki::Vector::external_interface::OnboardingSkipOnboarding&
OnboardingInputRequest::_Internal::onboarding_skip_onboarding(const OnboardingInputRequest* msg) {
  return *msg->oneof_message_type_.onboarding_skip_onboarding_;
}
const ::Anki::Vector::external_interface::OnboardingRestart&
OnboardingInputRequest::_Internal::onboarding_restart(const OnboardingInputRequest* msg) {
  return *msg->oneof_message_type_.onboarding_restart_;
}
const ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest&
OnboardingInputRequest::_Internal::onboarding_wake_up_started_request(const OnboardingInputRequest* msg) {
  return *msg->oneof_message_type_.onboarding_wake_up_started_request_;
}
const ::Anki::Vector::external_interface::OnboardingSetPhaseRequest&
OnboardingInputRequest::_Internal::onboarding_set_phase_request(const OnboardingInputRequest* msg) {
  return *msg->oneof_message_type_.onboarding_set_phase_request_;
}
const ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest&
OnboardingInputRequest::_Internal::onboarding_phase_progress_request(const OnboardingInputRequest* msg) {
  return *msg->oneof_message_type_.onboarding_phase_progress_request_;
}
const ::Anki::Vector::external_interface::OnboardingChargeInfoRequest&
OnboardingInputRequest::_Internal::onboarding_charge_info_request(const OnboardingInputRequest* msg) {
  return *msg->oneof_message_type_.onboarding_charge_info_request_;
}
const ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit&
OnboardingInputRequest::_Internal::onboarding_mark_complete_and_exit(const OnboardingInputRequest* msg) {
  return *msg->oneof_message_type_.onboarding_mark_complete_and_exit_;
}
void OnboardingInputRequest::set_allocated_onboarding_complete_request(::Anki::Vector::external_interface::OnboardingCompleteRequest* onboarding_complete_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_complete_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_complete_request);
    if (message_arena != submessage_arena) {
      onboarding_complete_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_complete_request, submessage_arena);
    }
    set_has_onboarding_complete_request();
    oneof_message_type_.onboarding_complete_request_ = onboarding_complete_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_complete_request)
}
void OnboardingInputRequest::set_allocated_onboarding_wake_up_request(::Anki::Vector::external_interface::OnboardingWakeUpRequest* onboarding_wake_up_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_wake_up_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_wake_up_request);
    if (message_arena != submessage_arena) {
      onboarding_wake_up_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_wake_up_request, submessage_arena);
    }
    set_has_onboarding_wake_up_request();
    oneof_message_type_.onboarding_wake_up_request_ = onboarding_wake_up_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_wake_up_request)
}
void OnboardingInputRequest::set_allocated_onboarding_skip_onboarding(::Anki::Vector::external_interface::OnboardingSkipOnboarding* onboarding_skip_onboarding) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_skip_onboarding) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_skip_onboarding);
    if (message_arena != submessage_arena) {
      onboarding_skip_onboarding = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_skip_onboarding, submessage_arena);
    }
    set_has_onboarding_skip_onboarding();
    oneof_message_type_.onboarding_skip_onboarding_ = onboarding_skip_onboarding;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_skip_onboarding)
}
void OnboardingInputRequest::set_allocated_onboarding_restart(::Anki::Vector::external_interface::OnboardingRestart* onboarding_restart) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_restart) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_restart);
    if (message_arena != submessage_arena) {
      onboarding_restart = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_restart, submessage_arena);
    }
    set_has_onboarding_restart();
    oneof_message_type_.onboarding_restart_ = onboarding_restart;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_restart)
}
void OnboardingInputRequest::set_allocated_onboarding_wake_up_started_request(::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* onboarding_wake_up_started_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_wake_up_started_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_wake_up_started_request);
    if (message_arena != submessage_arena) {
      onboarding_wake_up_started_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_wake_up_started_request, submessage_arena);
    }
    set_has_onboarding_wake_up_started_request();
    oneof_message_type_.onboarding_wake_up_started_request_ = onboarding_wake_up_started_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_wake_up_started_request)
}
void OnboardingInputRequest::set_allocated_onboarding_set_phase_request(::Anki::Vector::external_interface::OnboardingSetPhaseRequest* onboarding_set_phase_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_set_phase_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_set_phase_request);
    if (message_arena != submessage_arena) {
      onboarding_set_phase_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_set_phase_request, submessage_arena);
    }
    set_has_onboarding_set_phase_request();
    oneof_message_type_.onboarding_set_phase_request_ = onboarding_set_phase_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_set_phase_request)
}
void OnboardingInputRequest::set_allocated_onboarding_phase_progress_request(::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* onboarding_phase_progress_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_phase_progress_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_phase_progress_request);
    if (message_arena != submessage_arena) {
      onboarding_phase_progress_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_phase_progress_request, submessage_arena);
    }
    set_has_onboarding_phase_progress_request();
    oneof_message_type_.onboarding_phase_progress_request_ = onboarding_phase_progress_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_phase_progress_request)
}
void OnboardingInputRequest::set_allocated_onboarding_charge_info_request(::Anki::Vector::external_interface::OnboardingChargeInfoRequest* onboarding_charge_info_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_charge_info_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_charge_info_request);
    if (message_arena != submessage_arena) {
      onboarding_charge_info_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_charge_info_request, submessage_arena);
    }
    set_has_onboarding_charge_info_request();
    oneof_message_type_.onboarding_charge_info_request_ = onboarding_charge_info_request;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_charge_info_request)
}
void OnboardingInputRequest::set_allocated_onboarding_mark_complete_and_exit(::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* onboarding_mark_complete_and_exit) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_mark_complete_and_exit) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_mark_complete_and_exit);
    if (message_arena != submessage_arena) {
      onboarding_mark_complete_and_exit = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_mark_complete_and_exit, submessage_arena);
    }
    set_has_onboarding_mark_complete_and_exit();
    oneof_message_type_.onboarding_mark_complete_and_exit_ = onboarding_mark_complete_and_exit;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingInputRequest.onboarding_mark_complete_and_exit)
}
OnboardingInputRequest::OnboardingInputRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingInputRequest)
}
OnboardingInputRequest::OnboardingInputRequest(const OnboardingInputRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_oneof_message_type();
  switch (from.oneof_message_type_case()) {
    case kOnboardingCompleteRequest: {
      _internal_mutable_onboarding_complete_request()->::Anki::Vector::external_interface::OnboardingCompleteRequest::MergeFrom(from._internal_onboarding_complete_request());
      break;
    }
    case kOnboardingWakeUpRequest: {
      _internal_mutable_onboarding_wake_up_request()->::Anki::Vector::external_interface::OnboardingWakeUpRequest::MergeFrom(from._internal_onboarding_wake_up_request());
      break;
    }
    case kOnboardingSkipOnboarding: {
      _internal_mutable_onboarding_skip_onboarding()->::Anki::Vector::external_interface::OnboardingSkipOnboarding::MergeFrom(from._internal_onboarding_skip_onboarding());
      break;
    }
    case kOnboardingRestart: {
      _internal_mutable_onboarding_restart()->::Anki::Vector::external_interface::OnboardingRestart::MergeFrom(from._internal_onboarding_restart());
      break;
    }
    case kOnboardingWakeUpStartedRequest: {
      _internal_mutable_onboarding_wake_up_started_request()->::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest::MergeFrom(from._internal_onboarding_wake_up_started_request());
      break;
    }
    case kOnboardingSetPhaseRequest: {
      _internal_mutable_onboarding_set_phase_request()->::Anki::Vector::external_interface::OnboardingSetPhaseRequest::MergeFrom(from._internal_onboarding_set_phase_request());
      break;
    }
    case kOnboardingPhaseProgressRequest: {
      _internal_mutable_onboarding_phase_progress_request()->::Anki::Vector::external_interface::OnboardingPhaseProgressRequest::MergeFrom(from._internal_onboarding_phase_progress_request());
      break;
    }
    case kOnboardingChargeInfoRequest: {
      _internal_mutable_onboarding_charge_info_request()->::Anki::Vector::external_interface::OnboardingChargeInfoRequest::MergeFrom(from._internal_onboarding_charge_info_request());
      break;
    }
    case kOnboardingMarkCompleteAndExit: {
      _internal_mutable_onboarding_mark_complete_and_exit()->::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit::MergeFrom(from._internal_onboarding_mark_complete_and_exit());
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingInputRequest)
}

void OnboardingInputRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_OnboardingInputRequest_messages_2eproto.base);
  clear_has_oneof_message_type();
}

OnboardingInputRequest::~OnboardingInputRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingInputRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingInputRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (has_oneof_message_type()) {
    clear_oneof_message_type();
  }
}

void OnboardingInputRequest::ArenaDtor(void* object) {
  OnboardingInputRequest* _this = reinterpret_cast< OnboardingInputRequest* >(object);
  (void)_this;
}
void OnboardingInputRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingInputRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingInputRequest& OnboardingInputRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingInputRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingInputRequest::clear_oneof_message_type() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.OnboardingInputRequest)
  switch (oneof_message_type_case()) {
    case kOnboardingCompleteRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_complete_request_;
      }
      break;
    }
    case kOnboardingWakeUpRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_wake_up_request_;
      }
      break;
    }
    case kOnboardingSkipOnboarding: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_skip_onboarding_;
      }
      break;
    }
    case kOnboardingRestart: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_restart_;
      }
      break;
    }
    case kOnboardingWakeUpStartedRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_wake_up_started_request_;
      }
      break;
    }
    case kOnboardingSetPhaseRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_set_phase_request_;
      }
      break;
    }
    case kOnboardingPhaseProgressRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_phase_progress_request_;
      }
      break;
    }
    case kOnboardingChargeInfoRequest: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_charge_info_request_;
      }
      break;
    }
    case kOnboardingMarkCompleteAndExit: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_mark_complete_and_exit_;
      }
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = ONEOF_MESSAGE_TYPE_NOT_SET;
}


void OnboardingInputRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingInputRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_oneof_message_type();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingInputRequest::_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) {
      // .Anki.Vector.external_interface.OnboardingCompleteRequest onboarding_complete_request = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_complete_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingWakeUpRequest onboarding_wake_up_request = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_wake_up_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingSkipOnboarding onboarding_skip_onboarding = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_skip_onboarding(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingRestart onboarding_restart = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_restart(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingWakeUpStartedRequest onboarding_wake_up_started_request = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_wake_up_started_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingSetPhaseRequest onboarding_set_phase_request = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_set_phase_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingPhaseProgressRequest onboarding_phase_progress_request = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_phase_progress_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingChargeInfoRequest onboarding_charge_info_request = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_charge_info_request(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingMarkCompleteAndExit onboarding_mark_complete_and_exit = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_mark_complete_and_exit(), 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* OnboardingInputRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingInputRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.OnboardingCompleteRequest onboarding_complete_request = 1;
  if (_internal_has_onboarding_complete_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::onboarding_complete_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingWakeUpRequest onboarding_wake_up_request = 2;
  if (_internal_has_onboarding_wake_up_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::onboarding_wake_up_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingSkipOnboarding onboarding_skip_onboarding = 7;
  if (_internal_has_onboarding_skip_onboarding()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        7, _Internal::onboarding_skip_onboarding(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingRestart onboarding_restart = 8;
  if (_internal_has_onboarding_restart()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        8, _Internal::onboarding_restart(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingWakeUpStartedRequest onboarding_wake_up_started_request = 9;
  if (_internal_has_onboarding_wake_up_started_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        9, _Internal::onboarding_wake_up_started_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingSetPhaseRequest onboarding_set_phase_request = 10;
  if (_internal_has_onboarding_set_phase_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        10, _Internal::onboarding_set_phase_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingPhaseProgressRequest onboarding_phase_progress_request = 11;
  if (_internal_has_onboarding_phase_progress_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        11, _Internal::onboarding_phase_progress_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingChargeInfoRequest onboarding_charge_info_request = 12;
  if (_internal_has_onboarding_charge_info_request()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        12, _Internal::onboarding_charge_info_request(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingMarkCompleteAndExit onboarding_mark_complete_and_exit = 13;
  if (_internal_has_onboarding_mark_complete_and_exit()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        13, _Internal::onboarding_mark_complete_and_exit(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.OnboardingInputRequest)
  return target;
}

size_t OnboardingInputRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingInputRequest)
  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;

  switch (oneof_message_type_case()) {
    // .Anki.Vector.external_interface.OnboardingCompleteRequest onboarding_complete_request = 1;
    case kOnboardingCompleteRequest: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_complete_request_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingWakeUpRequest onboarding_wake_up_request = 2;
    case kOnboardingWakeUpRequest: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_wake_up_request_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingSkipOnboarding onboarding_skip_onboarding = 7;
    case kOnboardingSkipOnboarding: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_skip_onboarding_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingRestart onboarding_restart = 8;
    case kOnboardingRestart: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_restart_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingWakeUpStartedRequest onboarding_wake_up_started_request = 9;
    case kOnboardingWakeUpStartedRequest: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_wake_up_started_request_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingSetPhaseRequest onboarding_set_phase_request = 10;
    case kOnboardingSetPhaseRequest: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_set_phase_request_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingPhaseProgressRequest onboarding_phase_progress_request = 11;
    case kOnboardingPhaseProgressRequest: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_phase_progress_request_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingChargeInfoRequest onboarding_charge_info_request = 12;
    case kOnboardingChargeInfoRequest: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_charge_info_request_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingMarkCompleteAndExit onboarding_mark_complete_and_exit = 13;
    case kOnboardingMarkCompleteAndExit: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_mark_complete_and_exit_);
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
  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 OnboardingInputRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingInputRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingInputRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingInputRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingInputRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingInputRequest)
    MergeFrom(*source);
  }
}

void OnboardingInputRequest::MergeFrom(const OnboardingInputRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingInputRequest)
  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;

  switch (from.oneof_message_type_case()) {
    case kOnboardingCompleteRequest: {
      _internal_mutable_onboarding_complete_request()->::Anki::Vector::external_interface::OnboardingCompleteRequest::MergeFrom(from._internal_onboarding_complete_request());
      break;
    }
    case kOnboardingWakeUpRequest: {
      _internal_mutable_onboarding_wake_up_request()->::Anki::Vector::external_interface::OnboardingWakeUpRequest::MergeFrom(from._internal_onboarding_wake_up_request());
      break;
    }
    case kOnboardingSkipOnboarding: {
      _internal_mutable_onboarding_skip_onboarding()->::Anki::Vector::external_interface::OnboardingSkipOnboarding::MergeFrom(from._internal_onboarding_skip_onboarding());
      break;
    }
    case kOnboardingRestart: {
      _internal_mutable_onboarding_restart()->::Anki::Vector::external_interface::OnboardingRestart::MergeFrom(from._internal_onboarding_restart());
      break;
    }
    case kOnboardingWakeUpStartedRequest: {
      _internal_mutable_onboarding_wake_up_started_request()->::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest::MergeFrom(from._internal_onboarding_wake_up_started_request());
      break;
    }
    case kOnboardingSetPhaseRequest: {
      _internal_mutable_onboarding_set_phase_request()->::Anki::Vector::external_interface::OnboardingSetPhaseRequest::MergeFrom(from._internal_onboarding_set_phase_request());
      break;
    }
    case kOnboardingPhaseProgressRequest: {
      _internal_mutable_onboarding_phase_progress_request()->::Anki::Vector::external_interface::OnboardingPhaseProgressRequest::MergeFrom(from._internal_onboarding_phase_progress_request());
      break;
    }
    case kOnboardingChargeInfoRequest: {
      _internal_mutable_onboarding_charge_info_request()->::Anki::Vector::external_interface::OnboardingChargeInfoRequest::MergeFrom(from._internal_onboarding_charge_info_request());
      break;
    }
    case kOnboardingMarkCompleteAndExit: {
      _internal_mutable_onboarding_mark_complete_and_exit()->::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit::MergeFrom(from._internal_onboarding_mark_complete_and_exit());
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
}

void OnboardingInputRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingInputRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingInputRequest::CopyFrom(const OnboardingInputRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingInputRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingInputRequest::IsInitialized() const {
  return true;
}

void OnboardingInputRequest::InternalSwap(OnboardingInputRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(oneof_message_type_, other->oneof_message_type_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingInputRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingInputResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_OnboardingInputResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_OnboardingInputResponse_default_instance_.onboarding_complete_response_ = const_cast< ::Anki::Vector::external_interface::OnboardingCompleteResponse*>(
      ::Anki::Vector::external_interface::OnboardingCompleteResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_OnboardingInputResponse_default_instance_.onboarding_wake_up_response_ = const_cast< ::Anki::Vector::external_interface::OnboardingWakeUpResponse*>(
      ::Anki::Vector::external_interface::OnboardingWakeUpResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_OnboardingInputResponse_default_instance_.onboarding_wake_up_started_response_ = const_cast< ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse*>(
      ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_OnboardingInputResponse_default_instance_.onboarding_set_phase_response_ = const_cast< ::Anki::Vector::external_interface::OnboardingSetPhaseResponse*>(
      ::Anki::Vector::external_interface::OnboardingSetPhaseResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_OnboardingInputResponse_default_instance_.onboarding_phase_progress_response_ = const_cast< ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse*>(
      ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse::internal_default_instance());
  ::Anki::Vector::external_interface::_OnboardingInputResponse_default_instance_.onboarding_charge_info_response_ = const_cast< ::Anki::Vector::external_interface::OnboardingChargeInfoResponse*>(
      ::Anki::Vector::external_interface::OnboardingChargeInfoResponse::internal_default_instance());
}
class OnboardingInputResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const OnboardingInputResponse* msg);
  static const ::Anki::Vector::external_interface::OnboardingCompleteResponse& onboarding_complete_response(const OnboardingInputResponse* msg);
  static const ::Anki::Vector::external_interface::OnboardingWakeUpResponse& onboarding_wake_up_response(const OnboardingInputResponse* msg);
  static const ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse& onboarding_wake_up_started_response(const OnboardingInputResponse* msg);
  static const ::Anki::Vector::external_interface::OnboardingSetPhaseResponse& onboarding_set_phase_response(const OnboardingInputResponse* msg);
  static const ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse& onboarding_phase_progress_response(const OnboardingInputResponse* msg);
  static const ::Anki::Vector::external_interface::OnboardingChargeInfoResponse& onboarding_charge_info_response(const OnboardingInputResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
OnboardingInputResponse::_Internal::status(const OnboardingInputResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::OnboardingCompleteResponse&
OnboardingInputResponse::_Internal::onboarding_complete_response(const OnboardingInputResponse* msg) {
  return *msg->oneof_message_type_.onboarding_complete_response_;
}
const ::Anki::Vector::external_interface::OnboardingWakeUpResponse&
OnboardingInputResponse::_Internal::onboarding_wake_up_response(const OnboardingInputResponse* msg) {
  return *msg->oneof_message_type_.onboarding_wake_up_response_;
}
const ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse&
OnboardingInputResponse::_Internal::onboarding_wake_up_started_response(const OnboardingInputResponse* msg) {
  return *msg->oneof_message_type_.onboarding_wake_up_started_response_;
}
const ::Anki::Vector::external_interface::OnboardingSetPhaseResponse&
OnboardingInputResponse::_Internal::onboarding_set_phase_response(const OnboardingInputResponse* msg) {
  return *msg->oneof_message_type_.onboarding_set_phase_response_;
}
const ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse&
OnboardingInputResponse::_Internal::onboarding_phase_progress_response(const OnboardingInputResponse* msg) {
  return *msg->oneof_message_type_.onboarding_phase_progress_response_;
}
const ::Anki::Vector::external_interface::OnboardingChargeInfoResponse&
OnboardingInputResponse::_Internal::onboarding_charge_info_response(const OnboardingInputResponse* msg) {
  return *msg->oneof_message_type_.onboarding_charge_info_response_;
}
void OnboardingInputResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
void OnboardingInputResponse::set_allocated_onboarding_complete_response(::Anki::Vector::external_interface::OnboardingCompleteResponse* onboarding_complete_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_complete_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_complete_response);
    if (message_arena != submessage_arena) {
      onboarding_complete_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_complete_response, submessage_arena);
    }
    set_has_onboarding_complete_response();
    oneof_message_type_.onboarding_complete_response_ = onboarding_complete_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_complete_response)
}
void OnboardingInputResponse::set_allocated_onboarding_wake_up_response(::Anki::Vector::external_interface::OnboardingWakeUpResponse* onboarding_wake_up_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_wake_up_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_wake_up_response);
    if (message_arena != submessage_arena) {
      onboarding_wake_up_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_wake_up_response, submessage_arena);
    }
    set_has_onboarding_wake_up_response();
    oneof_message_type_.onboarding_wake_up_response_ = onboarding_wake_up_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_wake_up_response)
}
void OnboardingInputResponse::set_allocated_onboarding_wake_up_started_response(::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* onboarding_wake_up_started_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_wake_up_started_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_wake_up_started_response);
    if (message_arena != submessage_arena) {
      onboarding_wake_up_started_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_wake_up_started_response, submessage_arena);
    }
    set_has_onboarding_wake_up_started_response();
    oneof_message_type_.onboarding_wake_up_started_response_ = onboarding_wake_up_started_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_wake_up_started_response)
}
void OnboardingInputResponse::set_allocated_onboarding_set_phase_response(::Anki::Vector::external_interface::OnboardingSetPhaseResponse* onboarding_set_phase_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_set_phase_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_set_phase_response);
    if (message_arena != submessage_arena) {
      onboarding_set_phase_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_set_phase_response, submessage_arena);
    }
    set_has_onboarding_set_phase_response();
    oneof_message_type_.onboarding_set_phase_response_ = onboarding_set_phase_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_set_phase_response)
}
void OnboardingInputResponse::set_allocated_onboarding_phase_progress_response(::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* onboarding_phase_progress_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_phase_progress_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_phase_progress_response);
    if (message_arena != submessage_arena) {
      onboarding_phase_progress_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_phase_progress_response, submessage_arena);
    }
    set_has_onboarding_phase_progress_response();
    oneof_message_type_.onboarding_phase_progress_response_ = onboarding_phase_progress_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_phase_progress_response)
}
void OnboardingInputResponse::set_allocated_onboarding_charge_info_response(::Anki::Vector::external_interface::OnboardingChargeInfoResponse* onboarding_charge_info_response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (onboarding_charge_info_response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(onboarding_charge_info_response);
    if (message_arena != submessage_arena) {
      onboarding_charge_info_response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, onboarding_charge_info_response, submessage_arena);
    }
    set_has_onboarding_charge_info_response();
    oneof_message_type_.onboarding_charge_info_response_ = onboarding_charge_info_response;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.OnboardingInputResponse.onboarding_charge_info_response)
}
OnboardingInputResponse::OnboardingInputResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingInputResponse)
}
OnboardingInputResponse::OnboardingInputResponse(const OnboardingInputResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  clear_has_oneof_message_type();
  switch (from.oneof_message_type_case()) {
    case kOnboardingCompleteResponse: {
      _internal_mutable_onboarding_complete_response()->::Anki::Vector::external_interface::OnboardingCompleteResponse::MergeFrom(from._internal_onboarding_complete_response());
      break;
    }
    case kOnboardingWakeUpResponse: {
      _internal_mutable_onboarding_wake_up_response()->::Anki::Vector::external_interface::OnboardingWakeUpResponse::MergeFrom(from._internal_onboarding_wake_up_response());
      break;
    }
    case kOnboardingWakeUpStartedResponse: {
      _internal_mutable_onboarding_wake_up_started_response()->::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse::MergeFrom(from._internal_onboarding_wake_up_started_response());
      break;
    }
    case kOnboardingSetPhaseResponse: {
      _internal_mutable_onboarding_set_phase_response()->::Anki::Vector::external_interface::OnboardingSetPhaseResponse::MergeFrom(from._internal_onboarding_set_phase_response());
      break;
    }
    case kOnboardingPhaseProgressResponse: {
      _internal_mutable_onboarding_phase_progress_response()->::Anki::Vector::external_interface::OnboardingPhaseProgressResponse::MergeFrom(from._internal_onboarding_phase_progress_response());
      break;
    }
    case kOnboardingChargeInfoResponse: {
      _internal_mutable_onboarding_charge_info_response()->::Anki::Vector::external_interface::OnboardingChargeInfoResponse::MergeFrom(from._internal_onboarding_charge_info_response());
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingInputResponse)
}

void OnboardingInputResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_OnboardingInputResponse_messages_2eproto.base);
  status_ = nullptr;
  clear_has_oneof_message_type();
}

OnboardingInputResponse::~OnboardingInputResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingInputResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingInputResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (has_oneof_message_type()) {
    clear_oneof_message_type();
  }
}

void OnboardingInputResponse::ArenaDtor(void* object) {
  OnboardingInputResponse* _this = reinterpret_cast< OnboardingInputResponse* >(object);
  (void)_this;
}
void OnboardingInputResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingInputResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingInputResponse& OnboardingInputResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingInputResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingInputResponse::clear_oneof_message_type() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.OnboardingInputResponse)
  switch (oneof_message_type_case()) {
    case kOnboardingCompleteResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_complete_response_;
      }
      break;
    }
    case kOnboardingWakeUpResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_wake_up_response_;
      }
      break;
    }
    case kOnboardingWakeUpStartedResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_wake_up_started_response_;
      }
      break;
    }
    case kOnboardingSetPhaseResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_set_phase_response_;
      }
      break;
    }
    case kOnboardingPhaseProgressResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_phase_progress_response_;
      }
      break;
    }
    case kOnboardingChargeInfoResponse: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.onboarding_charge_info_response_;
      }
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = ONEOF_MESSAGE_TYPE_NOT_SET;
}


void OnboardingInputResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingInputResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  clear_oneof_message_type();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingInputResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingCompleteResponse onboarding_complete_response = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_complete_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingWakeUpResponse onboarding_wake_up_response = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_wake_up_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingWakeUpStartedResponse onboarding_wake_up_started_response = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_wake_up_started_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingSetPhaseResponse onboarding_set_phase_response = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_set_phase_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingPhaseProgressResponse onboarding_phase_progress_response = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_phase_progress_response(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.OnboardingChargeInfoResponse onboarding_charge_info_response = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
          ptr = ctx->ParseMessage(_internal_mutable_onboarding_charge_info_response(), 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* OnboardingInputResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingInputResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingCompleteResponse onboarding_complete_response = 2;
  if (_internal_has_onboarding_complete_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::onboarding_complete_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingWakeUpResponse onboarding_wake_up_response = 3;
  if (_internal_has_onboarding_wake_up_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::onboarding_wake_up_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingWakeUpStartedResponse onboarding_wake_up_started_response = 6;
  if (_internal_has_onboarding_wake_up_started_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        6, _Internal::onboarding_wake_up_started_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingSetPhaseResponse onboarding_set_phase_response = 7;
  if (_internal_has_onboarding_set_phase_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        7, _Internal::onboarding_set_phase_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingPhaseProgressResponse onboarding_phase_progress_response = 8;
  if (_internal_has_onboarding_phase_progress_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        8, _Internal::onboarding_phase_progress_response(this), target, stream);
  }

  // .Anki.Vector.external_interface.OnboardingChargeInfoResponse onboarding_charge_info_response = 9;
  if (_internal_has_onboarding_charge_info_response()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        9, _Internal::onboarding_charge_info_response(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.OnboardingInputResponse)
  return target;
}

size_t OnboardingInputResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingInputResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  switch (oneof_message_type_case()) {
    // .Anki.Vector.external_interface.OnboardingCompleteResponse onboarding_complete_response = 2;
    case kOnboardingCompleteResponse: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_complete_response_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingWakeUpResponse onboarding_wake_up_response = 3;
    case kOnboardingWakeUpResponse: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_wake_up_response_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingWakeUpStartedResponse onboarding_wake_up_started_response = 6;
    case kOnboardingWakeUpStartedResponse: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_wake_up_started_response_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingSetPhaseResponse onboarding_set_phase_response = 7;
    case kOnboardingSetPhaseResponse: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_set_phase_response_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingPhaseProgressResponse onboarding_phase_progress_response = 8;
    case kOnboardingPhaseProgressResponse: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_phase_progress_response_);
      break;
    }
    // .Anki.Vector.external_interface.OnboardingChargeInfoResponse onboarding_charge_info_response = 9;
    case kOnboardingChargeInfoResponse: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.onboarding_charge_info_response_);
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
  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 OnboardingInputResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingInputResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingInputResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingInputResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingInputResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingInputResponse)
    MergeFrom(*source);
  }
}

void OnboardingInputResponse::MergeFrom(const OnboardingInputResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingInputResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  switch (from.oneof_message_type_case()) {
    case kOnboardingCompleteResponse: {
      _internal_mutable_onboarding_complete_response()->::Anki::Vector::external_interface::OnboardingCompleteResponse::MergeFrom(from._internal_onboarding_complete_response());
      break;
    }
    case kOnboardingWakeUpResponse: {
      _internal_mutable_onboarding_wake_up_response()->::Anki::Vector::external_interface::OnboardingWakeUpResponse::MergeFrom(from._internal_onboarding_wake_up_response());
      break;
    }
    case kOnboardingWakeUpStartedResponse: {
      _internal_mutable_onboarding_wake_up_started_response()->::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse::MergeFrom(from._internal_onboarding_wake_up_started_response());
      break;
    }
    case kOnboardingSetPhaseResponse: {
      _internal_mutable_onboarding_set_phase_response()->::Anki::Vector::external_interface::OnboardingSetPhaseResponse::MergeFrom(from._internal_onboarding_set_phase_response());
      break;
    }
    case kOnboardingPhaseProgressResponse: {
      _internal_mutable_onboarding_phase_progress_response()->::Anki::Vector::external_interface::OnboardingPhaseProgressResponse::MergeFrom(from._internal_onboarding_phase_progress_response());
      break;
    }
    case kOnboardingChargeInfoResponse: {
      _internal_mutable_onboarding_charge_info_response()->::Anki::Vector::external_interface::OnboardingChargeInfoResponse::MergeFrom(from._internal_onboarding_charge_info_response());
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
}

void OnboardingInputResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingInputResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingInputResponse::CopyFrom(const OnboardingInputResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingInputResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingInputResponse::IsInitialized() const {
  return true;
}

void OnboardingInputResponse::InternalSwap(OnboardingInputResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_, other->status_);
  swap(oneof_message_type_, other->oneof_message_type_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingInputResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingCompleteRequest::InitAsDefaultInstance() {
}
class OnboardingCompleteRequest::_Internal {
 public:
};

OnboardingCompleteRequest::OnboardingCompleteRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingCompleteRequest)
}
OnboardingCompleteRequest::OnboardingCompleteRequest(const OnboardingCompleteRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingCompleteRequest)
}

void OnboardingCompleteRequest::SharedCtor() {
}

OnboardingCompleteRequest::~OnboardingCompleteRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingCompleteRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingCompleteRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void OnboardingCompleteRequest::ArenaDtor(void* object) {
  OnboardingCompleteRequest* _this = reinterpret_cast< OnboardingCompleteRequest* >(object);
  (void)_this;
}
void OnboardingCompleteRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingCompleteRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingCompleteRequest& OnboardingCompleteRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingCompleteRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingCompleteRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingCompleteRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingCompleteRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* OnboardingCompleteRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingCompleteRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.OnboardingCompleteRequest)
  return target;
}

size_t OnboardingCompleteRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingCompleteRequest)
  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;

  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 OnboardingCompleteRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingCompleteRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingCompleteRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingCompleteRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingCompleteRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingCompleteRequest)
    MergeFrom(*source);
  }
}

void OnboardingCompleteRequest::MergeFrom(const OnboardingCompleteRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingCompleteRequest)
  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;

}

void OnboardingCompleteRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingCompleteRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingCompleteRequest::CopyFrom(const OnboardingCompleteRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingCompleteRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingCompleteRequest::IsInitialized() const {
  return true;
}

void OnboardingCompleteRequest::InternalSwap(OnboardingCompleteRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingCompleteRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingCompleteResponse::InitAsDefaultInstance() {
}
class OnboardingCompleteResponse::_Internal {
 public:
};

OnboardingCompleteResponse::OnboardingCompleteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingCompleteResponse)
}
OnboardingCompleteResponse::OnboardingCompleteResponse(const OnboardingCompleteResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  completed_ = from.completed_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingCompleteResponse)
}

void OnboardingCompleteResponse::SharedCtor() {
  completed_ = false;
}

OnboardingCompleteResponse::~OnboardingCompleteResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingCompleteResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingCompleteResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void OnboardingCompleteResponse::ArenaDtor(void* object) {
  OnboardingCompleteResponse* _this = reinterpret_cast< OnboardingCompleteResponse* >(object);
  (void)_this;
}
void OnboardingCompleteResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingCompleteResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingCompleteResponse& OnboardingCompleteResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingCompleteResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingCompleteResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingCompleteResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  completed_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingCompleteResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool completed = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          completed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* OnboardingCompleteResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingCompleteResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool completed = 1;
  if (this->completed() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_completed(), 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:Anki.Vector.external_interface.OnboardingCompleteResponse)
  return target;
}

size_t OnboardingCompleteResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingCompleteResponse)
  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;

  // bool completed = 1;
  if (this->completed() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void OnboardingCompleteResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingCompleteResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingCompleteResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingCompleteResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingCompleteResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingCompleteResponse)
    MergeFrom(*source);
  }
}

void OnboardingCompleteResponse::MergeFrom(const OnboardingCompleteResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingCompleteResponse)
  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.completed() != 0) {
    _internal_set_completed(from._internal_completed());
  }
}

void OnboardingCompleteResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingCompleteResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingCompleteResponse::CopyFrom(const OnboardingCompleteResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingCompleteResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingCompleteResponse::IsInitialized() const {
  return true;
}

void OnboardingCompleteResponse::InternalSwap(OnboardingCompleteResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(completed_, other->completed_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingCompleteResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingWakeUpStartedRequest::InitAsDefaultInstance() {
}
class OnboardingWakeUpStartedRequest::_Internal {
 public:
};

OnboardingWakeUpStartedRequest::OnboardingWakeUpStartedRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingWakeUpStartedRequest)
}
OnboardingWakeUpStartedRequest::OnboardingWakeUpStartedRequest(const OnboardingWakeUpStartedRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingWakeUpStartedRequest)
}

void OnboardingWakeUpStartedRequest::SharedCtor() {
}

OnboardingWakeUpStartedRequest::~OnboardingWakeUpStartedRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingWakeUpStartedRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingWakeUpStartedRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void OnboardingWakeUpStartedRequest::ArenaDtor(void* object) {
  OnboardingWakeUpStartedRequest* _this = reinterpret_cast< OnboardingWakeUpStartedRequest* >(object);
  (void)_this;
}
void OnboardingWakeUpStartedRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingWakeUpStartedRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingWakeUpStartedRequest& OnboardingWakeUpStartedRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingWakeUpStartedRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingWakeUpStartedRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingWakeUpStartedRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingWakeUpStartedRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* OnboardingWakeUpStartedRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingWakeUpStartedRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.OnboardingWakeUpStartedRequest)
  return target;
}

size_t OnboardingWakeUpStartedRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingWakeUpStartedRequest)
  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;

  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 OnboardingWakeUpStartedRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingWakeUpStartedRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingWakeUpStartedRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingWakeUpStartedRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingWakeUpStartedRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingWakeUpStartedRequest)
    MergeFrom(*source);
  }
}

void OnboardingWakeUpStartedRequest::MergeFrom(const OnboardingWakeUpStartedRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingWakeUpStartedRequest)
  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;

}

void OnboardingWakeUpStartedRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingWakeUpStartedRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingWakeUpStartedRequest::CopyFrom(const OnboardingWakeUpStartedRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingWakeUpStartedRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingWakeUpStartedRequest::IsInitialized() const {
  return true;
}

void OnboardingWakeUpStartedRequest::InternalSwap(OnboardingWakeUpStartedRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingWakeUpStartedRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingWakeUpStartedResponse::InitAsDefaultInstance() {
}
class OnboardingWakeUpStartedResponse::_Internal {
 public:
};

OnboardingWakeUpStartedResponse::OnboardingWakeUpStartedResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse)
}
OnboardingWakeUpStartedResponse::OnboardingWakeUpStartedResponse(const OnboardingWakeUpStartedResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  already_started_ = from.already_started_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse)
}

void OnboardingWakeUpStartedResponse::SharedCtor() {
  already_started_ = false;
}

OnboardingWakeUpStartedResponse::~OnboardingWakeUpStartedResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingWakeUpStartedResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void OnboardingWakeUpStartedResponse::ArenaDtor(void* object) {
  OnboardingWakeUpStartedResponse* _this = reinterpret_cast< OnboardingWakeUpStartedResponse* >(object);
  (void)_this;
}
void OnboardingWakeUpStartedResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingWakeUpStartedResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingWakeUpStartedResponse& OnboardingWakeUpStartedResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingWakeUpStartedResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingWakeUpStartedResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  already_started_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingWakeUpStartedResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool already_started = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          already_started_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* OnboardingWakeUpStartedResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool already_started = 1;
  if (this->already_started() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_already_started(), 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:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse)
  return target;
}

size_t OnboardingWakeUpStartedResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse)
  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;

  // bool already_started = 1;
  if (this->already_started() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void OnboardingWakeUpStartedResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingWakeUpStartedResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingWakeUpStartedResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse)
    MergeFrom(*source);
  }
}

void OnboardingWakeUpStartedResponse::MergeFrom(const OnboardingWakeUpStartedResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse)
  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.already_started() != 0) {
    _internal_set_already_started(from._internal_already_started());
  }
}

void OnboardingWakeUpStartedResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingWakeUpStartedResponse::CopyFrom(const OnboardingWakeUpStartedResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingWakeUpStartedResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingWakeUpStartedResponse::IsInitialized() const {
  return true;
}

void OnboardingWakeUpStartedResponse::InternalSwap(OnboardingWakeUpStartedResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(already_started_, other->already_started_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingWakeUpStartedResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingWakeUpRequest::InitAsDefaultInstance() {
}
class OnboardingWakeUpRequest::_Internal {
 public:
};

OnboardingWakeUpRequest::OnboardingWakeUpRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingWakeUpRequest)
}
OnboardingWakeUpRequest::OnboardingWakeUpRequest(const OnboardingWakeUpRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingWakeUpRequest)
}

void OnboardingWakeUpRequest::SharedCtor() {
}

OnboardingWakeUpRequest::~OnboardingWakeUpRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingWakeUpRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingWakeUpRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void OnboardingWakeUpRequest::ArenaDtor(void* object) {
  OnboardingWakeUpRequest* _this = reinterpret_cast< OnboardingWakeUpRequest* >(object);
  (void)_this;
}
void OnboardingWakeUpRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingWakeUpRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingWakeUpRequest& OnboardingWakeUpRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingWakeUpRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingWakeUpRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingWakeUpRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingWakeUpRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* OnboardingWakeUpRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingWakeUpRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.OnboardingWakeUpRequest)
  return target;
}

size_t OnboardingWakeUpRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingWakeUpRequest)
  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;

  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 OnboardingWakeUpRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingWakeUpRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingWakeUpRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingWakeUpRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingWakeUpRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingWakeUpRequest)
    MergeFrom(*source);
  }
}

void OnboardingWakeUpRequest::MergeFrom(const OnboardingWakeUpRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingWakeUpRequest)
  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;

}

void OnboardingWakeUpRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingWakeUpRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingWakeUpRequest::CopyFrom(const OnboardingWakeUpRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingWakeUpRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingWakeUpRequest::IsInitialized() const {
  return true;
}

void OnboardingWakeUpRequest::InternalSwap(OnboardingWakeUpRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingWakeUpRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingWakeUpResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_OnboardingWakeUpResponse_default_instance_._instance.get_mutable()->charging_info_ = const_cast< ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo*>(
      ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo::internal_default_instance());
}
class OnboardingWakeUpResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo& charging_info(const OnboardingWakeUpResponse* msg);
};

const ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo&
OnboardingWakeUpResponse::_Internal::charging_info(const OnboardingWakeUpResponse* msg) {
  return *msg->charging_info_;
}
OnboardingWakeUpResponse::OnboardingWakeUpResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingWakeUpResponse)
}
OnboardingWakeUpResponse::OnboardingWakeUpResponse(const OnboardingWakeUpResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_charging_info()) {
    charging_info_ = new ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo(*from.charging_info_);
  } else {
    charging_info_ = nullptr;
  }
  waking_up_ = from.waking_up_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingWakeUpResponse)
}

void OnboardingWakeUpResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_OnboardingWakeUpResponse_messages_2eproto.base);
  ::memset(&charging_info_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&waking_up_) -
      reinterpret_cast<char*>(&charging_info_)) + sizeof(waking_up_));
}

OnboardingWakeUpResponse::~OnboardingWakeUpResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingWakeUpResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingWakeUpResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete charging_info_;
}

void OnboardingWakeUpResponse::ArenaDtor(void* object) {
  OnboardingWakeUpResponse* _this = reinterpret_cast< OnboardingWakeUpResponse* >(object);
  (void)_this;
}
void OnboardingWakeUpResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingWakeUpResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingWakeUpResponse& OnboardingWakeUpResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingWakeUpResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingWakeUpResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingWakeUpResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && charging_info_ != nullptr) {
    delete charging_info_;
  }
  charging_info_ = nullptr;
  waking_up_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingWakeUpResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool waking_up = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          waking_up_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.Onboarding1p0ChargingInfo charging_info = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_charging_info(), 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* OnboardingWakeUpResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingWakeUpResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool waking_up = 1;
  if (this->waking_up() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_waking_up(), target);
  }

  // .Anki.Vector.external_interface.Onboarding1p0ChargingInfo charging_info = 2;
  if (this->has_charging_info()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::charging_info(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.OnboardingWakeUpResponse)
  return target;
}

size_t OnboardingWakeUpResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingWakeUpResponse)
  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;

  // .Anki.Vector.external_interface.Onboarding1p0ChargingInfo charging_info = 2;
  if (this->has_charging_info()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *charging_info_);
  }

  // bool waking_up = 1;
  if (this->waking_up() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void OnboardingWakeUpResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingWakeUpResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingWakeUpResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingWakeUpResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingWakeUpResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingWakeUpResponse)
    MergeFrom(*source);
  }
}

void OnboardingWakeUpResponse::MergeFrom(const OnboardingWakeUpResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingWakeUpResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_charging_info()) {
    _internal_mutable_charging_info()->::Anki::Vector::external_interface::Onboarding1p0ChargingInfo::MergeFrom(from._internal_charging_info());
  }
  if (from.waking_up() != 0) {
    _internal_set_waking_up(from._internal_waking_up());
  }
}

void OnboardingWakeUpResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingWakeUpResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingWakeUpResponse::CopyFrom(const OnboardingWakeUpResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingWakeUpResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingWakeUpResponse::IsInitialized() const {
  return true;
}

void OnboardingWakeUpResponse::InternalSwap(OnboardingWakeUpResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(OnboardingWakeUpResponse, waking_up_)
      + sizeof(OnboardingWakeUpResponse::waking_up_)
      - PROTOBUF_FIELD_OFFSET(OnboardingWakeUpResponse, charging_info_)>(
          reinterpret_cast<char*>(&charging_info_),
          reinterpret_cast<char*>(&other->charging_info_));
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingWakeUpResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void Onboarding1p0ChargingInfo::InitAsDefaultInstance() {
}
class Onboarding1p0ChargingInfo::_Internal {
 public:
};

Onboarding1p0ChargingInfo::Onboarding1p0ChargingInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.Onboarding1p0ChargingInfo)
}
Onboarding1p0ChargingInfo::Onboarding1p0ChargingInfo(const Onboarding1p0ChargingInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&on_charger_, &from.on_charger_,
    static_cast<size_t>(reinterpret_cast<char*>(&suggested_charger_time_) -
    reinterpret_cast<char*>(&on_charger_)) + sizeof(suggested_charger_time_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.Onboarding1p0ChargingInfo)
}

void Onboarding1p0ChargingInfo::SharedCtor() {
  ::memset(&on_charger_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&suggested_charger_time_) -
      reinterpret_cast<char*>(&on_charger_)) + sizeof(suggested_charger_time_));
}

Onboarding1p0ChargingInfo::~Onboarding1p0ChargingInfo() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.Onboarding1p0ChargingInfo)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void Onboarding1p0ChargingInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void Onboarding1p0ChargingInfo::ArenaDtor(void* object) {
  Onboarding1p0ChargingInfo* _this = reinterpret_cast< Onboarding1p0ChargingInfo* >(object);
  (void)_this;
}
void Onboarding1p0ChargingInfo::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Onboarding1p0ChargingInfo::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Onboarding1p0ChargingInfo& Onboarding1p0ChargingInfo::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Onboarding1p0ChargingInfo_messages_2eproto.base);
  return *internal_default_instance();
}


void Onboarding1p0ChargingInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.Onboarding1p0ChargingInfo)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&on_charger_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&suggested_charger_time_) -
      reinterpret_cast<char*>(&on_charger_)) + sizeof(suggested_charger_time_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Onboarding1p0ChargingInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool on_charger = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          on_charger_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool needs_to_charge = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          needs_to_charge_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float suggested_charger_time = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          suggested_charger_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* Onboarding1p0ChargingInfo::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.Onboarding1p0ChargingInfo)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool on_charger = 1;
  if (this->on_charger() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_on_charger(), target);
  }

  // bool needs_to_charge = 2;
  if (this->needs_to_charge() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_needs_to_charge(), target);
  }

  // float suggested_charger_time = 3;
  if (!(this->suggested_charger_time() <= 0 && this->suggested_charger_time() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_suggested_charger_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:Anki.Vector.external_interface.Onboarding1p0ChargingInfo)
  return target;
}

size_t Onboarding1p0ChargingInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.Onboarding1p0ChargingInfo)
  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;

  // bool on_charger = 1;
  if (this->on_charger() != 0) {
    total_size += 1 + 1;
  }

  // bool needs_to_charge = 2;
  if (this->needs_to_charge() != 0) {
    total_size += 1 + 1;
  }

  // float suggested_charger_time = 3;
  if (!(this->suggested_charger_time() <= 0 && this->suggested_charger_time() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Onboarding1p0ChargingInfo::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.Onboarding1p0ChargingInfo)
  GOOGLE_DCHECK_NE(&from, this);
  const Onboarding1p0ChargingInfo* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Onboarding1p0ChargingInfo>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.Onboarding1p0ChargingInfo)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.Onboarding1p0ChargingInfo)
    MergeFrom(*source);
  }
}

void Onboarding1p0ChargingInfo::MergeFrom(const Onboarding1p0ChargingInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.Onboarding1p0ChargingInfo)
  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.on_charger() != 0) {
    _internal_set_on_charger(from._internal_on_charger());
  }
  if (from.needs_to_charge() != 0) {
    _internal_set_needs_to_charge(from._internal_needs_to_charge());
  }
  if (!(from.suggested_charger_time() <= 0 && from.suggested_charger_time() >= 0)) {
    _internal_set_suggested_charger_time(from._internal_suggested_charger_time());
  }
}

void Onboarding1p0ChargingInfo::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.Onboarding1p0ChargingInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Onboarding1p0ChargingInfo::CopyFrom(const Onboarding1p0ChargingInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.Onboarding1p0ChargingInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Onboarding1p0ChargingInfo::IsInitialized() const {
  return true;
}

void Onboarding1p0ChargingInfo::InternalSwap(Onboarding1p0ChargingInfo* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Onboarding1p0ChargingInfo, suggested_charger_time_)
      + sizeof(Onboarding1p0ChargingInfo::suggested_charger_time_)
      - PROTOBUF_FIELD_OFFSET(Onboarding1p0ChargingInfo, on_charger_)>(
          reinterpret_cast<char*>(&on_charger_),
          reinterpret_cast<char*>(&other->on_charger_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Onboarding1p0ChargingInfo::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void OnboardingWakeUpFinished::InitAsDefaultInstance() {
}
class OnboardingWakeUpFinished::_Internal {
 public:
};

OnboardingWakeUpFinished::OnboardingWakeUpFinished(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.OnboardingWakeUpFinished)
}
OnboardingWakeUpFinished::OnboardingWakeUpFinished(const OnboardingWakeUpFinished& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.OnboardingWakeUpFinished)
}

void OnboardingWakeUpFinished::SharedCtor() {
}

OnboardingWakeUpFinished::~OnboardingWakeUpFinished() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.OnboardingWakeUpFinished)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void OnboardingWakeUpFinished::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void OnboardingWakeUpFinished::ArenaDtor(void* object) {
  OnboardingWakeUpFinished* _this = reinterpret_cast< OnboardingWakeUpFinished* >(object);
  (void)_this;
}
void OnboardingWakeUpFinished::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OnboardingWakeUpFinished::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const OnboardingWakeUpFinished& OnboardingWakeUpFinished::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_OnboardingWakeUpFinished_messages_2eproto.base);
  return *internal_default_instance();
}


void OnboardingWakeUpFinished::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.OnboardingWakeUpFinished)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OnboardingWakeUpFinished::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* OnboardingWakeUpFinished::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.OnboardingWakeUpFinished)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.OnboardingWakeUpFinished)
  return target;
}

size_t OnboardingWakeUpFinished::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.OnboardingWakeUpFinished)
  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;

  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 OnboardingWakeUpFinished::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.OnboardingWakeUpFinished)
  GOOGLE_DCHECK_NE(&from, this);
  const OnboardingWakeUpFinished* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<OnboardingWakeUpFinished>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.OnboardingWakeUpFinished)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.OnboardingWakeUpFinished)
    MergeFrom(*source);
  }
}

void OnboardingWakeUpFinished::MergeFrom(const OnboardingWakeUpFinished& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.OnboardingWakeUpFinished)
  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;

}

void OnboardingWakeUpFinished::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.OnboardingWakeUpFinished)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void OnboardingWakeUpFinished::CopyFrom(const OnboardingWakeUpFinished& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.OnboardingWakeUpFinished)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OnboardingWakeUpFinished::IsInitialized() const {
  return true;
}

void OnboardingWakeUpFinished::InternalSwap(OnboardingWakeUpFinished* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OnboardingWakeUpFinished::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void FeatureFlagRequest::InitAsDefaultInstance() {
}
class FeatureFlagRequest::_Internal {
 public:
};

FeatureFlagRequest::FeatureFlagRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.FeatureFlagRequest)
}
FeatureFlagRequest::FeatureFlagRequest(const FeatureFlagRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  feature_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_feature_name().empty()) {
    feature_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_feature_name(),
      GetArena());
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.FeatureFlagRequest)
}

void FeatureFlagRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_FeatureFlagRequest_messages_2eproto.base);
  feature_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

FeatureFlagRequest::~FeatureFlagRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.FeatureFlagRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void FeatureFlagRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  feature_name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void FeatureFlagRequest::ArenaDtor(void* object) {
  FeatureFlagRequest* _this = reinterpret_cast< FeatureFlagRequest* >(object);
  (void)_this;
}
void FeatureFlagRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void FeatureFlagRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const FeatureFlagRequest& FeatureFlagRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_FeatureFlagRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void FeatureFlagRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.FeatureFlagRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  feature_name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FeatureFlagRequest::_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 feature_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          auto str = _internal_mutable_feature_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.FeatureFlagRequest.feature_name"));
          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* FeatureFlagRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.FeatureFlagRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string feature_name = 1;
  if (this->feature_name().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_feature_name().data(), static_cast<int>(this->_internal_feature_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.FeatureFlagRequest.feature_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_feature_name(), 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:Anki.Vector.external_interface.FeatureFlagRequest)
  return target;
}

size_t FeatureFlagRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.FeatureFlagRequest)
  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 feature_name = 1;
  if (this->feature_name().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_feature_name());
  }

  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 FeatureFlagRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.FeatureFlagRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const FeatureFlagRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<FeatureFlagRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.FeatureFlagRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.FeatureFlagRequest)
    MergeFrom(*source);
  }
}

void FeatureFlagRequest::MergeFrom(const FeatureFlagRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.FeatureFlagRequest)
  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.feature_name().size() > 0) {
    _internal_set_feature_name(from._internal_feature_name());
  }
}

void FeatureFlagRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.FeatureFlagRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void FeatureFlagRequest::CopyFrom(const FeatureFlagRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.FeatureFlagRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FeatureFlagRequest::IsInitialized() const {
  return true;
}

void FeatureFlagRequest::InternalSwap(FeatureFlagRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  feature_name_.Swap(&other->feature_name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}

::PROTOBUF_NAMESPACE_ID::Metadata FeatureFlagRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void FeatureFlagResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_FeatureFlagResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class FeatureFlagResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const FeatureFlagResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
FeatureFlagResponse::_Internal::status(const FeatureFlagResponse* msg) {
  return *msg->status_;
}
void FeatureFlagResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
FeatureFlagResponse::FeatureFlagResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.FeatureFlagResponse)
}
FeatureFlagResponse::FeatureFlagResponse(const FeatureFlagResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  ::memcpy(&valid_feature_, &from.valid_feature_,
    static_cast<size_t>(reinterpret_cast<char*>(&feature_enabled_) -
    reinterpret_cast<char*>(&valid_feature_)) + sizeof(feature_enabled_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.FeatureFlagResponse)
}

void FeatureFlagResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_FeatureFlagResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&feature_enabled_) -
      reinterpret_cast<char*>(&status_)) + sizeof(feature_enabled_));
}

FeatureFlagResponse::~FeatureFlagResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.FeatureFlagResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void FeatureFlagResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void FeatureFlagResponse::ArenaDtor(void* object) {
  FeatureFlagResponse* _this = reinterpret_cast< FeatureFlagResponse* >(object);
  (void)_this;
}
void FeatureFlagResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void FeatureFlagResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const FeatureFlagResponse& FeatureFlagResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_FeatureFlagResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void FeatureFlagResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.FeatureFlagResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  ::memset(&valid_feature_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&feature_enabled_) -
      reinterpret_cast<char*>(&valid_feature_)) + sizeof(feature_enabled_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FeatureFlagResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool valid_feature = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          valid_feature_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool feature_enabled = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          feature_enabled_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* FeatureFlagResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.FeatureFlagResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // bool valid_feature = 2;
  if (this->valid_feature() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_valid_feature(), target);
  }

  // bool feature_enabled = 3;
  if (this->feature_enabled() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_feature_enabled(), 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:Anki.Vector.external_interface.FeatureFlagResponse)
  return target;
}

size_t FeatureFlagResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.FeatureFlagResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // bool valid_feature = 2;
  if (this->valid_feature() != 0) {
    total_size += 1 + 1;
  }

  // bool feature_enabled = 3;
  if (this->feature_enabled() != 0) {
    total_size += 1 + 1;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void FeatureFlagResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.FeatureFlagResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const FeatureFlagResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<FeatureFlagResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.FeatureFlagResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.FeatureFlagResponse)
    MergeFrom(*source);
  }
}

void FeatureFlagResponse::MergeFrom(const FeatureFlagResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.FeatureFlagResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.valid_feature() != 0) {
    _internal_set_valid_feature(from._internal_valid_feature());
  }
  if (from.feature_enabled() != 0) {
    _internal_set_feature_enabled(from._internal_feature_enabled());
  }
}

void FeatureFlagResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.FeatureFlagResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void FeatureFlagResponse::CopyFrom(const FeatureFlagResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.FeatureFlagResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FeatureFlagResponse::IsInitialized() const {
  return true;
}

void FeatureFlagResponse::InternalSwap(FeatureFlagResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(FeatureFlagResponse, feature_enabled_)
      + sizeof(FeatureFlagResponse::feature_enabled_)
      - PROTOBUF_FIELD_OFFSET(FeatureFlagResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata FeatureFlagResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void FeatureFlagListRequest::InitAsDefaultInstance() {
}
class FeatureFlagListRequest::_Internal {
 public:
};

FeatureFlagListRequest::FeatureFlagListRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  request_list_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.FeatureFlagListRequest)
}
FeatureFlagListRequest::FeatureFlagListRequest(const FeatureFlagListRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      request_list_(from.request_list_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.FeatureFlagListRequest)
}

void FeatureFlagListRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_FeatureFlagListRequest_messages_2eproto.base);
}

FeatureFlagListRequest::~FeatureFlagListRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.FeatureFlagListRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void FeatureFlagListRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void FeatureFlagListRequest::ArenaDtor(void* object) {
  FeatureFlagListRequest* _this = reinterpret_cast< FeatureFlagListRequest* >(object);
  (void)_this;
}
void FeatureFlagListRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void FeatureFlagListRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const FeatureFlagListRequest& FeatureFlagListRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_FeatureFlagListRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void FeatureFlagListRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.FeatureFlagListRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  request_list_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FeatureFlagListRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // repeated string request_list = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_request_list();
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.FeatureFlagListRequest.request_list"));
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* FeatureFlagListRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.FeatureFlagListRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string request_list = 1;
  for (int i = 0, n = this->_internal_request_list_size(); i < n; i++) {
    const auto& s = this->_internal_request_list(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.FeatureFlagListRequest.request_list");
    target = stream->WriteString(1, s, 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:Anki.Vector.external_interface.FeatureFlagListRequest)
  return target;
}

size_t FeatureFlagListRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.FeatureFlagListRequest)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string request_list = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(request_list_.size());
  for (int i = 0, n = request_list_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      request_list_.Get(i));
  }

  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 FeatureFlagListRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.FeatureFlagListRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const FeatureFlagListRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<FeatureFlagListRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.FeatureFlagListRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.FeatureFlagListRequest)
    MergeFrom(*source);
  }
}

void FeatureFlagListRequest::MergeFrom(const FeatureFlagListRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.FeatureFlagListRequest)
  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;

  request_list_.MergeFrom(from.request_list_);
}

void FeatureFlagListRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.FeatureFlagListRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void FeatureFlagListRequest::CopyFrom(const FeatureFlagListRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.FeatureFlagListRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FeatureFlagListRequest::IsInitialized() const {
  return true;
}

void FeatureFlagListRequest::InternalSwap(FeatureFlagListRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  request_list_.InternalSwap(&other->request_list_);
}

::PROTOBUF_NAMESPACE_ID::Metadata FeatureFlagListRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void FeatureFlagListResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_FeatureFlagListResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class FeatureFlagListResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const FeatureFlagListResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
FeatureFlagListResponse::_Internal::status(const FeatureFlagListResponse* msg) {
  return *msg->status_;
}
void FeatureFlagListResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
FeatureFlagListResponse::FeatureFlagListResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  list_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.FeatureFlagListResponse)
}
FeatureFlagListResponse::FeatureFlagListResponse(const FeatureFlagListResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      list_(from.list_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.FeatureFlagListResponse)
}

void FeatureFlagListResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_FeatureFlagListResponse_messages_2eproto.base);
  status_ = nullptr;
}

FeatureFlagListResponse::~FeatureFlagListResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.FeatureFlagListResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void FeatureFlagListResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void FeatureFlagListResponse::ArenaDtor(void* object) {
  FeatureFlagListResponse* _this = reinterpret_cast< FeatureFlagListResponse* >(object);
  (void)_this;
}
void FeatureFlagListResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void FeatureFlagListResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const FeatureFlagListResponse& FeatureFlagListResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_FeatureFlagListResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void FeatureFlagListResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.FeatureFlagListResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  list_.Clear();
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FeatureFlagListResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated string list = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_list();
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.FeatureFlagListResponse.list"));
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(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* FeatureFlagListResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.FeatureFlagListResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // repeated string list = 2;
  for (int i = 0, n = this->_internal_list_size(); i < n; i++) {
    const auto& s = this->_internal_list(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.FeatureFlagListResponse.list");
    target = stream->WriteString(2, s, 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:Anki.Vector.external_interface.FeatureFlagListResponse)
  return target;
}

size_t FeatureFlagListResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.FeatureFlagListResponse)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string list = 2;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(list_.size());
  for (int i = 0, n = list_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      list_.Get(i));
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 FeatureFlagListResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.FeatureFlagListResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const FeatureFlagListResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<FeatureFlagListResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.FeatureFlagListResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.FeatureFlagListResponse)
    MergeFrom(*source);
  }
}

void FeatureFlagListResponse::MergeFrom(const FeatureFlagListResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.FeatureFlagListResponse)
  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;

  list_.MergeFrom(from.list_);
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void FeatureFlagListResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.FeatureFlagListResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void FeatureFlagListResponse::CopyFrom(const FeatureFlagListResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.FeatureFlagListResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FeatureFlagListResponse::IsInitialized() const {
  return true;
}

void FeatureFlagListResponse::InternalSwap(FeatureFlagListResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  list_.InternalSwap(&other->list_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata FeatureFlagListResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void AttentionTransfer::InitAsDefaultInstance() {
}
class AttentionTransfer::_Internal {
 public:
};

AttentionTransfer::AttentionTransfer(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.AttentionTransfer)
}
AttentionTransfer::AttentionTransfer(const AttentionTransfer& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&reason_, &from.reason_,
    static_cast<size_t>(reinterpret_cast<char*>(&seconds_ago_) -
    reinterpret_cast<char*>(&reason_)) + sizeof(seconds_ago_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.AttentionTransfer)
}

void AttentionTransfer::SharedCtor() {
  ::memset(&reason_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&seconds_ago_) -
      reinterpret_cast<char*>(&reason_)) + sizeof(seconds_ago_));
}

AttentionTransfer::~AttentionTransfer() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.AttentionTransfer)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void AttentionTransfer::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void AttentionTransfer::ArenaDtor(void* object) {
  AttentionTransfer* _this = reinterpret_cast< AttentionTransfer* >(object);
  (void)_this;
}
void AttentionTransfer::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void AttentionTransfer::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const AttentionTransfer& AttentionTransfer::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AttentionTransfer_messages_2eproto.base);
  return *internal_default_instance();
}


void AttentionTransfer::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.AttentionTransfer)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&reason_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&seconds_ago_) -
      reinterpret_cast<char*>(&reason_)) + sizeof(seconds_ago_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AttentionTransfer::_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) {
      // .Anki.Vector.external_interface.AttentionTransferReason reason = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_reason(static_cast<::Anki::Vector::external_interface::AttentionTransferReason>(val));
        } else goto handle_unusual;
        continue;
      // float seconds_ago = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          seconds_ago_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* AttentionTransfer::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.AttentionTransfer)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.AttentionTransferReason reason = 1;
  if (this->reason() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_reason(), target);
  }

  // float seconds_ago = 2;
  if (!(this->seconds_ago() <= 0 && this->seconds_ago() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_seconds_ago(), 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:Anki.Vector.external_interface.AttentionTransfer)
  return target;
}

size_t AttentionTransfer::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.AttentionTransfer)
  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;

  // .Anki.Vector.external_interface.AttentionTransferReason reason = 1;
  if (this->reason() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_reason());
  }

  // float seconds_ago = 2;
  if (!(this->seconds_ago() <= 0 && this->seconds_ago() >= 0)) {
    total_size += 1 + 4;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void AttentionTransfer::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.AttentionTransfer)
  GOOGLE_DCHECK_NE(&from, this);
  const AttentionTransfer* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AttentionTransfer>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.AttentionTransfer)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.AttentionTransfer)
    MergeFrom(*source);
  }
}

void AttentionTransfer::MergeFrom(const AttentionTransfer& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.AttentionTransfer)
  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.reason() != 0) {
    _internal_set_reason(from._internal_reason());
  }
  if (!(from.seconds_ago() <= 0 && from.seconds_ago() >= 0)) {
    _internal_set_seconds_ago(from._internal_seconds_ago());
  }
}

void AttentionTransfer::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.AttentionTransfer)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AttentionTransfer::CopyFrom(const AttentionTransfer& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.AttentionTransfer)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AttentionTransfer::IsInitialized() const {
  return true;
}

void AttentionTransfer::InternalSwap(AttentionTransfer* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AttentionTransfer, seconds_ago_)
      + sizeof(AttentionTransfer::seconds_ago_)
      - PROTOBUF_FIELD_OFFSET(AttentionTransfer, reason_)>(
          reinterpret_cast<char*>(&reason_),
          reinterpret_cast<char*>(&other->reason_));
}

::PROTOBUF_NAMESPACE_ID::Metadata AttentionTransfer::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void LatestAttentionTransferRequest::InitAsDefaultInstance() {
}
class LatestAttentionTransferRequest::_Internal {
 public:
};

LatestAttentionTransferRequest::LatestAttentionTransferRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.LatestAttentionTransferRequest)
}
LatestAttentionTransferRequest::LatestAttentionTransferRequest(const LatestAttentionTransferRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.LatestAttentionTransferRequest)
}

void LatestAttentionTransferRequest::SharedCtor() {
}

LatestAttentionTransferRequest::~LatestAttentionTransferRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.LatestAttentionTransferRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void LatestAttentionTransferRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void LatestAttentionTransferRequest::ArenaDtor(void* object) {
  LatestAttentionTransferRequest* _this = reinterpret_cast< LatestAttentionTransferRequest* >(object);
  (void)_this;
}
void LatestAttentionTransferRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LatestAttentionTransferRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const LatestAttentionTransferRequest& LatestAttentionTransferRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LatestAttentionTransferRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void LatestAttentionTransferRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.LatestAttentionTransferRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* LatestAttentionTransferRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* LatestAttentionTransferRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.LatestAttentionTransferRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.LatestAttentionTransferRequest)
  return target;
}

size_t LatestAttentionTransferRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.LatestAttentionTransferRequest)
  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;

  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 LatestAttentionTransferRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.LatestAttentionTransferRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const LatestAttentionTransferRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LatestAttentionTransferRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.LatestAttentionTransferRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.LatestAttentionTransferRequest)
    MergeFrom(*source);
  }
}

void LatestAttentionTransferRequest::MergeFrom(const LatestAttentionTransferRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.LatestAttentionTransferRequest)
  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;

}

void LatestAttentionTransferRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.LatestAttentionTransferRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void LatestAttentionTransferRequest::CopyFrom(const LatestAttentionTransferRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.LatestAttentionTransferRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool LatestAttentionTransferRequest::IsInitialized() const {
  return true;
}

void LatestAttentionTransferRequest::InternalSwap(LatestAttentionTransferRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata LatestAttentionTransferRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void LatestAttentionTransfer::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_LatestAttentionTransfer_default_instance_.attention_transfer_ = const_cast< ::Anki::Vector::external_interface::AttentionTransfer*>(
      ::Anki::Vector::external_interface::AttentionTransfer::internal_default_instance());
}
class LatestAttentionTransfer::_Internal {
 public:
  static const ::Anki::Vector::external_interface::AttentionTransfer& attention_transfer(const LatestAttentionTransfer* msg);
};

const ::Anki::Vector::external_interface::AttentionTransfer&
LatestAttentionTransfer::_Internal::attention_transfer(const LatestAttentionTransfer* msg) {
  return *msg->oneof_message_type_.attention_transfer_;
}
void LatestAttentionTransfer::set_allocated_attention_transfer(::Anki::Vector::external_interface::AttentionTransfer* attention_transfer) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_oneof_message_type();
  if (attention_transfer) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(attention_transfer);
    if (message_arena != submessage_arena) {
      attention_transfer = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, attention_transfer, submessage_arena);
    }
    set_has_attention_transfer();
    oneof_message_type_.attention_transfer_ = attention_transfer;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.LatestAttentionTransfer.attention_transfer)
}
LatestAttentionTransfer::LatestAttentionTransfer(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.LatestAttentionTransfer)
}
LatestAttentionTransfer::LatestAttentionTransfer(const LatestAttentionTransfer& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_oneof_message_type();
  switch (from.oneof_message_type_case()) {
    case kAttentionTransfer: {
      _internal_mutable_attention_transfer()->::Anki::Vector::external_interface::AttentionTransfer::MergeFrom(from._internal_attention_transfer());
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.LatestAttentionTransfer)
}

void LatestAttentionTransfer::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_LatestAttentionTransfer_messages_2eproto.base);
  clear_has_oneof_message_type();
}

LatestAttentionTransfer::~LatestAttentionTransfer() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.LatestAttentionTransfer)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void LatestAttentionTransfer::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (has_oneof_message_type()) {
    clear_oneof_message_type();
  }
}

void LatestAttentionTransfer::ArenaDtor(void* object) {
  LatestAttentionTransfer* _this = reinterpret_cast< LatestAttentionTransfer* >(object);
  (void)_this;
}
void LatestAttentionTransfer::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LatestAttentionTransfer::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const LatestAttentionTransfer& LatestAttentionTransfer::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LatestAttentionTransfer_messages_2eproto.base);
  return *internal_default_instance();
}


void LatestAttentionTransfer::clear_oneof_message_type() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.LatestAttentionTransfer)
  switch (oneof_message_type_case()) {
    case kAttentionTransfer: {
      if (GetArena() == nullptr) {
        delete oneof_message_type_.attention_transfer_;
      }
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = ONEOF_MESSAGE_TYPE_NOT_SET;
}


void LatestAttentionTransfer::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.LatestAttentionTransfer)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_oneof_message_type();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* LatestAttentionTransfer::_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) {
      // .Anki.Vector.external_interface.AttentionTransfer attention_transfer = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_attention_transfer(), 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* LatestAttentionTransfer::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.LatestAttentionTransfer)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.AttentionTransfer attention_transfer = 1;
  if (_internal_has_attention_transfer()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::attention_transfer(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.LatestAttentionTransfer)
  return target;
}

size_t LatestAttentionTransfer::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.LatestAttentionTransfer)
  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;

  switch (oneof_message_type_case()) {
    // .Anki.Vector.external_interface.AttentionTransfer attention_transfer = 1;
    case kAttentionTransfer: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *oneof_message_type_.attention_transfer_);
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
  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 LatestAttentionTransfer::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.LatestAttentionTransfer)
  GOOGLE_DCHECK_NE(&from, this);
  const LatestAttentionTransfer* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LatestAttentionTransfer>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.LatestAttentionTransfer)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.LatestAttentionTransfer)
    MergeFrom(*source);
  }
}

void LatestAttentionTransfer::MergeFrom(const LatestAttentionTransfer& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.LatestAttentionTransfer)
  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;

  switch (from.oneof_message_type_case()) {
    case kAttentionTransfer: {
      _internal_mutable_attention_transfer()->::Anki::Vector::external_interface::AttentionTransfer::MergeFrom(from._internal_attention_transfer());
      break;
    }
    case ONEOF_MESSAGE_TYPE_NOT_SET: {
      break;
    }
  }
}

void LatestAttentionTransfer::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.LatestAttentionTransfer)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void LatestAttentionTransfer::CopyFrom(const LatestAttentionTransfer& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.LatestAttentionTransfer)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool LatestAttentionTransfer::IsInitialized() const {
  return true;
}

void LatestAttentionTransfer::InternalSwap(LatestAttentionTransfer* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(oneof_message_type_, other->oneof_message_type_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata LatestAttentionTransfer::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void LatestAttentionTransferResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_LatestAttentionTransferResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
  ::Anki::Vector::external_interface::_LatestAttentionTransferResponse_default_instance_._instance.get_mutable()->latest_attention_transfer_ = const_cast< ::Anki::Vector::external_interface::LatestAttentionTransfer*>(
      ::Anki::Vector::external_interface::LatestAttentionTransfer::internal_default_instance());
}
class LatestAttentionTransferResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const LatestAttentionTransferResponse* msg);
  static const ::Anki::Vector::external_interface::LatestAttentionTransfer& latest_attention_transfer(const LatestAttentionTransferResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
LatestAttentionTransferResponse::_Internal::status(const LatestAttentionTransferResponse* msg) {
  return *msg->status_;
}
const ::Anki::Vector::external_interface::LatestAttentionTransfer&
LatestAttentionTransferResponse::_Internal::latest_attention_transfer(const LatestAttentionTransferResponse* msg) {
  return *msg->latest_attention_transfer_;
}
void LatestAttentionTransferResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
LatestAttentionTransferResponse::LatestAttentionTransferResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.LatestAttentionTransferResponse)
}
LatestAttentionTransferResponse::LatestAttentionTransferResponse(const LatestAttentionTransferResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  if (from._internal_has_latest_attention_transfer()) {
    latest_attention_transfer_ = new ::Anki::Vector::external_interface::LatestAttentionTransfer(*from.latest_attention_transfer_);
  } else {
    latest_attention_transfer_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.LatestAttentionTransferResponse)
}

void LatestAttentionTransferResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_LatestAttentionTransferResponse_messages_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&latest_attention_transfer_) -
      reinterpret_cast<char*>(&status_)) + sizeof(latest_attention_transfer_));
}

LatestAttentionTransferResponse::~LatestAttentionTransferResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.LatestAttentionTransferResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void LatestAttentionTransferResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
  if (this != internal_default_instance()) delete latest_attention_transfer_;
}

void LatestAttentionTransferResponse::ArenaDtor(void* object) {
  LatestAttentionTransferResponse* _this = reinterpret_cast< LatestAttentionTransferResponse* >(object);
  (void)_this;
}
void LatestAttentionTransferResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LatestAttentionTransferResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const LatestAttentionTransferResponse& LatestAttentionTransferResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LatestAttentionTransferResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void LatestAttentionTransferResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.LatestAttentionTransferResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  if (GetArena() == nullptr && latest_attention_transfer_ != nullptr) {
    delete latest_attention_transfer_;
  }
  latest_attention_transfer_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* LatestAttentionTransferResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.LatestAttentionTransfer latest_attention_transfer = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_latest_attention_transfer(), 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* LatestAttentionTransferResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.LatestAttentionTransferResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.LatestAttentionTransfer latest_attention_transfer = 2;
  if (this->has_latest_attention_transfer()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::latest_attention_transfer(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.LatestAttentionTransferResponse)
  return target;
}

size_t LatestAttentionTransferResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.LatestAttentionTransferResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.LatestAttentionTransfer latest_attention_transfer = 2;
  if (this->has_latest_attention_transfer()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *latest_attention_transfer_);
  }

  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 LatestAttentionTransferResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.LatestAttentionTransferResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const LatestAttentionTransferResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LatestAttentionTransferResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.LatestAttentionTransferResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.LatestAttentionTransferResponse)
    MergeFrom(*source);
  }
}

void LatestAttentionTransferResponse::MergeFrom(const LatestAttentionTransferResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.LatestAttentionTransferResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.has_latest_attention_transfer()) {
    _internal_mutable_latest_attention_transfer()->::Anki::Vector::external_interface::LatestAttentionTransfer::MergeFrom(from._internal_latest_attention_transfer());
  }
}

void LatestAttentionTransferResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.LatestAttentionTransferResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void LatestAttentionTransferResponse::CopyFrom(const LatestAttentionTransferResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.LatestAttentionTransferResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool LatestAttentionTransferResponse::IsInitialized() const {
  return true;
}

void LatestAttentionTransferResponse::InternalSwap(LatestAttentionTransferResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LatestAttentionTransferResponse, latest_attention_transfer_)
      + sizeof(LatestAttentionTransferResponse::latest_attention_transfer_)
      - PROTOBUF_FIELD_OFFSET(LatestAttentionTransferResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata LatestAttentionTransferResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void UpdateAndRestartRequest::InitAsDefaultInstance() {
}
class UpdateAndRestartRequest::_Internal {
 public:
};

UpdateAndRestartRequest::UpdateAndRestartRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UpdateAndRestartRequest)
}
UpdateAndRestartRequest::UpdateAndRestartRequest(const UpdateAndRestartRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UpdateAndRestartRequest)
}

void UpdateAndRestartRequest::SharedCtor() {
}

UpdateAndRestartRequest::~UpdateAndRestartRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.UpdateAndRestartRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void UpdateAndRestartRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void UpdateAndRestartRequest::ArenaDtor(void* object) {
  UpdateAndRestartRequest* _this = reinterpret_cast< UpdateAndRestartRequest* >(object);
  (void)_this;
}
void UpdateAndRestartRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void UpdateAndRestartRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const UpdateAndRestartRequest& UpdateAndRestartRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_UpdateAndRestartRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void UpdateAndRestartRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.UpdateAndRestartRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UpdateAndRestartRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* UpdateAndRestartRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.UpdateAndRestartRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.UpdateAndRestartRequest)
  return target;
}

size_t UpdateAndRestartRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.UpdateAndRestartRequest)
  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;

  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 UpdateAndRestartRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.UpdateAndRestartRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const UpdateAndRestartRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<UpdateAndRestartRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.UpdateAndRestartRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.UpdateAndRestartRequest)
    MergeFrom(*source);
  }
}

void UpdateAndRestartRequest::MergeFrom(const UpdateAndRestartRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.UpdateAndRestartRequest)
  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;

}

void UpdateAndRestartRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.UpdateAndRestartRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void UpdateAndRestartRequest::CopyFrom(const UpdateAndRestartRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.UpdateAndRestartRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UpdateAndRestartRequest::IsInitialized() const {
  return true;
}

void UpdateAndRestartRequest::InternalSwap(UpdateAndRestartRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata UpdateAndRestartRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void UpdateAndRestartResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_UpdateAndRestartResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class UpdateAndRestartResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const UpdateAndRestartResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
UpdateAndRestartResponse::_Internal::status(const UpdateAndRestartResponse* msg) {
  return *msg->status_;
}
void UpdateAndRestartResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
UpdateAndRestartResponse::UpdateAndRestartResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UpdateAndRestartResponse)
}
UpdateAndRestartResponse::UpdateAndRestartResponse(const UpdateAndRestartResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UpdateAndRestartResponse)
}

void UpdateAndRestartResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UpdateAndRestartResponse_messages_2eproto.base);
  status_ = nullptr;
}

UpdateAndRestartResponse::~UpdateAndRestartResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.UpdateAndRestartResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void UpdateAndRestartResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete status_;
}

void UpdateAndRestartResponse::ArenaDtor(void* object) {
  UpdateAndRestartResponse* _this = reinterpret_cast< UpdateAndRestartResponse* >(object);
  (void)_this;
}
void UpdateAndRestartResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void UpdateAndRestartResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const UpdateAndRestartResponse& UpdateAndRestartResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_UpdateAndRestartResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void UpdateAndRestartResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.UpdateAndRestartResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UpdateAndRestartResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), 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* UpdateAndRestartResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.UpdateAndRestartResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Anki.Vector.external_interface.UpdateAndRestartResponse)
  return target;
}

size_t UpdateAndRestartResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.UpdateAndRestartResponse)
  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;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 UpdateAndRestartResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.UpdateAndRestartResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const UpdateAndRestartResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<UpdateAndRestartResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.UpdateAndRestartResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.UpdateAndRestartResponse)
    MergeFrom(*source);
  }
}

void UpdateAndRestartResponse::MergeFrom(const UpdateAndRestartResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.UpdateAndRestartResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void UpdateAndRestartResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.UpdateAndRestartResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void UpdateAndRestartResponse::CopyFrom(const UpdateAndRestartResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.UpdateAndRestartResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UpdateAndRestartResponse::IsInitialized() const {
  return true;
}

void UpdateAndRestartResponse::InternalSwap(UpdateAndRestartResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata UpdateAndRestartResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CheckUpdateStatusRequest::InitAsDefaultInstance() {
}
class CheckUpdateStatusRequest::_Internal {
 public:
};

CheckUpdateStatusRequest::CheckUpdateStatusRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CheckUpdateStatusRequest)
}
CheckUpdateStatusRequest::CheckUpdateStatusRequest(const CheckUpdateStatusRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CheckUpdateStatusRequest)
}

void CheckUpdateStatusRequest::SharedCtor() {
}

CheckUpdateStatusRequest::~CheckUpdateStatusRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CheckUpdateStatusRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CheckUpdateStatusRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void CheckUpdateStatusRequest::ArenaDtor(void* object) {
  CheckUpdateStatusRequest* _this = reinterpret_cast< CheckUpdateStatusRequest* >(object);
  (void)_this;
}
void CheckUpdateStatusRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CheckUpdateStatusRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CheckUpdateStatusRequest& CheckUpdateStatusRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CheckUpdateStatusRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void CheckUpdateStatusRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CheckUpdateStatusRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CheckUpdateStatusRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* CheckUpdateStatusRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CheckUpdateStatusRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.CheckUpdateStatusRequest)
  return target;
}

size_t CheckUpdateStatusRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CheckUpdateStatusRequest)
  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;

  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 CheckUpdateStatusRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CheckUpdateStatusRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const CheckUpdateStatusRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CheckUpdateStatusRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CheckUpdateStatusRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CheckUpdateStatusRequest)
    MergeFrom(*source);
  }
}

void CheckUpdateStatusRequest::MergeFrom(const CheckUpdateStatusRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CheckUpdateStatusRequest)
  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;

}

void CheckUpdateStatusRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CheckUpdateStatusRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CheckUpdateStatusRequest::CopyFrom(const CheckUpdateStatusRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CheckUpdateStatusRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CheckUpdateStatusRequest::IsInitialized() const {
  return true;
}

void CheckUpdateStatusRequest::InternalSwap(CheckUpdateStatusRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CheckUpdateStatusRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CheckUpdateStatusResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_CheckUpdateStatusResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class CheckUpdateStatusResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const CheckUpdateStatusResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
CheckUpdateStatusResponse::_Internal::status(const CheckUpdateStatusResponse* msg) {
  return *msg->status_;
}
void CheckUpdateStatusResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
CheckUpdateStatusResponse::CheckUpdateStatusResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CheckUpdateStatusResponse)
}
CheckUpdateStatusResponse::CheckUpdateStatusResponse(const CheckUpdateStatusResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  update_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_update_version().empty()) {
    update_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_update_version(),
      GetArena());
  }
  update_phase_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_update_phase().empty()) {
    update_phase_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_update_phase(),
      GetArena());
  }
  error_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_error().empty()) {
    error_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_error(),
      GetArena());
  }
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  ::memcpy(&expected_, &from.expected_,
    static_cast<size_t>(reinterpret_cast<char*>(&update_status_) -
    reinterpret_cast<char*>(&expected_)) + sizeof(update_status_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CheckUpdateStatusResponse)
}

void CheckUpdateStatusResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CheckUpdateStatusResponse_messages_2eproto.base);
  update_version_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  update_phase_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  error_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&update_status_) -
      reinterpret_cast<char*>(&status_)) + sizeof(update_status_));
}

CheckUpdateStatusResponse::~CheckUpdateStatusResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CheckUpdateStatusResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CheckUpdateStatusResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  update_version_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  update_phase_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  error_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete status_;
}

void CheckUpdateStatusResponse::ArenaDtor(void* object) {
  CheckUpdateStatusResponse* _this = reinterpret_cast< CheckUpdateStatusResponse* >(object);
  (void)_this;
}
void CheckUpdateStatusResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CheckUpdateStatusResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CheckUpdateStatusResponse& CheckUpdateStatusResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CheckUpdateStatusResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void CheckUpdateStatusResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CheckUpdateStatusResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  update_version_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  update_phase_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  error_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  ::memset(&expected_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&update_status_) -
      reinterpret_cast<char*>(&expected_)) + sizeof(update_status_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CheckUpdateStatusResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CheckUpdateStatusResponse.UpdateStatus update_status = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_update_status(static_cast<::Anki::Vector::external_interface::CheckUpdateStatusResponse_UpdateStatus>(val));
        } else goto handle_unusual;
        continue;
      // int64 expected = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          expected_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int64 progress = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          progress_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string update_version = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          auto str = _internal_mutable_update_version();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.CheckUpdateStatusResponse.update_version"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string update_phase = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          auto str = _internal_mutable_update_phase();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.CheckUpdateStatusResponse.update_phase"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string error = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          auto str = _internal_mutable_error();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.CheckUpdateStatusResponse.error"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int64 exit_code = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          exit_code_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* CheckUpdateStatusResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CheckUpdateStatusResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.CheckUpdateStatusResponse.UpdateStatus update_status = 2;
  if (this->update_status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_update_status(), target);
  }

  // int64 expected = 3;
  if (this->expected() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_expected(), target);
  }

  // int64 progress = 4;
  if (this->progress() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(4, this->_internal_progress(), target);
  }

  // string update_version = 5;
  if (this->update_version().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_update_version().data(), static_cast<int>(this->_internal_update_version().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.CheckUpdateStatusResponse.update_version");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_update_version(), target);
  }

  // string update_phase = 6;
  if (this->update_phase().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_update_phase().data(), static_cast<int>(this->_internal_update_phase().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.CheckUpdateStatusResponse.update_phase");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_update_phase(), target);
  }

  // string error = 7;
  if (this->error().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_error().data(), static_cast<int>(this->_internal_error().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.CheckUpdateStatusResponse.error");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_error(), target);
  }

  // int64 exit_code = 8;
  if (this->exit_code() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(8, this->_internal_exit_code(), 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:Anki.Vector.external_interface.CheckUpdateStatusResponse)
  return target;
}

size_t CheckUpdateStatusResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CheckUpdateStatusResponse)
  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 update_version = 5;
  if (this->update_version().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_update_version());
  }

  // string update_phase = 6;
  if (this->update_phase().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_update_phase());
  }

  // string error = 7;
  if (this->error().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_error());
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // int64 expected = 3;
  if (this->expected() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
        this->_internal_expected());
  }

  // int64 progress = 4;
  if (this->progress() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
        this->_internal_progress());
  }

  // int64 exit_code = 8;
  if (this->exit_code() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
        this->_internal_exit_code());
  }

  // .Anki.Vector.external_interface.CheckUpdateStatusResponse.UpdateStatus update_status = 2;
  if (this->update_status() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_update_status());
  }

  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 CheckUpdateStatusResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CheckUpdateStatusResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const CheckUpdateStatusResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CheckUpdateStatusResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CheckUpdateStatusResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CheckUpdateStatusResponse)
    MergeFrom(*source);
  }
}

void CheckUpdateStatusResponse::MergeFrom(const CheckUpdateStatusResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CheckUpdateStatusResponse)
  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.update_version().size() > 0) {
    _internal_set_update_version(from._internal_update_version());
  }
  if (from.update_phase().size() > 0) {
    _internal_set_update_phase(from._internal_update_phase());
  }
  if (from.error().size() > 0) {
    _internal_set_error(from._internal_error());
  }
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.expected() != 0) {
    _internal_set_expected(from._internal_expected());
  }
  if (from.progress() != 0) {
    _internal_set_progress(from._internal_progress());
  }
  if (from.exit_code() != 0) {
    _internal_set_exit_code(from._internal_exit_code());
  }
  if (from.update_status() != 0) {
    _internal_set_update_status(from._internal_update_status());
  }
}

void CheckUpdateStatusResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CheckUpdateStatusResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CheckUpdateStatusResponse::CopyFrom(const CheckUpdateStatusResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CheckUpdateStatusResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CheckUpdateStatusResponse::IsInitialized() const {
  return true;
}

void CheckUpdateStatusResponse::InternalSwap(CheckUpdateStatusResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  update_version_.Swap(&other->update_version_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  update_phase_.Swap(&other->update_phase_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  error_.Swap(&other->error_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CheckUpdateStatusResponse, update_status_)
      + sizeof(CheckUpdateStatusResponse::update_status_)
      - PROTOBUF_FIELD_OFFSET(CheckUpdateStatusResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CheckUpdateStatusResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void UploadDebugLogsRequest::InitAsDefaultInstance() {
}
class UploadDebugLogsRequest::_Internal {
 public:
};

UploadDebugLogsRequest::UploadDebugLogsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UploadDebugLogsRequest)
}
UploadDebugLogsRequest::UploadDebugLogsRequest(const UploadDebugLogsRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UploadDebugLogsRequest)
}

void UploadDebugLogsRequest::SharedCtor() {
}

UploadDebugLogsRequest::~UploadDebugLogsRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.UploadDebugLogsRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void UploadDebugLogsRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void UploadDebugLogsRequest::ArenaDtor(void* object) {
  UploadDebugLogsRequest* _this = reinterpret_cast< UploadDebugLogsRequest* >(object);
  (void)_this;
}
void UploadDebugLogsRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void UploadDebugLogsRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const UploadDebugLogsRequest& UploadDebugLogsRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_UploadDebugLogsRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void UploadDebugLogsRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.UploadDebugLogsRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UploadDebugLogsRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* UploadDebugLogsRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.UploadDebugLogsRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.UploadDebugLogsRequest)
  return target;
}

size_t UploadDebugLogsRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.UploadDebugLogsRequest)
  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;

  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 UploadDebugLogsRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.UploadDebugLogsRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const UploadDebugLogsRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<UploadDebugLogsRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.UploadDebugLogsRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.UploadDebugLogsRequest)
    MergeFrom(*source);
  }
}

void UploadDebugLogsRequest::MergeFrom(const UploadDebugLogsRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.UploadDebugLogsRequest)
  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;

}

void UploadDebugLogsRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.UploadDebugLogsRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void UploadDebugLogsRequest::CopyFrom(const UploadDebugLogsRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.UploadDebugLogsRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UploadDebugLogsRequest::IsInitialized() const {
  return true;
}

void UploadDebugLogsRequest::InternalSwap(UploadDebugLogsRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata UploadDebugLogsRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void UploadDebugLogsResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_UploadDebugLogsResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class UploadDebugLogsResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const UploadDebugLogsResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
UploadDebugLogsResponse::_Internal::status(const UploadDebugLogsResponse* msg) {
  return *msg->status_;
}
void UploadDebugLogsResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
UploadDebugLogsResponse::UploadDebugLogsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.UploadDebugLogsResponse)
}
UploadDebugLogsResponse::UploadDebugLogsResponse(const UploadDebugLogsResponse& 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());
  }
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.UploadDebugLogsResponse)
}

void UploadDebugLogsResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_UploadDebugLogsResponse_messages_2eproto.base);
  url_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  status_ = nullptr;
}

UploadDebugLogsResponse::~UploadDebugLogsResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.UploadDebugLogsResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void UploadDebugLogsResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  url_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete status_;
}

void UploadDebugLogsResponse::ArenaDtor(void* object) {
  UploadDebugLogsResponse* _this = reinterpret_cast< UploadDebugLogsResponse* >(object);
  (void)_this;
}
void UploadDebugLogsResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void UploadDebugLogsResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const UploadDebugLogsResponse& UploadDebugLogsResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_UploadDebugLogsResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void UploadDebugLogsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.UploadDebugLogsResponse)
  ::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());
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UploadDebugLogsResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string url = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_url();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.UploadDebugLogsResponse.url"));
          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* UploadDebugLogsResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.UploadDebugLogsResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // string url = 2;
  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,
      "Anki.Vector.external_interface.UploadDebugLogsResponse.url");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_url(), 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:Anki.Vector.external_interface.UploadDebugLogsResponse)
  return target;
}

size_t UploadDebugLogsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.UploadDebugLogsResponse)
  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 = 2;
  if (this->url().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_url());
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  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 UploadDebugLogsResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.UploadDebugLogsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const UploadDebugLogsResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<UploadDebugLogsResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.UploadDebugLogsResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.UploadDebugLogsResponse)
    MergeFrom(*source);
  }
}

void UploadDebugLogsResponse::MergeFrom(const UploadDebugLogsResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.UploadDebugLogsResponse)
  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.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

void UploadDebugLogsResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.UploadDebugLogsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void UploadDebugLogsResponse::CopyFrom(const UploadDebugLogsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.UploadDebugLogsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UploadDebugLogsResponse::IsInitialized() const {
  return true;
}

void UploadDebugLogsResponse::InternalSwap(UploadDebugLogsResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  url_.Swap(&other->url_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  swap(status_, other->status_);
}

::PROTOBUF_NAMESPACE_ID::Metadata UploadDebugLogsResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CheckCloudRequest::InitAsDefaultInstance() {
}
class CheckCloudRequest::_Internal {
 public:
};

CheckCloudRequest::CheckCloudRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CheckCloudRequest)
}
CheckCloudRequest::CheckCloudRequest(const CheckCloudRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CheckCloudRequest)
}

void CheckCloudRequest::SharedCtor() {
}

CheckCloudRequest::~CheckCloudRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CheckCloudRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CheckCloudRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void CheckCloudRequest::ArenaDtor(void* object) {
  CheckCloudRequest* _this = reinterpret_cast< CheckCloudRequest* >(object);
  (void)_this;
}
void CheckCloudRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CheckCloudRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CheckCloudRequest& CheckCloudRequest::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CheckCloudRequest_messages_2eproto.base);
  return *internal_default_instance();
}


void CheckCloudRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CheckCloudRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CheckCloudRequest::_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);
        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;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* CheckCloudRequest::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CheckCloudRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  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:Anki.Vector.external_interface.CheckCloudRequest)
  return target;
}

size_t CheckCloudRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CheckCloudRequest)
  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;

  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 CheckCloudRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CheckCloudRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const CheckCloudRequest* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CheckCloudRequest>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CheckCloudRequest)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CheckCloudRequest)
    MergeFrom(*source);
  }
}

void CheckCloudRequest::MergeFrom(const CheckCloudRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CheckCloudRequest)
  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;

}

void CheckCloudRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CheckCloudRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CheckCloudRequest::CopyFrom(const CheckCloudRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CheckCloudRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CheckCloudRequest::IsInitialized() const {
  return true;
}

void CheckCloudRequest::InternalSwap(CheckCloudRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CheckCloudRequest::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void CheckCloudResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_CheckCloudResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class CheckCloudResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const CheckCloudResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
CheckCloudResponse::_Internal::status(const CheckCloudResponse* msg) {
  return *msg->status_;
}
void CheckCloudResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
CheckCloudResponse::CheckCloudResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CheckCloudResponse)
}
CheckCloudResponse::CheckCloudResponse(const CheckCloudResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  status_message_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_status_message().empty()) {
    status_message_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_status_message(),
      GetArena());
  }
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  ::memcpy(&code_, &from.code_,
    static_cast<size_t>(reinterpret_cast<char*>(&expected_packets_) -
    reinterpret_cast<char*>(&code_)) + sizeof(expected_packets_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CheckCloudResponse)
}

void CheckCloudResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CheckCloudResponse_messages_2eproto.base);
  status_message_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&expected_packets_) -
      reinterpret_cast<char*>(&status_)) + sizeof(expected_packets_));
}

CheckCloudResponse::~CheckCloudResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CheckCloudResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void CheckCloudResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  status_message_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete status_;
}

void CheckCloudResponse::ArenaDtor(void* object) {
  CheckCloudResponse* _this = reinterpret_cast< CheckCloudResponse* >(object);
  (void)_this;
}
void CheckCloudResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void CheckCloudResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CheckCloudResponse& CheckCloudResponse::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CheckCloudResponse_messages_2eproto.base);
  return *internal_default_instance();
}


void CheckCloudResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CheckCloudResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  status_message_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  ::memset(&code_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&expected_packets_) -
      reinterpret_cast<char*>(&code_)) + sizeof(expected_packets_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CheckCloudResponse::_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) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CheckCloudResponse.ConnectionCode code = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_code(static_cast<::Anki::Vector::external_interface::CheckCloudResponse_ConnectionCode>(val));
        } else goto handle_unusual;
        continue;
      // string status_message = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          auto str = _internal_mutable_status_message();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.CheckCloudResponse.status_message"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 num_packets = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          num_packets_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 expected_packets = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          expected_packets_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* CheckCloudResponse::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface.CheckCloudResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // .Anki.Vector.external_interface.CheckCloudResponse.ConnectionCode code = 2;
  if (this->code() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_code(), target);
  }

  // string status_message = 3;
  if (this->status_message().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_status_message().data(), static_cast<int>(this->_internal_status_message().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.CheckCloudResponse.status_message");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_status_message(), target);
  }

  // int32 num_packets = 4;
  if (this->num_packets() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_num_packets(), target);
  }

  // int32 expected_packets = 5;
  if (this->expected_packets() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_expected_packets(), 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:Anki.Vector.external_interface.CheckCloudResponse)
  return target;
}

size_t CheckCloudResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CheckCloudResponse)
  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 status_message = 3;
  if (this->status_message().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_status_message());
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // .Anki.Vector.external_interface.CheckCloudResponse.ConnectionCode code = 2;
  if (this->code() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_code());
  }

  // int32 num_packets = 4;
  if (this->num_packets() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_num_packets());
  }

  // int32 expected_packets = 5;
  if (this->expected_packets() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_expected_packets());
  }

  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 CheckCloudResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface.CheckCloudResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const CheckCloudResponse* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CheckCloudResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface.CheckCloudResponse)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface.CheckCloudResponse)
    MergeFrom(*source);
  }
}

void CheckCloudResponse::MergeFrom(const CheckCloudResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface.CheckCloudResponse)
  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.status_message().size() > 0) {
    _internal_set_status_message(from._internal_status_message());
  }
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.code() != 0) {
    _internal_set_code(from._internal_code());
  }
  if (from.num_packets() != 0) {
    _internal_set_num_packets(from._internal_num_packets());
  }
  if (from.expected_packets() != 0) {
    _internal_set_expected_packets(from._internal_expected_packets());
  }
}

void CheckCloudResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface.CheckCloudResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CheckCloudResponse::CopyFrom(const CheckCloudResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CheckCloudResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CheckCloudResponse::IsInitialized() const {
  return true;
}

void CheckCloudResponse::InternalSwap(CheckCloudResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  status_message_.Swap(&other->status_message_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CheckCloudResponse, expected_packets_)
      + sizeof(CheckCloudResponse::expected_packets_)
      - PROTOBUF_FIELD_OFFSET(CheckCloudResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CheckCloudResponse::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void _FakeAlexaUsage::InitAsDefaultInstance() {
}
class _FakeAlexaUsage::_Internal {
 public:
};

_FakeAlexaUsage::_FakeAlexaUsage(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface._FakeAlexaUsage)
}
_FakeAlexaUsage::_FakeAlexaUsage(const _FakeAlexaUsage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ignored_ = from.ignored_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface._FakeAlexaUsage)
}

void _FakeAlexaUsage::SharedCtor() {
  ignored_ = 0;
}

_FakeAlexaUsage::~_FakeAlexaUsage() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface._FakeAlexaUsage)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void _FakeAlexaUsage::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void _FakeAlexaUsage::ArenaDtor(void* object) {
  _FakeAlexaUsage* _this = reinterpret_cast< _FakeAlexaUsage* >(object);
  (void)_this;
}
void _FakeAlexaUsage::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void _FakeAlexaUsage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const _FakeAlexaUsage& _FakeAlexaUsage::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info__FakeAlexaUsage_messages_2eproto.base);
  return *internal_default_instance();
}


void _FakeAlexaUsage::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface._FakeAlexaUsage)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ignored_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* _FakeAlexaUsage::_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) {
      // .Anki.Vector.external_interface.AlexaAuthState ignored = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_ignored(static_cast<::Anki::Vector::external_interface::AlexaAuthState>(val));
        } 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* _FakeAlexaUsage::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Anki.Vector.external_interface._FakeAlexaUsage)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Anki.Vector.external_interface.AlexaAuthState ignored = 1;
  if (this->ignored() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_ignored(), 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:Anki.Vector.external_interface._FakeAlexaUsage)
  return target;
}

size_t _FakeAlexaUsage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface._FakeAlexaUsage)
  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;

  // .Anki.Vector.external_interface.AlexaAuthState ignored = 1;
  if (this->ignored() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_ignored());
  }

  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 _FakeAlexaUsage::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Anki.Vector.external_interface._FakeAlexaUsage)
  GOOGLE_DCHECK_NE(&from, this);
  const _FakeAlexaUsage* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<_FakeAlexaUsage>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Anki.Vector.external_interface._FakeAlexaUsage)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Anki.Vector.external_interface._FakeAlexaUsage)
    MergeFrom(*source);
  }
}

void _FakeAlexaUsage::MergeFrom(const _FakeAlexaUsage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Anki.Vector.external_interface._FakeAlexaUsage)
  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.ignored() != 0) {
    _internal_set_ignored(from._internal_ignored());
  }
}

void _FakeAlexaUsage::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Anki.Vector.external_interface._FakeAlexaUsage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void _FakeAlexaUsage::CopyFrom(const _FakeAlexaUsage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface._FakeAlexaUsage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool _FakeAlexaUsage::IsInitialized() const {
  return true;
}

void _FakeAlexaUsage::InternalSwap(_FakeAlexaUsage* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(ignored_, other->ignored_);
}

::PROTOBUF_NAMESPACE_ID::Metadata _FakeAlexaUsage::GetMetadata() const {
  return GetMetadataStatic();
}



// Begin code inserted by Anki plugin.
AnimationTrigger::AnimationTrigger( const std::string& name )
  : AnimationTrigger(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_name( name );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
Animation::Animation( const std::string& name )
  : Animation(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_name( name );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DriveWheelsRequest::DriveWheelsRequest( float left_wheel_mmps, float right_wheel_mmps, float left_wheel_mmps2, float right_wheel_mmps2 )
  : DriveWheelsRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_left_wheel_mmps( left_wheel_mmps );
  set_right_wheel_mmps( right_wheel_mmps );
  set_left_wheel_mmps2( left_wheel_mmps2 );
  set_right_wheel_mmps2( right_wheel_mmps2 );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DriveWheelsResponse::DriveWheelsResponse( ResponseStatus* status )
  : DriveWheelsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
MoveHeadRequest::MoveHeadRequest( float speed_rad_per_sec )
  : MoveHeadRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_speed_rad_per_sec( speed_rad_per_sec );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
MoveHeadResponse::MoveHeadResponse( ResponseStatus* status )
  : MoveHeadResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
MoveLiftRequest::MoveLiftRequest( float speed_rad_per_sec )
  : MoveLiftRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_speed_rad_per_sec( speed_rad_per_sec );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
MoveLiftResponse::MoveLiftResponse( ResponseStatus* status )
  : MoveLiftResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
StopAllMotorsResponse::StopAllMotorsResponse( ResponseStatus* status )
  : StopAllMotorsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PlayAnimationTriggerRequest::PlayAnimationTriggerRequest( AnimationTrigger* animation_trigger, ::google::protobuf::uint32 loops, bool use_lift_safe, bool ignore_body_track, bool ignore_head_track, bool ignore_lift_track )
  : PlayAnimationTriggerRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_animation_trigger( animation_trigger );
  set_loops( loops );
  set_use_lift_safe( use_lift_safe );
  set_ignore_body_track( ignore_body_track );
  set_ignore_head_track( ignore_head_track );
  set_ignore_lift_track( ignore_lift_track );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PlayAnimationRequest::PlayAnimationRequest( Animation* animation, ::google::protobuf::uint32 loops, bool ignore_body_track, bool ignore_head_track, bool ignore_lift_track )
  : PlayAnimationRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_animation( animation );
  set_loops( loops );
  set_ignore_body_track( ignore_body_track );
  set_ignore_head_track( ignore_head_track );
  set_ignore_lift_track( ignore_lift_track );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PlayAnimationResponse::PlayAnimationResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BehaviorResults result, Animation* animation )
  : PlayAnimationResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_result( result );
  set_allocated_animation( animation );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DisplayFaceImageRGBRequest::DisplayFaceImageRGBRequest( const std::string& face_data, ::google::protobuf::uint32 duration_ms, bool interrupt_running )
  : DisplayFaceImageRGBRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_face_data( face_data );
  set_duration_ms( duration_ms );
  set_interrupt_running( interrupt_running );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DisplayFaceImageRGBResponse::DisplayFaceImageRGBResponse( ResponseStatus* status )
  : DisplayFaceImageRGBResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
Status::Status( FeatureStatus* feature_status )
  : Status(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_feature_status( feature_status );
}
Status::Status( MeetVictorFaceScanStarted* meet_victor_face_scan_started )
  : Status(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_meet_victor_face_scan_started( meet_victor_face_scan_started );
}
Status::Status( MeetVictorFaceScanComplete* meet_victor_face_scan_complete )
  : Status(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_meet_victor_face_scan_complete( meet_victor_face_scan_complete );
}
Status::Status( FaceEnrollmentCompleted* face_enrollment_completed )
  : Status(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_face_enrollment_completed( face_enrollment_completed );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
WakeWord::WakeWord( WakeWordBegin* wake_word_begin )
  : WakeWord(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_wake_word_begin( wake_word_begin );
}
WakeWord::WakeWord( WakeWordEnd* wake_word_end )
  : WakeWord(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_wake_word_end( wake_word_end );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
TimeStampedStatus::TimeStampedStatus( Status* status, ::google::protobuf::uint32 timestamp_utc )
  : TimeStampedStatus(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_timestamp_utc( timestamp_utc );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PoseStruct::PoseStruct( float x, float y, float z, float q0, float q1, float q2, float q3, ::google::protobuf::uint32 origin_id )
  : PoseStruct(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_x( x );
  set_y( y );
  set_z( z );
  set_q0( q0 );
  set_q1( q1 );
  set_q2( q2 );
  set_q3( q3 );
  set_origin_id( origin_id );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
AccelData::AccelData( float x, float y, float z )
  : AccelData(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_x( x );
  set_y( y );
  set_z( z );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
GyroData::GyroData( float x, float y, float z )
  : GyroData(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_x( x );
  set_y( y );
  set_z( z );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ProxData::ProxData( ::google::protobuf::uint32 distance_mm, float signal_quality, bool unobstructed, bool found_object, bool is_lift_in_fov )
  : ProxData(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_distance_mm( distance_mm );
  set_signal_quality( signal_quality );
  set_unobstructed( unobstructed );
  set_found_object( found_object );
  set_is_lift_in_fov( is_lift_in_fov );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
TouchData::TouchData( ::google::protobuf::uint32 raw_touch_value, bool is_being_touched )
  : TouchData(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_raw_touch_value( raw_touch_value );
  set_is_being_touched( is_being_touched );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
RobotState::RobotState( PoseStruct* pose, float pose_angle_rad, float pose_pitch_rad, float left_wheel_speed_mmps, float right_wheel_speed_mmps, float head_angle_rad, float lift_height_mm, AccelData* accel, GyroData* gyro, ::google::protobuf::int32 carrying_object_id, ::google::protobuf::int32 carrying_object_on_top_id, ::google::protobuf::int32 head_tracking_object_id, ::google::protobuf::int32 localized_to_object_id, ::google::protobuf::uint32 last_image_time_stamp, ::google::protobuf::uint32 status, ProxData* prox_data, TouchData* touch_data )
  : RobotState(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_pose( pose );
  set_pose_angle_rad( pose_angle_rad );
  set_pose_pitch_rad( pose_pitch_rad );
  set_left_wheel_speed_mmps( left_wheel_speed_mmps );
  set_right_wheel_speed_mmps( right_wheel_speed_mmps );
  set_head_angle_rad( head_angle_rad );
  set_lift_height_mm( lift_height_mm );
  set_allocated_accel( accel );
  set_allocated_gyro( gyro );
  set_carrying_object_id( carrying_object_id );
  set_carrying_object_on_top_id( carrying_object_on_top_id );
  set_head_tracking_object_id( head_tracking_object_id );
  set_localized_to_object_id( localized_to_object_id );
  set_last_image_time_stamp( last_image_time_stamp );
  set_status( status );
  set_allocated_prox_data( prox_data );
  set_allocated_touch_data( touch_data );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CladPoint::CladPoint( float x, float y )
  : CladPoint(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_x( x );
  set_y( y );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CladRect::CladRect( float x_top_left, float y_top_left, float width, float height )
  : CladRect(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_x_top_left( x_top_left );
  set_y_top_left( y_top_left );
  set_width( width );
  set_height( height );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
RobotObservedMotion::RobotObservedMotion( ::google::protobuf::uint32 timestamp, float img_area, ::google::protobuf::int32 img_x, ::google::protobuf::int32 img_y, float ground_area, ::google::protobuf::int32 ground_x, ::google::protobuf::int32 ground_y, float top_img_area, ::google::protobuf::int32 top_img_x, ::google::protobuf::int32 top_img_y, float bottom_img_area, ::google::protobuf::int32 bottom_img_x, ::google::protobuf::int32 bottom_img_y, float left_img_area, ::google::protobuf::int32 left_img_x, ::google::protobuf::int32 left_img_y, float right_img_area, ::google::protobuf::int32 right_img_x, ::google::protobuf::int32 right_img_y )
  : RobotObservedMotion(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_timestamp( timestamp );
  set_img_area( img_area );
  set_img_x( img_x );
  set_img_y( img_y );
  set_ground_area( ground_area );
  set_ground_x( ground_x );
  set_ground_y( ground_y );
  set_top_img_area( top_img_area );
  set_top_img_x( top_img_x );
  set_top_img_y( top_img_y );
  set_bottom_img_area( bottom_img_area );
  set_bottom_img_x( bottom_img_x );
  set_bottom_img_y( bottom_img_y );
  set_left_img_area( left_img_area );
  set_left_img_x( left_img_x );
  set_left_img_y( left_img_y );
  set_right_img_area( right_img_area );
  set_right_img_x( right_img_x );
  set_right_img_y( right_img_y );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
RobotErasedEnrolledFace::RobotErasedEnrolledFace( ::google::protobuf::int32 face_id, const std::string& name )
  : RobotErasedEnrolledFace(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_face_id( face_id );
  set_name( name );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
UnexpectedMovement::UnexpectedMovement( ::google::protobuf::uint32 timestamp, ::Anki::Vector::external_interface::UnexpectedMovementType movement_type, ::Anki::Vector::external_interface::UnexpectedMovementSide movement_side )
  : UnexpectedMovement(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_timestamp( timestamp );
  set_movement_type( movement_type );
  set_movement_side( movement_side );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
RobotChangedObservedFaceID::RobotChangedObservedFaceID( ::google::protobuf::int32 old_id, ::google::protobuf::int32 new_id )
  : RobotChangedObservedFaceID(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_old_id( old_id );
  set_new_id( new_id );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
FaceEnrollmentCompleted::FaceEnrollmentCompleted( ::Anki::Vector::external_interface::FaceEnrollmentResult result, ::google::protobuf::int32 face_id, const std::string& name )
  : FaceEnrollmentCompleted(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_result( result );
  set_face_id( face_id );
  set_name( name );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CancelFaceEnrollmentResponse::CancelFaceEnrollmentResponse( ResponseStatus* status )
  : CancelFaceEnrollmentResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
LoadedKnownFace::LoadedKnownFace( ::google::protobuf::int64 seconds_since_first_enrolled, ::google::protobuf::int64 seconds_since_last_updated, ::google::protobuf::int64 seconds_since_last_seen, ::google::protobuf::int64 last_seen_seconds_since_epoch, ::google::protobuf::int32 face_id, const std::string& name )
  : LoadedKnownFace(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_seconds_since_first_enrolled( seconds_since_first_enrolled );
  set_seconds_since_last_updated( seconds_since_last_updated );
  set_seconds_since_last_seen( seconds_since_last_seen );
  set_last_seen_seconds_since_epoch( last_seen_seconds_since_epoch );
  set_face_id( face_id );
  set_name( name );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
RobotRenamedEnrolledFace::RobotRenamedEnrolledFace( ::google::protobuf::int32 face_id, const std::string& name )
  : RobotRenamedEnrolledFace(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_face_id( face_id );
  set_name( name );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
UpdateEnrolledFaceByIDRequest::UpdateEnrolledFaceByIDRequest( ::google::protobuf::int32 face_id, const std::string& old_name, const std::string& new_name )
  : UpdateEnrolledFaceByIDRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_face_id( face_id );
  set_old_name( old_name );
  set_new_name( new_name );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
UpdateEnrolledFaceByIDResponse::UpdateEnrolledFaceByIDResponse( ResponseStatus* status )
  : UpdateEnrolledFaceByIDResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
EraseEnrolledFaceByIDRequest::EraseEnrolledFaceByIDRequest( ::google::protobuf::int32 face_id )
  : EraseEnrolledFaceByIDRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_face_id( face_id );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
EraseEnrolledFaceByIDResponse::EraseEnrolledFaceByIDResponse( ResponseStatus* status )
  : EraseEnrolledFaceByIDResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
EraseAllEnrolledFacesResponse::EraseAllEnrolledFacesResponse( ResponseStatus* status )
  : EraseAllEnrolledFacesResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SetFaceToEnrollRequest::SetFaceToEnrollRequest( const std::string& name, ::google::protobuf::int32 observed_id, ::google::protobuf::int32 save_id, bool save_to_robot, bool say_name, bool use_music )
  : SetFaceToEnrollRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_name( name );
  set_observed_id( observed_id );
  set_save_id( save_id );
  set_save_to_robot( save_to_robot );
  set_say_name( say_name );
  set_use_music( use_music );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SetFaceToEnrollResponse::SetFaceToEnrollResponse( ResponseStatus* status )
  : SetFaceToEnrollResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
EnrollFaceResponse::EnrollFaceResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BehaviorResults result )
  : EnrollFaceResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DriveOffChargerResponse::DriveOffChargerResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BehaviorResults result )
  : DriveOffChargerResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DriveOnChargerResponse::DriveOnChargerResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BehaviorResults result )
  : DriveOnChargerResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
FindFacesResponse::FindFacesResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BehaviorResults result )
  : FindFacesResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
LookAroundInPlaceResponse::LookAroundInPlaceResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BehaviorResults result )
  : LookAroundInPlaceResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
RollBlockResponse::RollBlockResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BehaviorResults result )
  : RollBlockResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
WakeWordEnd::WakeWordEnd( bool intent_heard, const std::string& intent_json )
  : WakeWordEnd(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_intent_heard( intent_heard );
  set_intent_json( intent_json );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
UserIntent::UserIntent( ::google::protobuf::uint32 intent_id, const std::string& json_data )
  : UserIntent(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_intent_id( intent_id );
  set_json_data( json_data );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PhotoInfo::PhotoInfo( ::google::protobuf::uint32 photo_id, ::google::protobuf::uint32 timestamp_utc, bool photo_copied_to_app, bool thumb_copied_to_app )
  : PhotoInfo(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_photo_id( photo_id );
  set_timestamp_utc( timestamp_utc );
  set_photo_copied_to_app( photo_copied_to_app );
  set_thumb_copied_to_app( thumb_copied_to_app );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PhotoRequest::PhotoRequest( ::google::protobuf::uint32 photo_id )
  : PhotoRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_photo_id( photo_id );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PhotoPathMessage::PhotoPathMessage( bool success, const std::string& full_path )
  : PhotoPathMessage(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_success( success );
  set_full_path( full_path );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PhotoResponse::PhotoResponse( ResponseStatus* status, bool success, const std::string& image )
  : PhotoResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_success( success );
  set_image( image );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ThumbnailRequest::ThumbnailRequest( ::google::protobuf::uint32 photo_id )
  : ThumbnailRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_photo_id( photo_id );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ThumbnailPathMessage::ThumbnailPathMessage( bool success, const std::string& full_path )
  : ThumbnailPathMessage(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_success( success );
  set_full_path( full_path );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ThumbnailResponse::ThumbnailResponse( ResponseStatus* status, bool success, const std::string& image )
  : ThumbnailResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_success( success );
  set_image( image );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DeletePhotoRequest::DeletePhotoRequest( ::google::protobuf::uint32 photo_id )
  : DeletePhotoRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_photo_id( photo_id );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DeletePhotoResponse::DeletePhotoResponse( ResponseStatus* status, bool success )
  : DeletePhotoResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_success( success );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PhotoTaken::PhotoTaken( ::google::protobuf::uint32 photo_id )
  : PhotoTaken(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_photo_id( photo_id );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PathMotionProfile::PathMotionProfile( float speed_mmps, float accel_mmps2, float decel_mmps2, float point_turn_speed_rad_per_sec, float point_turn_accel_rad_per_sec2, float point_turn_decel_rad_per_sec2, float dock_speed_mmps, float dock_accel_mmps2, float dock_decel_mmps2, float reverse_speed_mmps, bool is_custom )
  : PathMotionProfile(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_speed_mmps( speed_mmps );
  set_accel_mmps2( accel_mmps2 );
  set_decel_mmps2( decel_mmps2 );
  set_point_turn_speed_rad_per_sec( point_turn_speed_rad_per_sec );
  set_point_turn_accel_rad_per_sec2( point_turn_accel_rad_per_sec2 );
  set_point_turn_decel_rad_per_sec2( point_turn_decel_rad_per_sec2 );
  set_dock_speed_mmps( dock_speed_mmps );
  set_dock_accel_mmps2( dock_accel_mmps2 );
  set_dock_decel_mmps2( dock_decel_mmps2 );
  set_reverse_speed_mmps( reverse_speed_mmps );
  set_is_custom( is_custom );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ActionResult::ActionResult( ::Anki::Vector::external_interface::ActionResult::ActionResultCode code )
  : ActionResult(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_code( code );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CancelActionByIdTagRequest::CancelActionByIdTagRequest( ::google::protobuf::uint32 id_tag )
  : CancelActionByIdTagRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_id_tag( id_tag );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CancelActionByIdTagResponse::CancelActionByIdTagResponse( ResponseStatus* status )
  : CancelActionByIdTagResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CancelBehaviorResponse::CancelBehaviorResponse( ResponseStatus* status )
  : CancelBehaviorResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
GoToPoseRequest::GoToPoseRequest( float x_mm, float y_mm, float rad, PathMotionProfile* motion_prof, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries )
  : GoToPoseRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_x_mm( x_mm );
  set_y_mm( y_mm );
  set_rad( rad );
  set_allocated_motion_prof( motion_prof );
  set_id_tag( id_tag );
  set_num_retries( num_retries );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
GoToPoseResponse::GoToPoseResponse( ResponseStatus* status, ActionResult* result )
  : GoToPoseResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_allocated_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DockWithCubeRequest::DockWithCubeRequest( ::google::protobuf::int32 object_id, float distance_from_marker_mm, float approach_angle_rad, ::Anki::Vector::external_interface::AlignmentType alignment_type, bool use_approach_angle, bool use_pre_dock_pose, PathMotionProfile* motion_prof, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries )
  : DockWithCubeRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_object_id( object_id );
  set_distance_from_marker_mm( distance_from_marker_mm );
  set_approach_angle_rad( approach_angle_rad );
  set_alignment_type( alignment_type );
  set_use_approach_angle( use_approach_angle );
  set_use_pre_dock_pose( use_pre_dock_pose );
  set_allocated_motion_prof( motion_prof );
  set_id_tag( id_tag );
  set_num_retries( num_retries );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DockWithCubeResponse::DockWithCubeResponse( ResponseStatus* status, ActionResult* result )
  : DockWithCubeResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_allocated_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DriveStraightRequest::DriveStraightRequest( float speed_mmps, float dist_mm, bool should_play_animation, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries )
  : DriveStraightRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_speed_mmps( speed_mmps );
  set_dist_mm( dist_mm );
  set_should_play_animation( should_play_animation );
  set_id_tag( id_tag );
  set_num_retries( num_retries );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DriveStraightResponse::DriveStraightResponse( ResponseStatus* status, ActionResult* result )
  : DriveStraightResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_allocated_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
TurnInPlaceRequest::TurnInPlaceRequest( float angle_rad, float speed_rad_per_sec, float accel_rad_per_sec2, float tol_rad, ::google::protobuf::uint32 is_absolute, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries )
  : TurnInPlaceRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_angle_rad( angle_rad );
  set_speed_rad_per_sec( speed_rad_per_sec );
  set_accel_rad_per_sec2( accel_rad_per_sec2 );
  set_tol_rad( tol_rad );
  set_is_absolute( is_absolute );
  set_id_tag( id_tag );
  set_num_retries( num_retries );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
TurnInPlaceResponse::TurnInPlaceResponse( ResponseStatus* status, ActionResult* result )
  : TurnInPlaceResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_allocated_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SetHeadAngleRequest::SetHeadAngleRequest( float angle_rad, float max_speed_rad_per_sec, float accel_rad_per_sec2, float duration_sec, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries )
  : SetHeadAngleRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_angle_rad( angle_rad );
  set_max_speed_rad_per_sec( max_speed_rad_per_sec );
  set_accel_rad_per_sec2( accel_rad_per_sec2 );
  set_duration_sec( duration_sec );
  set_id_tag( id_tag );
  set_num_retries( num_retries );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SetHeadAngleResponse::SetHeadAngleResponse( ResponseStatus* status, ActionResult* result )
  : SetHeadAngleResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_allocated_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SetLiftHeightRequest::SetLiftHeightRequest( float height_mm, float max_speed_rad_per_sec, float accel_rad_per_sec2, float duration_sec, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries )
  : SetLiftHeightRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_height_mm( height_mm );
  set_max_speed_rad_per_sec( max_speed_rad_per_sec );
  set_accel_rad_per_sec2( accel_rad_per_sec2 );
  set_duration_sec( duration_sec );
  set_id_tag( id_tag );
  set_num_retries( num_retries );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SetLiftHeightResponse::SetLiftHeightResponse( ResponseStatus* status, ActionResult* result )
  : SetLiftHeightResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_allocated_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
TurnTowardsFaceRequest::TurnTowardsFaceRequest( ::google::protobuf::int32 face_id, float max_turn_angle_rad, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries )
  : TurnTowardsFaceRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_face_id( face_id );
  set_max_turn_angle_rad( max_turn_angle_rad );
  set_id_tag( id_tag );
  set_num_retries( num_retries );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
TurnTowardsFaceResponse::TurnTowardsFaceResponse( ResponseStatus* status, ActionResult* result )
  : TurnTowardsFaceResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_allocated_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
GoToObjectRequest::GoToObjectRequest( ::google::protobuf::int32 object_id, PathMotionProfile* motion_prof, float distance_from_object_origin_mm, bool use_pre_dock_pose, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries )
  : GoToObjectRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_object_id( object_id );
  set_allocated_motion_prof( motion_prof );
  set_distance_from_object_origin_mm( distance_from_object_origin_mm );
  set_use_pre_dock_pose( use_pre_dock_pose );
  set_id_tag( id_tag );
  set_num_retries( num_retries );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
GoToObjectResponse::GoToObjectResponse( ResponseStatus* status, ActionResult* result )
  : GoToObjectResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_allocated_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
RollObjectRequest::RollObjectRequest( ::google::protobuf::int32 object_id, PathMotionProfile* motion_prof, float approach_angle_rad, bool use_approach_angle, bool use_pre_dock_pose, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries )
  : RollObjectRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_object_id( object_id );
  set_allocated_motion_prof( motion_prof );
  set_approach_angle_rad( approach_angle_rad );
  set_use_approach_angle( use_approach_angle );
  set_use_pre_dock_pose( use_pre_dock_pose );
  set_id_tag( id_tag );
  set_num_retries( num_retries );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
RollObjectResponse::RollObjectResponse( ResponseStatus* status, ActionResult* result )
  : RollObjectResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_allocated_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PopAWheelieRequest::PopAWheelieRequest( ::google::protobuf::int32 object_id, PathMotionProfile* motion_prof, float approach_angle_rad, bool use_approach_angle, bool use_pre_dock_pose, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries )
  : PopAWheelieRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_object_id( object_id );
  set_allocated_motion_prof( motion_prof );
  set_approach_angle_rad( approach_angle_rad );
  set_use_approach_angle( use_approach_angle );
  set_use_pre_dock_pose( use_pre_dock_pose );
  set_id_tag( id_tag );
  set_num_retries( num_retries );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PopAWheelieResponse::PopAWheelieResponse( ResponseStatus* status, ActionResult* result )
  : PopAWheelieResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_allocated_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PickupObjectRequest::PickupObjectRequest( ::google::protobuf::int32 object_id, PathMotionProfile* motion_prof, float approach_angle_rad, bool use_approach_angle, bool use_pre_dock_pose, ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries )
  : PickupObjectRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_object_id( object_id );
  set_allocated_motion_prof( motion_prof );
  set_approach_angle_rad( approach_angle_rad );
  set_use_approach_angle( use_approach_angle );
  set_use_pre_dock_pose( use_pre_dock_pose );
  set_id_tag( id_tag );
  set_num_retries( num_retries );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PickupObjectResponse::PickupObjectResponse( ResponseStatus* status, ActionResult* result )
  : PickupObjectResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_allocated_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PlaceObjectOnGroundHereRequest::PlaceObjectOnGroundHereRequest( ::google::protobuf::int32 id_tag, ::google::protobuf::int32 num_retries )
  : PlaceObjectOnGroundHereRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_id_tag( id_tag );
  set_num_retries( num_retries );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
PlaceObjectOnGroundHereResponse::PlaceObjectOnGroundHereResponse( ResponseStatus* status, ActionResult* result )
  : PlaceObjectOnGroundHereResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_allocated_result( result );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
BatteryStateResponse::BatteryStateResponse( ResponseStatus* status, ::Anki::Vector::external_interface::BatteryLevel battery_level, float battery_volts, bool is_charging, bool is_on_charger_platform, float suggested_charger_sec, CubeBattery* cube_battery )
  : BatteryStateResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_battery_level( battery_level );
  set_battery_volts( battery_volts );
  set_is_charging( is_charging );
  set_is_on_charger_platform( is_on_charger_platform );
  set_suggested_charger_sec( suggested_charger_sec );
  set_allocated_cube_battery( cube_battery );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CubeBattery::CubeBattery( ::Anki::Vector::external_interface::CubeBattery::CubeBatteryLevel level, const std::string& factory_id, float battery_volts, float time_since_last_reading_sec )
  : CubeBattery(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_level( level );
  set_factory_id( factory_id );
  set_battery_volts( battery_volts );
  set_time_since_last_reading_sec( time_since_last_reading_sec );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
VersionStateResponse::VersionStateResponse( ResponseStatus* status, const std::string& os_version, const std::string& engine_build_id )
  : VersionStateResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_os_version( os_version );
  set_engine_build_id( engine_build_id );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SayTextRequest::SayTextRequest( const std::string& text, bool use_vector_voice, float duration_scalar, float pitch_scalar )
  : SayTextRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_text( text );
  set_use_vector_voice( use_vector_voice );
  set_duration_scalar( duration_scalar );
  set_pitch_scalar( pitch_scalar );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SayTextResponse::SayTextResponse( ResponseStatus* status, ::Anki::Vector::external_interface::SayTextResponse::UtteranceState state )
  : SayTextResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_state( state );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
AudioSendModeRequest::AudioSendModeRequest( ::Anki::Vector::external_interface::AudioProcessingMode mode )
  : AudioSendModeRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_mode( mode );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
AudioSendModeChanged::AudioSendModeChanged( ::Anki::Vector::external_interface::AudioProcessingMode mode )
  : AudioSendModeChanged(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_mode( mode );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
AudioChunk::AudioChunk( ::google::protobuf::uint32 robot_time_stamp, ::google::protobuf::uint32 group_id, ::google::protobuf::uint32 chunk_id, ::google::protobuf::uint32 audio_chunk_count, const std::string& signal_power, const std::string& direction_strengths, ::google::protobuf::uint32 source_direction, ::google::protobuf::uint32 source_confidence, ::google::protobuf::uint32 noise_floor_power )
  : AudioChunk(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_robot_time_stamp( robot_time_stamp );
  set_group_id( group_id );
  set_chunk_id( chunk_id );
  set_audio_chunk_count( audio_chunk_count );
  set_signal_power( signal_power );
  set_direction_strengths( direction_strengths );
  set_source_direction( source_direction );
  set_source_confidence( source_confidence );
  set_noise_floor_power( noise_floor_power );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
AudioFeedResponse::AudioFeedResponse( ::google::protobuf::uint32 robot_time_stamp, ::google::protobuf::uint32 group_id, const std::string& signal_power, const std::string& direction_strengths, ::google::protobuf::uint32 source_direction, ::google::protobuf::uint32 source_confidence, ::google::protobuf::uint32 noise_floor_power )
  : AudioFeedResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_robot_time_stamp( robot_time_stamp );
  set_group_id( group_id );
  set_signal_power( signal_power );
  set_direction_strengths( direction_strengths );
  set_source_direction( source_direction );
  set_source_confidence( source_confidence );
  set_noise_floor_power( noise_floor_power );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ExternalAudioStreamPrepare::ExternalAudioStreamPrepare( ::google::protobuf::uint32 audio_frame_rate, ::google::protobuf::uint32 audio_volume )
  : ExternalAudioStreamPrepare(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_audio_frame_rate( audio_frame_rate );
  set_audio_volume( audio_volume );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ExternalAudioStreamChunk::ExternalAudioStreamChunk( ::google::protobuf::uint32 audio_chunk_size_bytes, const std::string& audio_chunk_samples )
  : ExternalAudioStreamChunk(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_audio_chunk_size_bytes( audio_chunk_size_bytes );
  set_audio_chunk_samples( audio_chunk_samples );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ExternalAudioStreamRequest::ExternalAudioStreamRequest( ExternalAudioStreamPrepare* audio_stream_prepare )
  : ExternalAudioStreamRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_audio_stream_prepare( audio_stream_prepare );
}
ExternalAudioStreamRequest::ExternalAudioStreamRequest( ExternalAudioStreamChunk* audio_stream_chunk )
  : ExternalAudioStreamRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_audio_stream_chunk( audio_stream_chunk );
}
ExternalAudioStreamRequest::ExternalAudioStreamRequest( ExternalAudioStreamComplete* audio_stream_complete )
  : ExternalAudioStreamRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_audio_stream_complete( audio_stream_complete );
}
ExternalAudioStreamRequest::ExternalAudioStreamRequest( ExternalAudioStreamCancel* audio_stream_cancel )
  : ExternalAudioStreamRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_audio_stream_cancel( audio_stream_cancel );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ExternalAudioStreamBufferOverrun::ExternalAudioStreamBufferOverrun( ::google::protobuf::uint32 audio_samples_sent, ::google::protobuf::uint32 audio_samples_played )
  : ExternalAudioStreamBufferOverrun(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_audio_samples_sent( audio_samples_sent );
  set_audio_samples_played( audio_samples_played );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ExternalAudioStreamResponse::ExternalAudioStreamResponse( ExternalAudioStreamPlaybackComplete* audio_stream_playback_complete )
  : ExternalAudioStreamResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_audio_stream_playback_complete( audio_stream_playback_complete );
}
ExternalAudioStreamResponse::ExternalAudioStreamResponse( ExternalAudioStreamBufferOverrun* audio_stream_buffer_overrun )
  : ExternalAudioStreamResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_audio_stream_buffer_overrun( audio_stream_buffer_overrun );
}
ExternalAudioStreamResponse::ExternalAudioStreamResponse( ExternalAudioStreamPlaybackFailure* audio_stream_playback_failyer )
  : ExternalAudioStreamResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_audio_stream_playback_failyer( audio_stream_playback_failyer );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
MasterVolumeRequest::MasterVolumeRequest( ::Anki::Vector::external_interface::MasterVolumeLevel volume_level )
  : MasterVolumeRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_volume_level( volume_level );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
MasterVolumeResponse::MasterVolumeResponse( ResponseStatus* status )
  : MasterVolumeResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
EnableMarkerDetectionRequest::EnableMarkerDetectionRequest( bool enable )
  : EnableMarkerDetectionRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_enable( enable );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
EnableMarkerDetectionResponse::EnableMarkerDetectionResponse( ResponseStatus* status )
  : EnableMarkerDetectionResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
EnableFaceDetectionRequest::EnableFaceDetectionRequest( bool enable, bool enable_smile_detection, bool enable_expression_estimation, bool enable_blink_detection, bool enable_gaze_detection )
  : EnableFaceDetectionRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_enable( enable );
  set_enable_smile_detection( enable_smile_detection );
  set_enable_expression_estimation( enable_expression_estimation );
  set_enable_blink_detection( enable_blink_detection );
  set_enable_gaze_detection( enable_gaze_detection );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
EnableFaceDetectionResponse::EnableFaceDetectionResponse( ResponseStatus* status )
  : EnableFaceDetectionResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
EnableMotionDetectionRequest::EnableMotionDetectionRequest( bool enable )
  : EnableMotionDetectionRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_enable( enable );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
EnableMotionDetectionResponse::EnableMotionDetectionResponse( ResponseStatus* status )
  : EnableMotionDetectionResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
EnableMirrorModeRequest::EnableMirrorModeRequest( bool enable )
  : EnableMirrorModeRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_enable( enable );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
EnableMirrorModeResponse::EnableMirrorModeResponse( ResponseStatus* status )
  : EnableMirrorModeResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
EnableImageStreamingRequest::EnableImageStreamingRequest( bool enable, bool enable_high_resolution )
  : EnableImageStreamingRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_enable( enable );
  set_enable_high_resolution( enable_high_resolution );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
EnableImageStreamingResponse::EnableImageStreamingResponse( ResponseStatus* status )
  : EnableImageStreamingResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
IsImageStreamingEnabledResponse::IsImageStreamingEnabledResponse( bool is_image_streaming_enabled )
  : IsImageStreamingEnabledResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_is_image_streaming_enabled( is_image_streaming_enabled );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ImageChunk::ImageChunk( ::google::protobuf::uint32 frame_time_stamp, ::google::protobuf::uint32 image_id, ::google::protobuf::uint32 width, ::google::protobuf::uint32 height, ::Anki::Vector::external_interface::ImageChunk::ImageEncoding image_encoding, ::google::protobuf::uint32 display_index, ::google::protobuf::uint32 image_chunk_count, ::google::protobuf::uint32 chunk_id, const std::string& data )
  : ImageChunk(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_frame_time_stamp( frame_time_stamp );
  set_image_id( image_id );
  set_width( width );
  set_height( height );
  set_image_encoding( image_encoding );
  set_display_index( display_index );
  set_image_chunk_count( image_chunk_count );
  set_chunk_id( chunk_id );
  set_data( data );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CameraFeedResponse::CameraFeedResponse( ::google::protobuf::uint32 frame_time_stamp, ::google::protobuf::uint32 image_id, ::Anki::Vector::external_interface::ImageChunk::ImageEncoding image_encoding, const std::string& data )
  : CameraFeedResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_frame_time_stamp( frame_time_stamp );
  set_image_id( image_id );
  set_image_encoding( image_encoding );
  set_data( data );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CaptureSingleImageRequest::CaptureSingleImageRequest( bool enable_high_resolution )
  : CaptureSingleImageRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_enable_high_resolution( enable_high_resolution );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CaptureSingleImageResponse::CaptureSingleImageResponse( ResponseStatus* status, ::google::protobuf::uint32 frame_time_stamp, ::google::protobuf::uint32 image_id, ::Anki::Vector::external_interface::ImageChunk::ImageEncoding image_encoding, const std::string& data )
  : CaptureSingleImageResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_frame_time_stamp( frame_time_stamp );
  set_image_id( image_id );
  set_image_encoding( image_encoding );
  set_data( data );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SetEyeColorRequest::SetEyeColorRequest( float hue, float saturation )
  : SetEyeColorRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_hue( hue );
  set_saturation( saturation );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SetEyeColorResponse::SetEyeColorResponse( ResponseStatus* status )
  : SetEyeColorResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CameraConfigResponse::CameraConfigResponse( float focal_length_x, float focal_length_y, float center_x, float center_y, float fov_x, float fov_y, ::google::protobuf::uint32 min_camera_exposure_time_ms, ::google::protobuf::uint32 max_camera_exposure_time_ms, float min_camera_gain, float max_camera_gain )
  : CameraConfigResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_focal_length_x( focal_length_x );
  set_focal_length_y( focal_length_y );
  set_center_x( center_x );
  set_center_y( center_y );
  set_fov_x( fov_x );
  set_fov_y( fov_y );
  set_min_camera_exposure_time_ms( min_camera_exposure_time_ms );
  set_max_camera_exposure_time_ms( max_camera_exposure_time_ms );
  set_min_camera_gain( min_camera_gain );
  set_max_camera_gain( max_camera_gain );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SetCameraSettingsRequest::SetCameraSettingsRequest( float gain, ::google::protobuf::uint32 exposure_ms, bool enable_auto_exposure )
  : SetCameraSettingsRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_gain( gain );
  set_exposure_ms( exposure_ms );
  set_enable_auto_exposure( enable_auto_exposure );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SetCameraSettingsResponse::SetCameraSettingsResponse( ResponseStatus* status, const std::string& status_message )
  : SetCameraSettingsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_status_message( status_message );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CameraSettingsUpdate::CameraSettingsUpdate( float gain, ::google::protobuf::uint32 exposure_ms, bool auto_exposure_enabled )
  : CameraSettingsUpdate(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_gain( gain );
  set_exposure_ms( exposure_ms );
  set_auto_exposure_enabled( auto_exposure_enabled );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SDKInitializationRequest::SDKInitializationRequest( const std::string& sdk_module_version, const std::string& python_version, const std::string& python_implementation, const std::string& os_version, const std::string& cpu_version )
  : SDKInitializationRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_sdk_module_version( sdk_module_version );
  set_python_version( python_version );
  set_python_implementation( python_implementation );
  set_os_version( os_version );
  set_cpu_version( cpu_version );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SDKInitializationResponse::SDKInitializationResponse( ResponseStatus* status )
  : SDKInitializationResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
AppIntentRequest::AppIntentRequest( const std::string& intent, const std::string& param )
  : AppIntentRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_intent( intent );
  set_param( param );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
AppIntentResponse::AppIntentResponse( ResponseStatus* status )
  : AppIntentResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
FeatureStatus::FeatureStatus( const std::string& feature_name, const std::string& source )
  : FeatureStatus(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_feature_name( feature_name );
  set_source( source );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
Onboarding::Onboarding( OnboardingState* onboarding_state )
  : Onboarding(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_state( onboarding_state );
}
Onboarding::Onboarding( OnboardingWakeUpFinished* onboarding_wake_up_finished )
  : Onboarding(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_wake_up_finished( onboarding_wake_up_finished );
}
Onboarding::Onboarding( Onboarding1p0ChargingInfo* onboarding_1p0_charging_info )
  : Onboarding(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_1p0_charging_info( onboarding_1p0_charging_info );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
OnboardingState::OnboardingState( ::Anki::Vector::external_interface::OnboardingStages stage )
  : OnboardingState(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_stage( stage );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
OnboardingStateResponse::OnboardingStateResponse( ResponseStatus* status, OnboardingState* onboarding_state )
  : OnboardingStateResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_allocated_onboarding_state( onboarding_state );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
OnboardingSetPhaseRequest::OnboardingSetPhaseRequest( ::Anki::Vector::external_interface::OnboardingPhase phase )
  : OnboardingSetPhaseRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_phase( phase );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
OnboardingSetPhaseResponse::OnboardingSetPhaseResponse( ResponseStatus* status, ::Anki::Vector::external_interface::OnboardingPhase phase, ::Anki::Vector::external_interface::OnboardingPhaseState phase_state )
  : OnboardingSetPhaseResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_phase( phase );
  set_phase_state( phase_state );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
OnboardingPhaseProgressResponse::OnboardingPhaseProgressResponse( ResponseStatus* status, ::Anki::Vector::external_interface::OnboardingPhase last_set_phase, ::Anki::Vector::external_interface::OnboardingPhaseState last_set_phase_state, ::google::protobuf::int32 percent_completed )
  : OnboardingPhaseProgressResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_last_set_phase( last_set_phase );
  set_last_set_phase_state( last_set_phase_state );
  set_percent_completed( percent_completed );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
OnboardingChargeInfoResponse::OnboardingChargeInfoResponse( ResponseStatus* status, bool on_charger, bool needs_to_charge, float required_charge_time )
  : OnboardingChargeInfoResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_on_charger( on_charger );
  set_needs_to_charge( needs_to_charge );
  set_required_charge_time( required_charge_time );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
OnboardingInputRequest::OnboardingInputRequest( OnboardingCompleteRequest* onboarding_complete_request )
  : OnboardingInputRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_complete_request( onboarding_complete_request );
}
OnboardingInputRequest::OnboardingInputRequest( OnboardingWakeUpRequest* onboarding_wake_up_request )
  : OnboardingInputRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_wake_up_request( onboarding_wake_up_request );
}
OnboardingInputRequest::OnboardingInputRequest( OnboardingSkipOnboarding* onboarding_skip_onboarding )
  : OnboardingInputRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_skip_onboarding( onboarding_skip_onboarding );
}
OnboardingInputRequest::OnboardingInputRequest( OnboardingRestart* onboarding_restart )
  : OnboardingInputRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_restart( onboarding_restart );
}
OnboardingInputRequest::OnboardingInputRequest( OnboardingWakeUpStartedRequest* onboarding_wake_up_started_request )
  : OnboardingInputRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_wake_up_started_request( onboarding_wake_up_started_request );
}
OnboardingInputRequest::OnboardingInputRequest( OnboardingSetPhaseRequest* onboarding_set_phase_request )
  : OnboardingInputRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_set_phase_request( onboarding_set_phase_request );
}
OnboardingInputRequest::OnboardingInputRequest( OnboardingPhaseProgressRequest* onboarding_phase_progress_request )
  : OnboardingInputRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_phase_progress_request( onboarding_phase_progress_request );
}
OnboardingInputRequest::OnboardingInputRequest( OnboardingChargeInfoRequest* onboarding_charge_info_request )
  : OnboardingInputRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_charge_info_request( onboarding_charge_info_request );
}
OnboardingInputRequest::OnboardingInputRequest( OnboardingMarkCompleteAndExit* onboarding_mark_complete_and_exit )
  : OnboardingInputRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_mark_complete_and_exit( onboarding_mark_complete_and_exit );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
OnboardingInputResponse::OnboardingInputResponse( ResponseStatus* status )
  : OnboardingInputResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
OnboardingInputResponse::OnboardingInputResponse( OnboardingCompleteResponse* onboarding_complete_response )
  : OnboardingInputResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_complete_response( onboarding_complete_response );
}
OnboardingInputResponse::OnboardingInputResponse( OnboardingWakeUpResponse* onboarding_wake_up_response )
  : OnboardingInputResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_wake_up_response( onboarding_wake_up_response );
}
OnboardingInputResponse::OnboardingInputResponse( OnboardingWakeUpStartedResponse* onboarding_wake_up_started_response )
  : OnboardingInputResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_wake_up_started_response( onboarding_wake_up_started_response );
}
OnboardingInputResponse::OnboardingInputResponse( OnboardingSetPhaseResponse* onboarding_set_phase_response )
  : OnboardingInputResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_set_phase_response( onboarding_set_phase_response );
}
OnboardingInputResponse::OnboardingInputResponse( OnboardingPhaseProgressResponse* onboarding_phase_progress_response )
  : OnboardingInputResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_phase_progress_response( onboarding_phase_progress_response );
}
OnboardingInputResponse::OnboardingInputResponse( OnboardingChargeInfoResponse* onboarding_charge_info_response )
  : OnboardingInputResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_onboarding_charge_info_response( onboarding_charge_info_response );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
OnboardingCompleteResponse::OnboardingCompleteResponse( bool completed )
  : OnboardingCompleteResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_completed( completed );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
OnboardingWakeUpStartedResponse::OnboardingWakeUpStartedResponse( bool already_started )
  : OnboardingWakeUpStartedResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_already_started( already_started );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
OnboardingWakeUpResponse::OnboardingWakeUpResponse( bool waking_up, Onboarding1p0ChargingInfo* charging_info )
  : OnboardingWakeUpResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_waking_up( waking_up );
  set_allocated_charging_info( charging_info );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
Onboarding1p0ChargingInfo::Onboarding1p0ChargingInfo( bool on_charger, bool needs_to_charge, float suggested_charger_time )
  : Onboarding1p0ChargingInfo(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_on_charger( on_charger );
  set_needs_to_charge( needs_to_charge );
  set_suggested_charger_time( suggested_charger_time );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
FeatureFlagRequest::FeatureFlagRequest( const std::string& feature_name )
  : FeatureFlagRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_feature_name( feature_name );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
FeatureFlagResponse::FeatureFlagResponse( ResponseStatus* status, bool valid_feature, bool feature_enabled )
  : FeatureFlagResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_valid_feature( valid_feature );
  set_feature_enabled( feature_enabled );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
AttentionTransfer::AttentionTransfer( ::Anki::Vector::external_interface::AttentionTransferReason reason, float seconds_ago )
  : AttentionTransfer(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_reason( reason );
  set_seconds_ago( seconds_ago );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
LatestAttentionTransfer::LatestAttentionTransfer( AttentionTransfer* attention_transfer )
  : LatestAttentionTransfer(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_attention_transfer( attention_transfer );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
LatestAttentionTransferResponse::LatestAttentionTransferResponse( ResponseStatus* status, LatestAttentionTransfer* latest_attention_transfer )
  : LatestAttentionTransferResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_allocated_latest_attention_transfer( latest_attention_transfer );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
UpdateAndRestartResponse::UpdateAndRestartResponse( ResponseStatus* status )
  : UpdateAndRestartResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CheckUpdateStatusResponse::CheckUpdateStatusResponse( ResponseStatus* status, ::Anki::Vector::external_interface::CheckUpdateStatusResponse::UpdateStatus update_status, ::google::protobuf::int64 expected, ::google::protobuf::int64 progress, const std::string& update_version, const std::string& update_phase, const std::string& error, ::google::protobuf::int64 exit_code )
  : CheckUpdateStatusResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_update_status( update_status );
  set_expected( expected );
  set_progress( progress );
  set_update_version( update_version );
  set_update_phase( update_phase );
  set_error( error );
  set_exit_code( exit_code );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
UploadDebugLogsResponse::UploadDebugLogsResponse( ResponseStatus* status, const std::string& url )
  : UploadDebugLogsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_url( url );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CheckCloudResponse::CheckCloudResponse( ResponseStatus* status, ::Anki::Vector::external_interface::CheckCloudResponse::ConnectionCode code, const std::string& status_message, ::google::protobuf::int32 num_packets, ::google::protobuf::int32 expected_packets )
  : CheckCloudResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_code( code );
  set_status_message( status_message );
  set_num_packets( num_packets );
  set_expected_packets( expected_packets );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
_FakeAlexaUsage::_FakeAlexaUsage( ::Anki::Vector::external_interface::AlexaAuthState ignored )
  : _FakeAlexaUsage(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_ignored( ignored );
}
// End code inserted by Anki plugin.

// @@protoc_insertion_point(namespace_scope)
}  // namespace external_interface
}  // namespace Vector
}  // namespace Anki
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::KeepAlivePing* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::KeepAlivePing >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::KeepAlivePing >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AnimationTrigger* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AnimationTrigger >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AnimationTrigger >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::Animation* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::Animation >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::Animation >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DriveWheelsRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DriveWheelsRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DriveWheelsRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DriveWheelsResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DriveWheelsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DriveWheelsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::MoveHeadRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::MoveHeadRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::MoveHeadRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::MoveHeadResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::MoveHeadResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::MoveHeadResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::MoveLiftRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::MoveLiftRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::MoveLiftRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::MoveLiftResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::MoveLiftResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::MoveLiftResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::StopAllMotorsRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::StopAllMotorsRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::StopAllMotorsRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::StopAllMotorsResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::StopAllMotorsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::StopAllMotorsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PlayAnimationTriggerRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PlayAnimationTriggerRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PlayAnimationTriggerRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PlayAnimationRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PlayAnimationRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PlayAnimationRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PlayAnimationResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PlayAnimationResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PlayAnimationResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ListAnimationsRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ListAnimationsRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ListAnimationsRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ListAnimationsResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ListAnimationsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ListAnimationsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ListAnimationTriggersRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ListAnimationTriggersRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ListAnimationTriggersRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ListAnimationTriggersResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ListAnimationTriggersResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ListAnimationTriggersResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DisplayFaceImageRGBRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DisplayFaceImageRGBRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DisplayFaceImageRGBRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DisplayFaceImageRGBResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DisplayFaceImageRGBResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DisplayFaceImageRGBResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::MeetVictorFaceScanStarted* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::MeetVictorFaceScanStarted >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::MeetVictorFaceScanStarted >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::MeetVictorFaceScanComplete* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::MeetVictorFaceScanComplete >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::MeetVictorFaceScanComplete >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::Status* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::Status >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::Status >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::WakeWord* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::WakeWord >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::WakeWord >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::TimeStampedStatus* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::TimeStampedStatus >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::TimeStampedStatus >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PoseStruct* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PoseStruct >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PoseStruct >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AccelData* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AccelData >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AccelData >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::GyroData* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::GyroData >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::GyroData >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ProxData* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ProxData >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ProxData >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::TouchData* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::TouchData >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::TouchData >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RobotState* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RobotState >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RobotState >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CladPoint* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CladPoint >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CladPoint >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CladRect* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CladRect >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CladRect >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RobotObservedMotion* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RobotObservedMotion >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RobotObservedMotion >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RobotErasedEnrolledFace* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RobotErasedEnrolledFace >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RobotErasedEnrolledFace >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UnexpectedMovement* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UnexpectedMovement >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UnexpectedMovement >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RobotObservedFace* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RobotObservedFace >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RobotObservedFace >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RobotChangedObservedFaceID* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RobotChangedObservedFaceID >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RobotChangedObservedFaceID >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::FaceEnrollmentCompleted* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::FaceEnrollmentCompleted >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::FaceEnrollmentCompleted >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CancelFaceEnrollmentRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CancelFaceEnrollmentRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CancelFaceEnrollmentRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CancelFaceEnrollmentResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CancelFaceEnrollmentResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CancelFaceEnrollmentResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RequestEnrolledNamesRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RequestEnrolledNamesRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RequestEnrolledNamesRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::LoadedKnownFace* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::LoadedKnownFace >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::LoadedKnownFace >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RobotRenamedEnrolledFace* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RobotRenamedEnrolledFace >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RobotRenamedEnrolledFace >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RequestEnrolledNamesResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RequestEnrolledNamesResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RequestEnrolledNamesResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UpdateEnrolledFaceByIDRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateEnrolledFaceByIDRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UpdateEnrolledFaceByIDRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UpdateEnrolledFaceByIDResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateEnrolledFaceByIDResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UpdateEnrolledFaceByIDResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EraseEnrolledFaceByIDRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EraseEnrolledFaceByIDRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EraseEnrolledFaceByIDRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EraseEnrolledFaceByIDResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EraseEnrolledFaceByIDResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EraseEnrolledFaceByIDResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EraseAllEnrolledFacesRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EraseAllEnrolledFacesRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EraseAllEnrolledFacesRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EraseAllEnrolledFacesResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EraseAllEnrolledFacesResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EraseAllEnrolledFacesResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SetFaceToEnrollRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SetFaceToEnrollRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SetFaceToEnrollRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SetFaceToEnrollResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SetFaceToEnrollResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SetFaceToEnrollResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EnrollFaceRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EnrollFaceRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EnrollFaceRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EnrollFaceResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EnrollFaceResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EnrollFaceResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DriveOffChargerRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DriveOffChargerRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DriveOffChargerRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DriveOffChargerResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DriveOffChargerResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DriveOffChargerResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DriveOnChargerRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DriveOnChargerRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DriveOnChargerRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DriveOnChargerResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DriveOnChargerResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DriveOnChargerResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::FindFacesRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::FindFacesRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::FindFacesRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::FindFacesResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::FindFacesResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::FindFacesResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::LookAroundInPlaceRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::LookAroundInPlaceRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::LookAroundInPlaceRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::LookAroundInPlaceResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::LookAroundInPlaceResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::LookAroundInPlaceResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RollBlockRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RollBlockRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RollBlockRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RollBlockResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RollBlockResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RollBlockResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::WakeWordBegin* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::WakeWordBegin >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::WakeWordBegin >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::WakeWordEnd* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::WakeWordEnd >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::WakeWordEnd >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UserIntent* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UserIntent >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UserIntent >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PhotoInfo* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PhotoInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PhotoInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PhotosInfoRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PhotosInfoRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PhotosInfoRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PhotosInfoResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PhotosInfoResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PhotosInfoResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PhotoRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PhotoRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PhotoRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PhotoPathMessage* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PhotoPathMessage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PhotoPathMessage >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PhotoResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PhotoResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PhotoResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ThumbnailRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ThumbnailRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ThumbnailRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ThumbnailPathMessage* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ThumbnailPathMessage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ThumbnailPathMessage >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ThumbnailResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ThumbnailResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ThumbnailResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DeletePhotoRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DeletePhotoRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DeletePhotoRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DeletePhotoResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DeletePhotoResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DeletePhotoResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PhotoTaken* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PhotoTaken >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PhotoTaken >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PathMotionProfile* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PathMotionProfile >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PathMotionProfile >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ActionResult* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ActionResult >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ActionResult >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CancelActionByIdTagRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CancelActionByIdTagRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CancelActionByIdTagRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CancelActionByIdTagResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CancelActionByIdTagResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CancelActionByIdTagResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CancelBehaviorRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CancelBehaviorRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CancelBehaviorRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CancelBehaviorResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CancelBehaviorResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CancelBehaviorResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::GoToPoseRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::GoToPoseRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::GoToPoseRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::GoToPoseResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::GoToPoseResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::GoToPoseResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DockWithCubeRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DockWithCubeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DockWithCubeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DockWithCubeResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DockWithCubeResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DockWithCubeResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DriveStraightRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DriveStraightRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DriveStraightRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DriveStraightResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DriveStraightResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DriveStraightResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::TurnInPlaceRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::TurnInPlaceRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::TurnInPlaceRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::TurnInPlaceResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::TurnInPlaceResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::TurnInPlaceResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SetHeadAngleRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SetHeadAngleRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SetHeadAngleRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SetHeadAngleResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SetHeadAngleResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SetHeadAngleResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SetLiftHeightRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SetLiftHeightRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SetLiftHeightRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SetLiftHeightResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SetLiftHeightResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SetLiftHeightResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::TurnTowardsFaceRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::TurnTowardsFaceRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::TurnTowardsFaceRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::TurnTowardsFaceResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::TurnTowardsFaceResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::TurnTowardsFaceResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::GoToObjectRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::GoToObjectRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::GoToObjectRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::GoToObjectResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::GoToObjectResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::GoToObjectResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RollObjectRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RollObjectRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RollObjectRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RollObjectResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RollObjectResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RollObjectResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PopAWheelieRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PopAWheelieRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PopAWheelieRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PopAWheelieResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PopAWheelieResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PopAWheelieResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PickupObjectRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PickupObjectRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PickupObjectRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PickupObjectResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PickupObjectResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PickupObjectResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PlaceObjectOnGroundHereRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::PlaceObjectOnGroundHereResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::BatteryStateRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::BatteryStateRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::BatteryStateRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::BatteryStateResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::BatteryStateResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::BatteryStateResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CubeBattery* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CubeBattery >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CubeBattery >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::VersionStateRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::VersionStateRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::VersionStateRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::VersionStateResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::VersionStateResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::VersionStateResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SayTextRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SayTextRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SayTextRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SayTextResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SayTextResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SayTextResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::StimulationInfo* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::StimulationInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::StimulationInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AudioSendModeRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AudioSendModeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AudioSendModeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AudioSendModeChanged* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AudioSendModeChanged >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AudioSendModeChanged >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AudioChunk* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AudioChunk >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AudioChunk >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AudioFeedRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AudioFeedRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AudioFeedRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AudioFeedResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AudioFeedResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AudioFeedResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ExternalAudioStreamPrepare* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamPrepare >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ExternalAudioStreamPrepare >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ExternalAudioStreamChunk* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamChunk >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ExternalAudioStreamChunk >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ExternalAudioStreamComplete* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamComplete >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ExternalAudioStreamComplete >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ExternalAudioStreamCancel* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamCancel >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ExternalAudioStreamCancel >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ExternalAudioStreamRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ExternalAudioStreamRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackComplete >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ExternalAudioStreamPlaybackFailure >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ExternalAudioStreamBufferOverrun >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ExternalAudioStreamResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ExternalAudioStreamResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ExternalAudioStreamResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::MasterVolumeRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::MasterVolumeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::MasterVolumeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::MasterVolumeResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::MasterVolumeResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::MasterVolumeResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EnableMarkerDetectionRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EnableMarkerDetectionRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EnableMarkerDetectionRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EnableMarkerDetectionResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EnableMarkerDetectionResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EnableMarkerDetectionResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EnableFaceDetectionRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EnableFaceDetectionRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EnableFaceDetectionRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EnableFaceDetectionResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EnableFaceDetectionResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EnableFaceDetectionResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EnableMotionDetectionRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EnableMotionDetectionRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EnableMotionDetectionRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EnableMotionDetectionResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EnableMotionDetectionResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EnableMotionDetectionResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EnableMirrorModeRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EnableMirrorModeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EnableMirrorModeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EnableMirrorModeResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EnableMirrorModeResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EnableMirrorModeResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::MirrorModeDisabled* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::MirrorModeDisabled >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::MirrorModeDisabled >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EnableImageStreamingRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EnableImageStreamingRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EnableImageStreamingRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::EnableImageStreamingResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::EnableImageStreamingResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::EnableImageStreamingResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::IsImageStreamingEnabledRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::IsImageStreamingEnabledResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::VisionModesAutoDisabled* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::VisionModesAutoDisabled >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::VisionModesAutoDisabled >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ImageChunk* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ImageChunk >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ImageChunk >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CameraFeedRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CameraFeedRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CameraFeedRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CameraFeedResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CameraFeedResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CameraFeedResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CaptureSingleImageRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CaptureSingleImageRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CaptureSingleImageRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CaptureSingleImageResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CaptureSingleImageResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CaptureSingleImageResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SetEyeColorRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SetEyeColorRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SetEyeColorRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SetEyeColorResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SetEyeColorResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SetEyeColorResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CameraConfigRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CameraConfigRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CameraConfigRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CameraConfigResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CameraConfigResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CameraConfigResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SetCameraSettingsRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SetCameraSettingsRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SetCameraSettingsRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SetCameraSettingsResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SetCameraSettingsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SetCameraSettingsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CameraSettingsUpdate* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CameraSettingsUpdate >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CameraSettingsUpdate >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SDKInitializationRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SDKInitializationRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SDKInitializationRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SDKInitializationResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SDKInitializationResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SDKInitializationResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AppDisconnected* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AppDisconnected >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AppDisconnected >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AppIntentRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AppIntentRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AppIntentRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AppIntentResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AppIntentResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AppIntentResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::FeatureStatus* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::FeatureStatus >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::FeatureStatus >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::Onboarding* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::Onboarding >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::Onboarding >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RobotHistoryRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RobotHistoryRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RobotHistoryRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RobotHistoryResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RobotHistoryResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RobotHistoryResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingState* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingState >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingState >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingStateRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingStateRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingStateRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingStateResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingStateResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingStateResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingSetPhaseRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingSetPhaseRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingSetPhaseRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingSetPhaseResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingSetPhaseResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingSetPhaseResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingPhaseProgressRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingPhaseProgressResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingChargeInfoRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingChargeInfoRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingChargeInfoRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingChargeInfoResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingChargeInfoResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingChargeInfoResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingSkipOnboarding* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingSkipOnboarding >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingSkipOnboarding >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingRestart* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingRestart >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingRestart >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingMarkCompleteAndExit >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingInputRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingInputRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingInputRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingInputResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingInputResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingInputResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingCompleteRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingCompleteRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingCompleteRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingCompleteResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingCompleteResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingCompleteResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingWakeUpStartedRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingWakeUpStartedResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingWakeUpRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingWakeUpRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingWakeUpRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingWakeUpResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingWakeUpResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingWakeUpResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::Onboarding1p0ChargingInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::OnboardingWakeUpFinished* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::OnboardingWakeUpFinished >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::OnboardingWakeUpFinished >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::FeatureFlagRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::FeatureFlagRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::FeatureFlagRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::FeatureFlagResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::FeatureFlagResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::FeatureFlagResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::FeatureFlagListRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::FeatureFlagListRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::FeatureFlagListRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::FeatureFlagListResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::FeatureFlagListResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::FeatureFlagListResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::AttentionTransfer* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::AttentionTransfer >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::AttentionTransfer >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::LatestAttentionTransferRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::LatestAttentionTransferRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::LatestAttentionTransferRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::LatestAttentionTransfer* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::LatestAttentionTransfer >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::LatestAttentionTransfer >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::LatestAttentionTransferResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::LatestAttentionTransferResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::LatestAttentionTransferResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UpdateAndRestartRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateAndRestartRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UpdateAndRestartRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UpdateAndRestartResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UpdateAndRestartResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UpdateAndRestartResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CheckUpdateStatusRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CheckUpdateStatusRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CheckUpdateStatusRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CheckUpdateStatusResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CheckUpdateStatusResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CheckUpdateStatusResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UploadDebugLogsRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UploadDebugLogsRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UploadDebugLogsRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::UploadDebugLogsResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::UploadDebugLogsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::UploadDebugLogsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CheckCloudRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CheckCloudRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CheckCloudRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CheckCloudResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CheckCloudResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CheckCloudResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::_FakeAlexaUsage* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::_FakeAlexaUsage >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::_FakeAlexaUsage >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
