// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: cmvr/api/arm_command.proto

package cmvr.api;

public final class ArmCommand {
  private ArmCommand() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * Protobuf enum {@code cmvr.api.ArmFrameType}
   */
  public enum ArmFrameType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>ARM_FRAME_BASE = 0;</code>
     */
    ARM_FRAME_BASE(0),
    /**
     * <code>ARM_FRAME_TOOL = 1;</code>
     */
    ARM_FRAME_TOOL(1),
    /**
     * <code>ARM_FRAME_WORLD = 2;</code>
     */
    ARM_FRAME_WORLD(2),
    /**
     * <code>ARM_FRAME_USER = 3;</code>
     */
    ARM_FRAME_USER(3),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>ARM_FRAME_BASE = 0;</code>
     */
    public static final int ARM_FRAME_BASE_VALUE = 0;
    /**
     * <code>ARM_FRAME_TOOL = 1;</code>
     */
    public static final int ARM_FRAME_TOOL_VALUE = 1;
    /**
     * <code>ARM_FRAME_WORLD = 2;</code>
     */
    public static final int ARM_FRAME_WORLD_VALUE = 2;
    /**
     * <code>ARM_FRAME_USER = 3;</code>
     */
    public static final int ARM_FRAME_USER_VALUE = 3;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ArmFrameType valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ArmFrameType forNumber(int value) {
      switch (value) {
        case 0: return ARM_FRAME_BASE;
        case 1: return ARM_FRAME_TOOL;
        case 2: return ARM_FRAME_WORLD;
        case 3: return ARM_FRAME_USER;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ArmFrameType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ArmFrameType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ArmFrameType>() {
            public ArmFrameType findValueByNumber(int number) {
              return ArmFrameType.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.getDescriptor().getEnumTypes().get(0);
    }

    private static final ArmFrameType[] VALUES = values();

    public static ArmFrameType valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ArmFrameType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:cmvr.api.ArmFrameType)
  }

  public interface JointPositionCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.JointPositionCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated double position = 1;</code>
     * @return A list containing the position.
     */
    java.util.List<java.lang.Double> getPositionList();
    /**
     * <code>repeated double position = 1;</code>
     * @return The count of position.
     */
    int getPositionCount();
    /**
     * <code>repeated double position = 1;</code>
     * @param index The index of the element to return.
     * @return The position at the given index.
     */
    double getPosition(int index);
  }
  /**
   * Protobuf type {@code cmvr.api.JointPositionCommand}
   */
  public static final class JointPositionCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.JointPositionCommand)
      JointPositionCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use JointPositionCommand.newBuilder() to construct.
    private JointPositionCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private JointPositionCommand() {
      position_ = emptyDoubleList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new JointPositionCommand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_JointPositionCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_JointPositionCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.JointPositionCommand.class, cmvr.api.ArmCommand.JointPositionCommand.Builder.class);
    }

    public static final int POSITION_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.DoubleList position_;
    /**
     * <code>repeated double position = 1;</code>
     * @return A list containing the position.
     */
    @java.lang.Override
    public java.util.List<java.lang.Double>
        getPositionList() {
      return position_;
    }
    /**
     * <code>repeated double position = 1;</code>
     * @return The count of position.
     */
    public int getPositionCount() {
      return position_.size();
    }
    /**
     * <code>repeated double position = 1;</code>
     * @param index The index of the element to return.
     * @return The position at the given index.
     */
    public double getPosition(int index) {
      return position_.getDouble(index);
    }
    private int positionMemoizedSerializedSize = -1;

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (getPositionList().size() > 0) {
        output.writeUInt32NoTag(10);
        output.writeUInt32NoTag(positionMemoizedSerializedSize);
      }
      for (int i = 0; i < position_.size(); i++) {
        output.writeDoubleNoTag(position_.getDouble(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        dataSize = 8 * getPositionList().size();
        size += dataSize;
        if (!getPositionList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        positionMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.JointPositionCommand)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.JointPositionCommand other = (cmvr.api.ArmCommand.JointPositionCommand) obj;

      if (!getPositionList()
          .equals(other.getPositionList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getPositionCount() > 0) {
        hash = (37 * hash) + POSITION_FIELD_NUMBER;
        hash = (53 * hash) + getPositionList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.JointPositionCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.JointPositionCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointPositionCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.JointPositionCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointPositionCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.JointPositionCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointPositionCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.JointPositionCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointPositionCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.JointPositionCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointPositionCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.JointPositionCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.JointPositionCommand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.JointPositionCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.JointPositionCommand)
        cmvr.api.ArmCommand.JointPositionCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_JointPositionCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_JointPositionCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.JointPositionCommand.class, cmvr.api.ArmCommand.JointPositionCommand.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.JointPositionCommand.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        position_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_JointPositionCommand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.JointPositionCommand getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.JointPositionCommand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.JointPositionCommand build() {
        cmvr.api.ArmCommand.JointPositionCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.JointPositionCommand buildPartial() {
        cmvr.api.ArmCommand.JointPositionCommand result = new cmvr.api.ArmCommand.JointPositionCommand(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          position_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.position_ = position_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.JointPositionCommand) {
          return mergeFrom((cmvr.api.ArmCommand.JointPositionCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.JointPositionCommand other) {
        if (other == cmvr.api.ArmCommand.JointPositionCommand.getDefaultInstance()) return this;
        if (!other.position_.isEmpty()) {
          if (position_.isEmpty()) {
            position_ = other.position_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensurePositionIsMutable();
            position_.addAll(other.position_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                double v = input.readDouble();
                ensurePositionIsMutable();
                position_.addDouble(v);
                break;
              } // case 9
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensurePositionIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  position_.addDouble(input.readDouble());
                }
                input.popLimit(limit);
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.Internal.DoubleList position_ = emptyDoubleList();
      private void ensurePositionIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          position_ = mutableCopy(position_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated double position = 1;</code>
       * @return A list containing the position.
       */
      public java.util.List<java.lang.Double>
          getPositionList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(position_) : position_;
      }
      /**
       * <code>repeated double position = 1;</code>
       * @return The count of position.
       */
      public int getPositionCount() {
        return position_.size();
      }
      /**
       * <code>repeated double position = 1;</code>
       * @param index The index of the element to return.
       * @return The position at the given index.
       */
      public double getPosition(int index) {
        return position_.getDouble(index);
      }
      /**
       * <code>repeated double position = 1;</code>
       * @param index The index to set the value at.
       * @param value The position to set.
       * @return This builder for chaining.
       */
      public Builder setPosition(
          int index, double value) {
        ensurePositionIsMutable();
        position_.setDouble(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double position = 1;</code>
       * @param value The position to add.
       * @return This builder for chaining.
       */
      public Builder addPosition(double value) {
        ensurePositionIsMutable();
        position_.addDouble(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double position = 1;</code>
       * @param values The position to add.
       * @return This builder for chaining.
       */
      public Builder addAllPosition(
          java.lang.Iterable<? extends java.lang.Double> values) {
        ensurePositionIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, position_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double position = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPosition() {
        position_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.JointPositionCommand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.JointPositionCommand)
    private static final cmvr.api.ArmCommand.JointPositionCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.JointPositionCommand();
    }

    public static cmvr.api.ArmCommand.JointPositionCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<JointPositionCommand>
        PARSER = new com.google.protobuf.AbstractParser<JointPositionCommand>() {
      @java.lang.Override
      public JointPositionCommand parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<JointPositionCommand> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<JointPositionCommand> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.JointPositionCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface JointVelocityCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.JointVelocityCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated double velocity = 1;</code>
     * @return A list containing the velocity.
     */
    java.util.List<java.lang.Double> getVelocityList();
    /**
     * <code>repeated double velocity = 1;</code>
     * @return The count of velocity.
     */
    int getVelocityCount();
    /**
     * <code>repeated double velocity = 1;</code>
     * @param index The index of the element to return.
     * @return The velocity at the given index.
     */
    double getVelocity(int index);
  }
  /**
   * Protobuf type {@code cmvr.api.JointVelocityCommand}
   */
  public static final class JointVelocityCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.JointVelocityCommand)
      JointVelocityCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use JointVelocityCommand.newBuilder() to construct.
    private JointVelocityCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private JointVelocityCommand() {
      velocity_ = emptyDoubleList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new JointVelocityCommand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_JointVelocityCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_JointVelocityCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.JointVelocityCommand.class, cmvr.api.ArmCommand.JointVelocityCommand.Builder.class);
    }

    public static final int VELOCITY_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.DoubleList velocity_;
    /**
     * <code>repeated double velocity = 1;</code>
     * @return A list containing the velocity.
     */
    @java.lang.Override
    public java.util.List<java.lang.Double>
        getVelocityList() {
      return velocity_;
    }
    /**
     * <code>repeated double velocity = 1;</code>
     * @return The count of velocity.
     */
    public int getVelocityCount() {
      return velocity_.size();
    }
    /**
     * <code>repeated double velocity = 1;</code>
     * @param index The index of the element to return.
     * @return The velocity at the given index.
     */
    public double getVelocity(int index) {
      return velocity_.getDouble(index);
    }
    private int velocityMemoizedSerializedSize = -1;

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (getVelocityList().size() > 0) {
        output.writeUInt32NoTag(10);
        output.writeUInt32NoTag(velocityMemoizedSerializedSize);
      }
      for (int i = 0; i < velocity_.size(); i++) {
        output.writeDoubleNoTag(velocity_.getDouble(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        dataSize = 8 * getVelocityList().size();
        size += dataSize;
        if (!getVelocityList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        velocityMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.JointVelocityCommand)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.JointVelocityCommand other = (cmvr.api.ArmCommand.JointVelocityCommand) obj;

      if (!getVelocityList()
          .equals(other.getVelocityList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getVelocityCount() > 0) {
        hash = (37 * hash) + VELOCITY_FIELD_NUMBER;
        hash = (53 * hash) + getVelocityList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.JointVelocityCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.JointVelocityCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointVelocityCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.JointVelocityCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointVelocityCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.JointVelocityCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointVelocityCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.JointVelocityCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointVelocityCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.JointVelocityCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointVelocityCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.JointVelocityCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.JointVelocityCommand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.JointVelocityCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.JointVelocityCommand)
        cmvr.api.ArmCommand.JointVelocityCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_JointVelocityCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_JointVelocityCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.JointVelocityCommand.class, cmvr.api.ArmCommand.JointVelocityCommand.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.JointVelocityCommand.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        velocity_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_JointVelocityCommand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.JointVelocityCommand getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.JointVelocityCommand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.JointVelocityCommand build() {
        cmvr.api.ArmCommand.JointVelocityCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.JointVelocityCommand buildPartial() {
        cmvr.api.ArmCommand.JointVelocityCommand result = new cmvr.api.ArmCommand.JointVelocityCommand(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          velocity_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.velocity_ = velocity_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.JointVelocityCommand) {
          return mergeFrom((cmvr.api.ArmCommand.JointVelocityCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.JointVelocityCommand other) {
        if (other == cmvr.api.ArmCommand.JointVelocityCommand.getDefaultInstance()) return this;
        if (!other.velocity_.isEmpty()) {
          if (velocity_.isEmpty()) {
            velocity_ = other.velocity_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureVelocityIsMutable();
            velocity_.addAll(other.velocity_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                double v = input.readDouble();
                ensureVelocityIsMutable();
                velocity_.addDouble(v);
                break;
              } // case 9
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureVelocityIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  velocity_.addDouble(input.readDouble());
                }
                input.popLimit(limit);
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.Internal.DoubleList velocity_ = emptyDoubleList();
      private void ensureVelocityIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          velocity_ = mutableCopy(velocity_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated double velocity = 1;</code>
       * @return A list containing the velocity.
       */
      public java.util.List<java.lang.Double>
          getVelocityList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(velocity_) : velocity_;
      }
      /**
       * <code>repeated double velocity = 1;</code>
       * @return The count of velocity.
       */
      public int getVelocityCount() {
        return velocity_.size();
      }
      /**
       * <code>repeated double velocity = 1;</code>
       * @param index The index of the element to return.
       * @return The velocity at the given index.
       */
      public double getVelocity(int index) {
        return velocity_.getDouble(index);
      }
      /**
       * <code>repeated double velocity = 1;</code>
       * @param index The index to set the value at.
       * @param value The velocity to set.
       * @return This builder for chaining.
       */
      public Builder setVelocity(
          int index, double value) {
        ensureVelocityIsMutable();
        velocity_.setDouble(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double velocity = 1;</code>
       * @param value The velocity to add.
       * @return This builder for chaining.
       */
      public Builder addVelocity(double value) {
        ensureVelocityIsMutable();
        velocity_.addDouble(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double velocity = 1;</code>
       * @param values The velocity to add.
       * @return This builder for chaining.
       */
      public Builder addAllVelocity(
          java.lang.Iterable<? extends java.lang.Double> values) {
        ensureVelocityIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, velocity_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double velocity = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearVelocity() {
        velocity_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.JointVelocityCommand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.JointVelocityCommand)
    private static final cmvr.api.ArmCommand.JointVelocityCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.JointVelocityCommand();
    }

    public static cmvr.api.ArmCommand.JointVelocityCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<JointVelocityCommand>
        PARSER = new com.google.protobuf.AbstractParser<JointVelocityCommand>() {
      @java.lang.Override
      public JointVelocityCommand parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<JointVelocityCommand> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<JointVelocityCommand> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.JointVelocityCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MotionOptionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.MotionOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>double velocity = 1;</code>
     * @return The velocity.
     */
    double getVelocity();

    /**
     * <code>double acceleration = 2;</code>
     * @return The acceleration.
     */
    double getAcceleration();

    /**
     * <code>double blend_radius = 3;</code>
     * @return The blendRadius.
     */
    double getBlendRadius();

    /**
     * <code>double jerk = 4;</code>
     * @return The jerk.
     */
    double getJerk();

    /**
     * <code>repeated double joint_velocity_limits = 5;</code>
     * @return A list containing the jointVelocityLimits.
     */
    java.util.List<java.lang.Double> getJointVelocityLimitsList();
    /**
     * <code>repeated double joint_velocity_limits = 5;</code>
     * @return The count of jointVelocityLimits.
     */
    int getJointVelocityLimitsCount();
    /**
     * <code>repeated double joint_velocity_limits = 5;</code>
     * @param index The index of the element to return.
     * @return The jointVelocityLimits at the given index.
     */
    double getJointVelocityLimits(int index);

    /**
     * <code>bool asynchronous = 6;</code>
     * @return The asynchronous.
     */
    boolean getAsynchronous();
  }
  /**
   * Protobuf type {@code cmvr.api.MotionOptions}
   */
  public static final class MotionOptions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.MotionOptions)
      MotionOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MotionOptions.newBuilder() to construct.
    private MotionOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MotionOptions() {
      jointVelocityLimits_ = emptyDoubleList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MotionOptions();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_MotionOptions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_MotionOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.MotionOptions.class, cmvr.api.ArmCommand.MotionOptions.Builder.class);
    }

    public static final int VELOCITY_FIELD_NUMBER = 1;
    private double velocity_;
    /**
     * <code>double velocity = 1;</code>
     * @return The velocity.
     */
    @java.lang.Override
    public double getVelocity() {
      return velocity_;
    }

    public static final int ACCELERATION_FIELD_NUMBER = 2;
    private double acceleration_;
    /**
     * <code>double acceleration = 2;</code>
     * @return The acceleration.
     */
    @java.lang.Override
    public double getAcceleration() {
      return acceleration_;
    }

    public static final int BLEND_RADIUS_FIELD_NUMBER = 3;
    private double blendRadius_;
    /**
     * <code>double blend_radius = 3;</code>
     * @return The blendRadius.
     */
    @java.lang.Override
    public double getBlendRadius() {
      return blendRadius_;
    }

    public static final int JERK_FIELD_NUMBER = 4;
    private double jerk_;
    /**
     * <code>double jerk = 4;</code>
     * @return The jerk.
     */
    @java.lang.Override
    public double getJerk() {
      return jerk_;
    }

    public static final int JOINT_VELOCITY_LIMITS_FIELD_NUMBER = 5;
    private com.google.protobuf.Internal.DoubleList jointVelocityLimits_;
    /**
     * <code>repeated double joint_velocity_limits = 5;</code>
     * @return A list containing the jointVelocityLimits.
     */
    @java.lang.Override
    public java.util.List<java.lang.Double>
        getJointVelocityLimitsList() {
      return jointVelocityLimits_;
    }
    /**
     * <code>repeated double joint_velocity_limits = 5;</code>
     * @return The count of jointVelocityLimits.
     */
    public int getJointVelocityLimitsCount() {
      return jointVelocityLimits_.size();
    }
    /**
     * <code>repeated double joint_velocity_limits = 5;</code>
     * @param index The index of the element to return.
     * @return The jointVelocityLimits at the given index.
     */
    public double getJointVelocityLimits(int index) {
      return jointVelocityLimits_.getDouble(index);
    }
    private int jointVelocityLimitsMemoizedSerializedSize = -1;

    public static final int ASYNCHRONOUS_FIELD_NUMBER = 6;
    private boolean asynchronous_;
    /**
     * <code>bool asynchronous = 6;</code>
     * @return The asynchronous.
     */
    @java.lang.Override
    public boolean getAsynchronous() {
      return asynchronous_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (java.lang.Double.doubleToRawLongBits(velocity_) != 0) {
        output.writeDouble(1, velocity_);
      }
      if (java.lang.Double.doubleToRawLongBits(acceleration_) != 0) {
        output.writeDouble(2, acceleration_);
      }
      if (java.lang.Double.doubleToRawLongBits(blendRadius_) != 0) {
        output.writeDouble(3, blendRadius_);
      }
      if (java.lang.Double.doubleToRawLongBits(jerk_) != 0) {
        output.writeDouble(4, jerk_);
      }
      if (getJointVelocityLimitsList().size() > 0) {
        output.writeUInt32NoTag(42);
        output.writeUInt32NoTag(jointVelocityLimitsMemoizedSerializedSize);
      }
      for (int i = 0; i < jointVelocityLimits_.size(); i++) {
        output.writeDoubleNoTag(jointVelocityLimits_.getDouble(i));
      }
      if (asynchronous_ != false) {
        output.writeBool(6, asynchronous_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (java.lang.Double.doubleToRawLongBits(velocity_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, velocity_);
      }
      if (java.lang.Double.doubleToRawLongBits(acceleration_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, acceleration_);
      }
      if (java.lang.Double.doubleToRawLongBits(blendRadius_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(3, blendRadius_);
      }
      if (java.lang.Double.doubleToRawLongBits(jerk_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(4, jerk_);
      }
      {
        int dataSize = 0;
        dataSize = 8 * getJointVelocityLimitsList().size();
        size += dataSize;
        if (!getJointVelocityLimitsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        jointVelocityLimitsMemoizedSerializedSize = dataSize;
      }
      if (asynchronous_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, asynchronous_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.MotionOptions)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.MotionOptions other = (cmvr.api.ArmCommand.MotionOptions) obj;

      if (java.lang.Double.doubleToLongBits(getVelocity())
          != java.lang.Double.doubleToLongBits(
              other.getVelocity())) return false;
      if (java.lang.Double.doubleToLongBits(getAcceleration())
          != java.lang.Double.doubleToLongBits(
              other.getAcceleration())) return false;
      if (java.lang.Double.doubleToLongBits(getBlendRadius())
          != java.lang.Double.doubleToLongBits(
              other.getBlendRadius())) return false;
      if (java.lang.Double.doubleToLongBits(getJerk())
          != java.lang.Double.doubleToLongBits(
              other.getJerk())) return false;
      if (!getJointVelocityLimitsList()
          .equals(other.getJointVelocityLimitsList())) return false;
      if (getAsynchronous()
          != other.getAsynchronous()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + VELOCITY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getVelocity()));
      hash = (37 * hash) + ACCELERATION_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getAcceleration()));
      hash = (37 * hash) + BLEND_RADIUS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getBlendRadius()));
      hash = (37 * hash) + JERK_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getJerk()));
      if (getJointVelocityLimitsCount() > 0) {
        hash = (37 * hash) + JOINT_VELOCITY_LIMITS_FIELD_NUMBER;
        hash = (53 * hash) + getJointVelocityLimitsList().hashCode();
      }
      hash = (37 * hash) + ASYNCHRONOUS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getAsynchronous());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.MotionOptions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.MotionOptions parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.MotionOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.MotionOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.MotionOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.MotionOptions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.MotionOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.MotionOptions parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.MotionOptions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.MotionOptions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.MotionOptions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.MotionOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.MotionOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.MotionOptions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.MotionOptions)
        cmvr.api.ArmCommand.MotionOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MotionOptions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MotionOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.MotionOptions.class, cmvr.api.ArmCommand.MotionOptions.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.MotionOptions.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        velocity_ = 0D;

        acceleration_ = 0D;

        blendRadius_ = 0D;

        jerk_ = 0D;

        jointVelocityLimits_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000001);
        asynchronous_ = false;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MotionOptions_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.MotionOptions getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.MotionOptions.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.MotionOptions build() {
        cmvr.api.ArmCommand.MotionOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.MotionOptions buildPartial() {
        cmvr.api.ArmCommand.MotionOptions result = new cmvr.api.ArmCommand.MotionOptions(this);
        int from_bitField0_ = bitField0_;
        result.velocity_ = velocity_;
        result.acceleration_ = acceleration_;
        result.blendRadius_ = blendRadius_;
        result.jerk_ = jerk_;
        if (((bitField0_ & 0x00000001) != 0)) {
          jointVelocityLimits_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.jointVelocityLimits_ = jointVelocityLimits_;
        result.asynchronous_ = asynchronous_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.MotionOptions) {
          return mergeFrom((cmvr.api.ArmCommand.MotionOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.MotionOptions other) {
        if (other == cmvr.api.ArmCommand.MotionOptions.getDefaultInstance()) return this;
        if (other.getVelocity() != 0D) {
          setVelocity(other.getVelocity());
        }
        if (other.getAcceleration() != 0D) {
          setAcceleration(other.getAcceleration());
        }
        if (other.getBlendRadius() != 0D) {
          setBlendRadius(other.getBlendRadius());
        }
        if (other.getJerk() != 0D) {
          setJerk(other.getJerk());
        }
        if (!other.jointVelocityLimits_.isEmpty()) {
          if (jointVelocityLimits_.isEmpty()) {
            jointVelocityLimits_ = other.jointVelocityLimits_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureJointVelocityLimitsIsMutable();
            jointVelocityLimits_.addAll(other.jointVelocityLimits_);
          }
          onChanged();
        }
        if (other.getAsynchronous() != false) {
          setAsynchronous(other.getAsynchronous());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                velocity_ = input.readDouble();

                break;
              } // case 9
              case 17: {
                acceleration_ = input.readDouble();

                break;
              } // case 17
              case 25: {
                blendRadius_ = input.readDouble();

                break;
              } // case 25
              case 33: {
                jerk_ = input.readDouble();

                break;
              } // case 33
              case 41: {
                double v = input.readDouble();
                ensureJointVelocityLimitsIsMutable();
                jointVelocityLimits_.addDouble(v);
                break;
              } // case 41
              case 42: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureJointVelocityLimitsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  jointVelocityLimits_.addDouble(input.readDouble());
                }
                input.popLimit(limit);
                break;
              } // case 42
              case 48: {
                asynchronous_ = input.readBool();

                break;
              } // case 48
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private double velocity_ ;
      /**
       * <code>double velocity = 1;</code>
       * @return The velocity.
       */
      @java.lang.Override
      public double getVelocity() {
        return velocity_;
      }
      /**
       * <code>double velocity = 1;</code>
       * @param value The velocity to set.
       * @return This builder for chaining.
       */
      public Builder setVelocity(double value) {
        
        velocity_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double velocity = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearVelocity() {
        
        velocity_ = 0D;
        onChanged();
        return this;
      }

      private double acceleration_ ;
      /**
       * <code>double acceleration = 2;</code>
       * @return The acceleration.
       */
      @java.lang.Override
      public double getAcceleration() {
        return acceleration_;
      }
      /**
       * <code>double acceleration = 2;</code>
       * @param value The acceleration to set.
       * @return This builder for chaining.
       */
      public Builder setAcceleration(double value) {
        
        acceleration_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double acceleration = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAcceleration() {
        
        acceleration_ = 0D;
        onChanged();
        return this;
      }

      private double blendRadius_ ;
      /**
       * <code>double blend_radius = 3;</code>
       * @return The blendRadius.
       */
      @java.lang.Override
      public double getBlendRadius() {
        return blendRadius_;
      }
      /**
       * <code>double blend_radius = 3;</code>
       * @param value The blendRadius to set.
       * @return This builder for chaining.
       */
      public Builder setBlendRadius(double value) {
        
        blendRadius_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double blend_radius = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearBlendRadius() {
        
        blendRadius_ = 0D;
        onChanged();
        return this;
      }

      private double jerk_ ;
      /**
       * <code>double jerk = 4;</code>
       * @return The jerk.
       */
      @java.lang.Override
      public double getJerk() {
        return jerk_;
      }
      /**
       * <code>double jerk = 4;</code>
       * @param value The jerk to set.
       * @return This builder for chaining.
       */
      public Builder setJerk(double value) {
        
        jerk_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double jerk = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearJerk() {
        
        jerk_ = 0D;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.DoubleList jointVelocityLimits_ = emptyDoubleList();
      private void ensureJointVelocityLimitsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          jointVelocityLimits_ = mutableCopy(jointVelocityLimits_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated double joint_velocity_limits = 5;</code>
       * @return A list containing the jointVelocityLimits.
       */
      public java.util.List<java.lang.Double>
          getJointVelocityLimitsList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(jointVelocityLimits_) : jointVelocityLimits_;
      }
      /**
       * <code>repeated double joint_velocity_limits = 5;</code>
       * @return The count of jointVelocityLimits.
       */
      public int getJointVelocityLimitsCount() {
        return jointVelocityLimits_.size();
      }
      /**
       * <code>repeated double joint_velocity_limits = 5;</code>
       * @param index The index of the element to return.
       * @return The jointVelocityLimits at the given index.
       */
      public double getJointVelocityLimits(int index) {
        return jointVelocityLimits_.getDouble(index);
      }
      /**
       * <code>repeated double joint_velocity_limits = 5;</code>
       * @param index The index to set the value at.
       * @param value The jointVelocityLimits to set.
       * @return This builder for chaining.
       */
      public Builder setJointVelocityLimits(
          int index, double value) {
        ensureJointVelocityLimitsIsMutable();
        jointVelocityLimits_.setDouble(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double joint_velocity_limits = 5;</code>
       * @param value The jointVelocityLimits to add.
       * @return This builder for chaining.
       */
      public Builder addJointVelocityLimits(double value) {
        ensureJointVelocityLimitsIsMutable();
        jointVelocityLimits_.addDouble(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double joint_velocity_limits = 5;</code>
       * @param values The jointVelocityLimits to add.
       * @return This builder for chaining.
       */
      public Builder addAllJointVelocityLimits(
          java.lang.Iterable<? extends java.lang.Double> values) {
        ensureJointVelocityLimitsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, jointVelocityLimits_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double joint_velocity_limits = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearJointVelocityLimits() {
        jointVelocityLimits_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      private boolean asynchronous_ ;
      /**
       * <code>bool asynchronous = 6;</code>
       * @return The asynchronous.
       */
      @java.lang.Override
      public boolean getAsynchronous() {
        return asynchronous_;
      }
      /**
       * <code>bool asynchronous = 6;</code>
       * @param value The asynchronous to set.
       * @return This builder for chaining.
       */
      public Builder setAsynchronous(boolean value) {
        
        asynchronous_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool asynchronous = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearAsynchronous() {
        
        asynchronous_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.MotionOptions)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.MotionOptions)
    private static final cmvr.api.ArmCommand.MotionOptions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.MotionOptions();
    }

    public static cmvr.api.ArmCommand.MotionOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MotionOptions>
        PARSER = new com.google.protobuf.AbstractParser<MotionOptions>() {
      @java.lang.Override
      public MotionOptions parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<MotionOptions> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<MotionOptions> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.MotionOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CartesianPoseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.CartesianPose)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>double x = 1;</code>
     * @return The x.
     */
    double getX();

    /**
     * <code>double y = 2;</code>
     * @return The y.
     */
    double getY();

    /**
     * <code>double z = 3;</code>
     * @return The z.
     */
    double getZ();

    /**
     * <code>double rx = 4;</code>
     * @return The rx.
     */
    double getRx();

    /**
     * <code>double ry = 5;</code>
     * @return The ry.
     */
    double getRy();

    /**
     * <code>double rz = 6;</code>
     * @return The rz.
     */
    double getRz();
  }
  /**
   * Protobuf type {@code cmvr.api.CartesianPose}
   */
  public static final class CartesianPose extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.CartesianPose)
      CartesianPoseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CartesianPose.newBuilder() to construct.
    private CartesianPose(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CartesianPose() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CartesianPose();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_CartesianPose_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_CartesianPose_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.CartesianPose.class, cmvr.api.ArmCommand.CartesianPose.Builder.class);
    }

    public static final int X_FIELD_NUMBER = 1;
    private double x_;
    /**
     * <code>double x = 1;</code>
     * @return The x.
     */
    @java.lang.Override
    public double getX() {
      return x_;
    }

    public static final int Y_FIELD_NUMBER = 2;
    private double y_;
    /**
     * <code>double y = 2;</code>
     * @return The y.
     */
    @java.lang.Override
    public double getY() {
      return y_;
    }

    public static final int Z_FIELD_NUMBER = 3;
    private double z_;
    /**
     * <code>double z = 3;</code>
     * @return The z.
     */
    @java.lang.Override
    public double getZ() {
      return z_;
    }

    public static final int RX_FIELD_NUMBER = 4;
    private double rx_;
    /**
     * <code>double rx = 4;</code>
     * @return The rx.
     */
    @java.lang.Override
    public double getRx() {
      return rx_;
    }

    public static final int RY_FIELD_NUMBER = 5;
    private double ry_;
    /**
     * <code>double ry = 5;</code>
     * @return The ry.
     */
    @java.lang.Override
    public double getRy() {
      return ry_;
    }

    public static final int RZ_FIELD_NUMBER = 6;
    private double rz_;
    /**
     * <code>double rz = 6;</code>
     * @return The rz.
     */
    @java.lang.Override
    public double getRz() {
      return rz_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (java.lang.Double.doubleToRawLongBits(x_) != 0) {
        output.writeDouble(1, x_);
      }
      if (java.lang.Double.doubleToRawLongBits(y_) != 0) {
        output.writeDouble(2, y_);
      }
      if (java.lang.Double.doubleToRawLongBits(z_) != 0) {
        output.writeDouble(3, z_);
      }
      if (java.lang.Double.doubleToRawLongBits(rx_) != 0) {
        output.writeDouble(4, rx_);
      }
      if (java.lang.Double.doubleToRawLongBits(ry_) != 0) {
        output.writeDouble(5, ry_);
      }
      if (java.lang.Double.doubleToRawLongBits(rz_) != 0) {
        output.writeDouble(6, rz_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (java.lang.Double.doubleToRawLongBits(x_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, x_);
      }
      if (java.lang.Double.doubleToRawLongBits(y_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, y_);
      }
      if (java.lang.Double.doubleToRawLongBits(z_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(3, z_);
      }
      if (java.lang.Double.doubleToRawLongBits(rx_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(4, rx_);
      }
      if (java.lang.Double.doubleToRawLongBits(ry_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(5, ry_);
      }
      if (java.lang.Double.doubleToRawLongBits(rz_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(6, rz_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.CartesianPose)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.CartesianPose other = (cmvr.api.ArmCommand.CartesianPose) obj;

      if (java.lang.Double.doubleToLongBits(getX())
          != java.lang.Double.doubleToLongBits(
              other.getX())) return false;
      if (java.lang.Double.doubleToLongBits(getY())
          != java.lang.Double.doubleToLongBits(
              other.getY())) return false;
      if (java.lang.Double.doubleToLongBits(getZ())
          != java.lang.Double.doubleToLongBits(
              other.getZ())) return false;
      if (java.lang.Double.doubleToLongBits(getRx())
          != java.lang.Double.doubleToLongBits(
              other.getRx())) return false;
      if (java.lang.Double.doubleToLongBits(getRy())
          != java.lang.Double.doubleToLongBits(
              other.getRy())) return false;
      if (java.lang.Double.doubleToLongBits(getRz())
          != java.lang.Double.doubleToLongBits(
              other.getRz())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + X_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getX()));
      hash = (37 * hash) + Y_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getY()));
      hash = (37 * hash) + Z_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getZ()));
      hash = (37 * hash) + RX_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getRx()));
      hash = (37 * hash) + RY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getRy()));
      hash = (37 * hash) + RZ_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getRz()));
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.CartesianPose parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.CartesianPose parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.CartesianPose parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.CartesianPose parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.CartesianPose parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.CartesianPose parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.CartesianPose parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.CartesianPose parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.CartesianPose parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.CartesianPose parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.CartesianPose parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.CartesianPose parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.CartesianPose prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.CartesianPose}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.CartesianPose)
        cmvr.api.ArmCommand.CartesianPoseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_CartesianPose_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_CartesianPose_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.CartesianPose.class, cmvr.api.ArmCommand.CartesianPose.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.CartesianPose.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        x_ = 0D;

        y_ = 0D;

        z_ = 0D;

        rx_ = 0D;

        ry_ = 0D;

        rz_ = 0D;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_CartesianPose_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.CartesianPose getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.CartesianPose.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.CartesianPose build() {
        cmvr.api.ArmCommand.CartesianPose result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.CartesianPose buildPartial() {
        cmvr.api.ArmCommand.CartesianPose result = new cmvr.api.ArmCommand.CartesianPose(this);
        result.x_ = x_;
        result.y_ = y_;
        result.z_ = z_;
        result.rx_ = rx_;
        result.ry_ = ry_;
        result.rz_ = rz_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.CartesianPose) {
          return mergeFrom((cmvr.api.ArmCommand.CartesianPose)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.CartesianPose other) {
        if (other == cmvr.api.ArmCommand.CartesianPose.getDefaultInstance()) return this;
        if (other.getX() != 0D) {
          setX(other.getX());
        }
        if (other.getY() != 0D) {
          setY(other.getY());
        }
        if (other.getZ() != 0D) {
          setZ(other.getZ());
        }
        if (other.getRx() != 0D) {
          setRx(other.getRx());
        }
        if (other.getRy() != 0D) {
          setRy(other.getRy());
        }
        if (other.getRz() != 0D) {
          setRz(other.getRz());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                x_ = input.readDouble();

                break;
              } // case 9
              case 17: {
                y_ = input.readDouble();

                break;
              } // case 17
              case 25: {
                z_ = input.readDouble();

                break;
              } // case 25
              case 33: {
                rx_ = input.readDouble();

                break;
              } // case 33
              case 41: {
                ry_ = input.readDouble();

                break;
              } // case 41
              case 49: {
                rz_ = input.readDouble();

                break;
              } // case 49
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }

      private double x_ ;
      /**
       * <code>double x = 1;</code>
       * @return The x.
       */
      @java.lang.Override
      public double getX() {
        return x_;
      }
      /**
       * <code>double x = 1;</code>
       * @param value The x to set.
       * @return This builder for chaining.
       */
      public Builder setX(double value) {
        
        x_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double x = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearX() {
        
        x_ = 0D;
        onChanged();
        return this;
      }

      private double y_ ;
      /**
       * <code>double y = 2;</code>
       * @return The y.
       */
      @java.lang.Override
      public double getY() {
        return y_;
      }
      /**
       * <code>double y = 2;</code>
       * @param value The y to set.
       * @return This builder for chaining.
       */
      public Builder setY(double value) {
        
        y_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double y = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearY() {
        
        y_ = 0D;
        onChanged();
        return this;
      }

      private double z_ ;
      /**
       * <code>double z = 3;</code>
       * @return The z.
       */
      @java.lang.Override
      public double getZ() {
        return z_;
      }
      /**
       * <code>double z = 3;</code>
       * @param value The z to set.
       * @return This builder for chaining.
       */
      public Builder setZ(double value) {
        
        z_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double z = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearZ() {
        
        z_ = 0D;
        onChanged();
        return this;
      }

      private double rx_ ;
      /**
       * <code>double rx = 4;</code>
       * @return The rx.
       */
      @java.lang.Override
      public double getRx() {
        return rx_;
      }
      /**
       * <code>double rx = 4;</code>
       * @param value The rx to set.
       * @return This builder for chaining.
       */
      public Builder setRx(double value) {
        
        rx_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double rx = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearRx() {
        
        rx_ = 0D;
        onChanged();
        return this;
      }

      private double ry_ ;
      /**
       * <code>double ry = 5;</code>
       * @return The ry.
       */
      @java.lang.Override
      public double getRy() {
        return ry_;
      }
      /**
       * <code>double ry = 5;</code>
       * @param value The ry to set.
       * @return This builder for chaining.
       */
      public Builder setRy(double value) {
        
        ry_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double ry = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearRy() {
        
        ry_ = 0D;
        onChanged();
        return this;
      }

      private double rz_ ;
      /**
       * <code>double rz = 6;</code>
       * @return The rz.
       */
      @java.lang.Override
      public double getRz() {
        return rz_;
      }
      /**
       * <code>double rz = 6;</code>
       * @param value The rz to set.
       * @return This builder for chaining.
       */
      public Builder setRz(double value) {
        
        rz_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double rz = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearRz() {
        
        rz_ = 0D;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.CartesianPose)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.CartesianPose)
    private static final cmvr.api.ArmCommand.CartesianPose DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.CartesianPose();
    }

    public static cmvr.api.ArmCommand.CartesianPose getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<CartesianPose>
        PARSER = new com.google.protobuf.AbstractParser<CartesianPose>() {
      @java.lang.Override
      public CartesianPose parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<CartesianPose> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<CartesianPose> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.CartesianPose getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CartesianVelocityOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.CartesianVelocity)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>double vx = 1;</code>
     * @return The vx.
     */
    double getVx();

    /**
     * <code>double vy = 2;</code>
     * @return The vy.
     */
    double getVy();

    /**
     * <code>double vz = 3;</code>
     * @return The vz.
     */
    double getVz();

    /**
     * <code>double wx = 4;</code>
     * @return The wx.
     */
    double getWx();

    /**
     * <code>double wy = 5;</code>
     * @return The wy.
     */
    double getWy();

    /**
     * <code>double wz = 6;</code>
     * @return The wz.
     */
    double getWz();
  }
  /**
   * Protobuf type {@code cmvr.api.CartesianVelocity}
   */
  public static final class CartesianVelocity extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.CartesianVelocity)
      CartesianVelocityOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CartesianVelocity.newBuilder() to construct.
    private CartesianVelocity(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CartesianVelocity() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CartesianVelocity();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_CartesianVelocity_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_CartesianVelocity_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.CartesianVelocity.class, cmvr.api.ArmCommand.CartesianVelocity.Builder.class);
    }

    public static final int VX_FIELD_NUMBER = 1;
    private double vx_;
    /**
     * <code>double vx = 1;</code>
     * @return The vx.
     */
    @java.lang.Override
    public double getVx() {
      return vx_;
    }

    public static final int VY_FIELD_NUMBER = 2;
    private double vy_;
    /**
     * <code>double vy = 2;</code>
     * @return The vy.
     */
    @java.lang.Override
    public double getVy() {
      return vy_;
    }

    public static final int VZ_FIELD_NUMBER = 3;
    private double vz_;
    /**
     * <code>double vz = 3;</code>
     * @return The vz.
     */
    @java.lang.Override
    public double getVz() {
      return vz_;
    }

    public static final int WX_FIELD_NUMBER = 4;
    private double wx_;
    /**
     * <code>double wx = 4;</code>
     * @return The wx.
     */
    @java.lang.Override
    public double getWx() {
      return wx_;
    }

    public static final int WY_FIELD_NUMBER = 5;
    private double wy_;
    /**
     * <code>double wy = 5;</code>
     * @return The wy.
     */
    @java.lang.Override
    public double getWy() {
      return wy_;
    }

    public static final int WZ_FIELD_NUMBER = 6;
    private double wz_;
    /**
     * <code>double wz = 6;</code>
     * @return The wz.
     */
    @java.lang.Override
    public double getWz() {
      return wz_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (java.lang.Double.doubleToRawLongBits(vx_) != 0) {
        output.writeDouble(1, vx_);
      }
      if (java.lang.Double.doubleToRawLongBits(vy_) != 0) {
        output.writeDouble(2, vy_);
      }
      if (java.lang.Double.doubleToRawLongBits(vz_) != 0) {
        output.writeDouble(3, vz_);
      }
      if (java.lang.Double.doubleToRawLongBits(wx_) != 0) {
        output.writeDouble(4, wx_);
      }
      if (java.lang.Double.doubleToRawLongBits(wy_) != 0) {
        output.writeDouble(5, wy_);
      }
      if (java.lang.Double.doubleToRawLongBits(wz_) != 0) {
        output.writeDouble(6, wz_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (java.lang.Double.doubleToRawLongBits(vx_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, vx_);
      }
      if (java.lang.Double.doubleToRawLongBits(vy_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, vy_);
      }
      if (java.lang.Double.doubleToRawLongBits(vz_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(3, vz_);
      }
      if (java.lang.Double.doubleToRawLongBits(wx_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(4, wx_);
      }
      if (java.lang.Double.doubleToRawLongBits(wy_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(5, wy_);
      }
      if (java.lang.Double.doubleToRawLongBits(wz_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(6, wz_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.CartesianVelocity)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.CartesianVelocity other = (cmvr.api.ArmCommand.CartesianVelocity) obj;

      if (java.lang.Double.doubleToLongBits(getVx())
          != java.lang.Double.doubleToLongBits(
              other.getVx())) return false;
      if (java.lang.Double.doubleToLongBits(getVy())
          != java.lang.Double.doubleToLongBits(
              other.getVy())) return false;
      if (java.lang.Double.doubleToLongBits(getVz())
          != java.lang.Double.doubleToLongBits(
              other.getVz())) return false;
      if (java.lang.Double.doubleToLongBits(getWx())
          != java.lang.Double.doubleToLongBits(
              other.getWx())) return false;
      if (java.lang.Double.doubleToLongBits(getWy())
          != java.lang.Double.doubleToLongBits(
              other.getWy())) return false;
      if (java.lang.Double.doubleToLongBits(getWz())
          != java.lang.Double.doubleToLongBits(
              other.getWz())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + VX_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getVx()));
      hash = (37 * hash) + VY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getVy()));
      hash = (37 * hash) + VZ_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getVz()));
      hash = (37 * hash) + WX_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getWx()));
      hash = (37 * hash) + WY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getWy()));
      hash = (37 * hash) + WZ_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getWz()));
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.CartesianVelocity parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.CartesianVelocity parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.CartesianVelocity parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.CartesianVelocity parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.CartesianVelocity parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.CartesianVelocity parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.CartesianVelocity parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.CartesianVelocity parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.CartesianVelocity parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.CartesianVelocity parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.CartesianVelocity parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.CartesianVelocity parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.CartesianVelocity prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.CartesianVelocity}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.CartesianVelocity)
        cmvr.api.ArmCommand.CartesianVelocityOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_CartesianVelocity_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_CartesianVelocity_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.CartesianVelocity.class, cmvr.api.ArmCommand.CartesianVelocity.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.CartesianVelocity.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        vx_ = 0D;

        vy_ = 0D;

        vz_ = 0D;

        wx_ = 0D;

        wy_ = 0D;

        wz_ = 0D;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_CartesianVelocity_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.CartesianVelocity getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.CartesianVelocity.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.CartesianVelocity build() {
        cmvr.api.ArmCommand.CartesianVelocity result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.CartesianVelocity buildPartial() {
        cmvr.api.ArmCommand.CartesianVelocity result = new cmvr.api.ArmCommand.CartesianVelocity(this);
        result.vx_ = vx_;
        result.vy_ = vy_;
        result.vz_ = vz_;
        result.wx_ = wx_;
        result.wy_ = wy_;
        result.wz_ = wz_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.CartesianVelocity) {
          return mergeFrom((cmvr.api.ArmCommand.CartesianVelocity)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.CartesianVelocity other) {
        if (other == cmvr.api.ArmCommand.CartesianVelocity.getDefaultInstance()) return this;
        if (other.getVx() != 0D) {
          setVx(other.getVx());
        }
        if (other.getVy() != 0D) {
          setVy(other.getVy());
        }
        if (other.getVz() != 0D) {
          setVz(other.getVz());
        }
        if (other.getWx() != 0D) {
          setWx(other.getWx());
        }
        if (other.getWy() != 0D) {
          setWy(other.getWy());
        }
        if (other.getWz() != 0D) {
          setWz(other.getWz());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                vx_ = input.readDouble();

                break;
              } // case 9
              case 17: {
                vy_ = input.readDouble();

                break;
              } // case 17
              case 25: {
                vz_ = input.readDouble();

                break;
              } // case 25
              case 33: {
                wx_ = input.readDouble();

                break;
              } // case 33
              case 41: {
                wy_ = input.readDouble();

                break;
              } // case 41
              case 49: {
                wz_ = input.readDouble();

                break;
              } // case 49
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }

      private double vx_ ;
      /**
       * <code>double vx = 1;</code>
       * @return The vx.
       */
      @java.lang.Override
      public double getVx() {
        return vx_;
      }
      /**
       * <code>double vx = 1;</code>
       * @param value The vx to set.
       * @return This builder for chaining.
       */
      public Builder setVx(double value) {
        
        vx_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double vx = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearVx() {
        
        vx_ = 0D;
        onChanged();
        return this;
      }

      private double vy_ ;
      /**
       * <code>double vy = 2;</code>
       * @return The vy.
       */
      @java.lang.Override
      public double getVy() {
        return vy_;
      }
      /**
       * <code>double vy = 2;</code>
       * @param value The vy to set.
       * @return This builder for chaining.
       */
      public Builder setVy(double value) {
        
        vy_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double vy = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearVy() {
        
        vy_ = 0D;
        onChanged();
        return this;
      }

      private double vz_ ;
      /**
       * <code>double vz = 3;</code>
       * @return The vz.
       */
      @java.lang.Override
      public double getVz() {
        return vz_;
      }
      /**
       * <code>double vz = 3;</code>
       * @param value The vz to set.
       * @return This builder for chaining.
       */
      public Builder setVz(double value) {
        
        vz_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double vz = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearVz() {
        
        vz_ = 0D;
        onChanged();
        return this;
      }

      private double wx_ ;
      /**
       * <code>double wx = 4;</code>
       * @return The wx.
       */
      @java.lang.Override
      public double getWx() {
        return wx_;
      }
      /**
       * <code>double wx = 4;</code>
       * @param value The wx to set.
       * @return This builder for chaining.
       */
      public Builder setWx(double value) {
        
        wx_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double wx = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearWx() {
        
        wx_ = 0D;
        onChanged();
        return this;
      }

      private double wy_ ;
      /**
       * <code>double wy = 5;</code>
       * @return The wy.
       */
      @java.lang.Override
      public double getWy() {
        return wy_;
      }
      /**
       * <code>double wy = 5;</code>
       * @param value The wy to set.
       * @return This builder for chaining.
       */
      public Builder setWy(double value) {
        
        wy_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double wy = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearWy() {
        
        wy_ = 0D;
        onChanged();
        return this;
      }

      private double wz_ ;
      /**
       * <code>double wz = 6;</code>
       * @return The wz.
       */
      @java.lang.Override
      public double getWz() {
        return wz_;
      }
      /**
       * <code>double wz = 6;</code>
       * @param value The wz to set.
       * @return This builder for chaining.
       */
      public Builder setWz(double value) {
        
        wz_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double wz = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearWz() {
        
        wz_ = 0D;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.CartesianVelocity)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.CartesianVelocity)
    private static final cmvr.api.ArmCommand.CartesianVelocity DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.CartesianVelocity();
    }

    public static cmvr.api.ArmCommand.CartesianVelocity getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<CartesianVelocity>
        PARSER = new com.google.protobuf.AbstractParser<CartesianVelocity>() {
      @java.lang.Override
      public CartesianVelocity parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<CartesianVelocity> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<CartesianVelocity> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.CartesianVelocity getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TransformMatrix4x4OrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.TransformMatrix4x4)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>double m00 = 1;</code>
     * @return The m00.
     */
    double getM00();

    /**
     * <code>double m01 = 2;</code>
     * @return The m01.
     */
    double getM01();

    /**
     * <code>double m02 = 3;</code>
     * @return The m02.
     */
    double getM02();

    /**
     * <code>double m03 = 4;</code>
     * @return The m03.
     */
    double getM03();

    /**
     * <code>double m10 = 5;</code>
     * @return The m10.
     */
    double getM10();

    /**
     * <code>double m11 = 6;</code>
     * @return The m11.
     */
    double getM11();

    /**
     * <code>double m12 = 7;</code>
     * @return The m12.
     */
    double getM12();

    /**
     * <code>double m13 = 8;</code>
     * @return The m13.
     */
    double getM13();

    /**
     * <code>double m20 = 9;</code>
     * @return The m20.
     */
    double getM20();

    /**
     * <code>double m21 = 10;</code>
     * @return The m21.
     */
    double getM21();

    /**
     * <code>double m22 = 11;</code>
     * @return The m22.
     */
    double getM22();

    /**
     * <code>double m23 = 12;</code>
     * @return The m23.
     */
    double getM23();

    /**
     * <code>double m30 = 13;</code>
     * @return The m30.
     */
    double getM30();

    /**
     * <code>double m31 = 14;</code>
     * @return The m31.
     */
    double getM31();

    /**
     * <code>double m32 = 15;</code>
     * @return The m32.
     */
    double getM32();

    /**
     * <code>double m33 = 16;</code>
     * @return The m33.
     */
    double getM33();
  }
  /**
   * Protobuf type {@code cmvr.api.TransformMatrix4x4}
   */
  public static final class TransformMatrix4x4 extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.TransformMatrix4x4)
      TransformMatrix4x4OrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TransformMatrix4x4.newBuilder() to construct.
    private TransformMatrix4x4(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TransformMatrix4x4() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new TransformMatrix4x4();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_TransformMatrix4x4_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_TransformMatrix4x4_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.TransformMatrix4x4.class, cmvr.api.ArmCommand.TransformMatrix4x4.Builder.class);
    }

    public static final int M00_FIELD_NUMBER = 1;
    private double m00_;
    /**
     * <code>double m00 = 1;</code>
     * @return The m00.
     */
    @java.lang.Override
    public double getM00() {
      return m00_;
    }

    public static final int M01_FIELD_NUMBER = 2;
    private double m01_;
    /**
     * <code>double m01 = 2;</code>
     * @return The m01.
     */
    @java.lang.Override
    public double getM01() {
      return m01_;
    }

    public static final int M02_FIELD_NUMBER = 3;
    private double m02_;
    /**
     * <code>double m02 = 3;</code>
     * @return The m02.
     */
    @java.lang.Override
    public double getM02() {
      return m02_;
    }

    public static final int M03_FIELD_NUMBER = 4;
    private double m03_;
    /**
     * <code>double m03 = 4;</code>
     * @return The m03.
     */
    @java.lang.Override
    public double getM03() {
      return m03_;
    }

    public static final int M10_FIELD_NUMBER = 5;
    private double m10_;
    /**
     * <code>double m10 = 5;</code>
     * @return The m10.
     */
    @java.lang.Override
    public double getM10() {
      return m10_;
    }

    public static final int M11_FIELD_NUMBER = 6;
    private double m11_;
    /**
     * <code>double m11 = 6;</code>
     * @return The m11.
     */
    @java.lang.Override
    public double getM11() {
      return m11_;
    }

    public static final int M12_FIELD_NUMBER = 7;
    private double m12_;
    /**
     * <code>double m12 = 7;</code>
     * @return The m12.
     */
    @java.lang.Override
    public double getM12() {
      return m12_;
    }

    public static final int M13_FIELD_NUMBER = 8;
    private double m13_;
    /**
     * <code>double m13 = 8;</code>
     * @return The m13.
     */
    @java.lang.Override
    public double getM13() {
      return m13_;
    }

    public static final int M20_FIELD_NUMBER = 9;
    private double m20_;
    /**
     * <code>double m20 = 9;</code>
     * @return The m20.
     */
    @java.lang.Override
    public double getM20() {
      return m20_;
    }

    public static final int M21_FIELD_NUMBER = 10;
    private double m21_;
    /**
     * <code>double m21 = 10;</code>
     * @return The m21.
     */
    @java.lang.Override
    public double getM21() {
      return m21_;
    }

    public static final int M22_FIELD_NUMBER = 11;
    private double m22_;
    /**
     * <code>double m22 = 11;</code>
     * @return The m22.
     */
    @java.lang.Override
    public double getM22() {
      return m22_;
    }

    public static final int M23_FIELD_NUMBER = 12;
    private double m23_;
    /**
     * <code>double m23 = 12;</code>
     * @return The m23.
     */
    @java.lang.Override
    public double getM23() {
      return m23_;
    }

    public static final int M30_FIELD_NUMBER = 13;
    private double m30_;
    /**
     * <code>double m30 = 13;</code>
     * @return The m30.
     */
    @java.lang.Override
    public double getM30() {
      return m30_;
    }

    public static final int M31_FIELD_NUMBER = 14;
    private double m31_;
    /**
     * <code>double m31 = 14;</code>
     * @return The m31.
     */
    @java.lang.Override
    public double getM31() {
      return m31_;
    }

    public static final int M32_FIELD_NUMBER = 15;
    private double m32_;
    /**
     * <code>double m32 = 15;</code>
     * @return The m32.
     */
    @java.lang.Override
    public double getM32() {
      return m32_;
    }

    public static final int M33_FIELD_NUMBER = 16;
    private double m33_;
    /**
     * <code>double m33 = 16;</code>
     * @return The m33.
     */
    @java.lang.Override
    public double getM33() {
      return m33_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (java.lang.Double.doubleToRawLongBits(m00_) != 0) {
        output.writeDouble(1, m00_);
      }
      if (java.lang.Double.doubleToRawLongBits(m01_) != 0) {
        output.writeDouble(2, m01_);
      }
      if (java.lang.Double.doubleToRawLongBits(m02_) != 0) {
        output.writeDouble(3, m02_);
      }
      if (java.lang.Double.doubleToRawLongBits(m03_) != 0) {
        output.writeDouble(4, m03_);
      }
      if (java.lang.Double.doubleToRawLongBits(m10_) != 0) {
        output.writeDouble(5, m10_);
      }
      if (java.lang.Double.doubleToRawLongBits(m11_) != 0) {
        output.writeDouble(6, m11_);
      }
      if (java.lang.Double.doubleToRawLongBits(m12_) != 0) {
        output.writeDouble(7, m12_);
      }
      if (java.lang.Double.doubleToRawLongBits(m13_) != 0) {
        output.writeDouble(8, m13_);
      }
      if (java.lang.Double.doubleToRawLongBits(m20_) != 0) {
        output.writeDouble(9, m20_);
      }
      if (java.lang.Double.doubleToRawLongBits(m21_) != 0) {
        output.writeDouble(10, m21_);
      }
      if (java.lang.Double.doubleToRawLongBits(m22_) != 0) {
        output.writeDouble(11, m22_);
      }
      if (java.lang.Double.doubleToRawLongBits(m23_) != 0) {
        output.writeDouble(12, m23_);
      }
      if (java.lang.Double.doubleToRawLongBits(m30_) != 0) {
        output.writeDouble(13, m30_);
      }
      if (java.lang.Double.doubleToRawLongBits(m31_) != 0) {
        output.writeDouble(14, m31_);
      }
      if (java.lang.Double.doubleToRawLongBits(m32_) != 0) {
        output.writeDouble(15, m32_);
      }
      if (java.lang.Double.doubleToRawLongBits(m33_) != 0) {
        output.writeDouble(16, m33_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (java.lang.Double.doubleToRawLongBits(m00_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, m00_);
      }
      if (java.lang.Double.doubleToRawLongBits(m01_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, m01_);
      }
      if (java.lang.Double.doubleToRawLongBits(m02_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(3, m02_);
      }
      if (java.lang.Double.doubleToRawLongBits(m03_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(4, m03_);
      }
      if (java.lang.Double.doubleToRawLongBits(m10_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(5, m10_);
      }
      if (java.lang.Double.doubleToRawLongBits(m11_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(6, m11_);
      }
      if (java.lang.Double.doubleToRawLongBits(m12_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(7, m12_);
      }
      if (java.lang.Double.doubleToRawLongBits(m13_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(8, m13_);
      }
      if (java.lang.Double.doubleToRawLongBits(m20_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(9, m20_);
      }
      if (java.lang.Double.doubleToRawLongBits(m21_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(10, m21_);
      }
      if (java.lang.Double.doubleToRawLongBits(m22_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(11, m22_);
      }
      if (java.lang.Double.doubleToRawLongBits(m23_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(12, m23_);
      }
      if (java.lang.Double.doubleToRawLongBits(m30_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(13, m30_);
      }
      if (java.lang.Double.doubleToRawLongBits(m31_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(14, m31_);
      }
      if (java.lang.Double.doubleToRawLongBits(m32_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(15, m32_);
      }
      if (java.lang.Double.doubleToRawLongBits(m33_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(16, m33_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.TransformMatrix4x4)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.TransformMatrix4x4 other = (cmvr.api.ArmCommand.TransformMatrix4x4) obj;

      if (java.lang.Double.doubleToLongBits(getM00())
          != java.lang.Double.doubleToLongBits(
              other.getM00())) return false;
      if (java.lang.Double.doubleToLongBits(getM01())
          != java.lang.Double.doubleToLongBits(
              other.getM01())) return false;
      if (java.lang.Double.doubleToLongBits(getM02())
          != java.lang.Double.doubleToLongBits(
              other.getM02())) return false;
      if (java.lang.Double.doubleToLongBits(getM03())
          != java.lang.Double.doubleToLongBits(
              other.getM03())) return false;
      if (java.lang.Double.doubleToLongBits(getM10())
          != java.lang.Double.doubleToLongBits(
              other.getM10())) return false;
      if (java.lang.Double.doubleToLongBits(getM11())
          != java.lang.Double.doubleToLongBits(
              other.getM11())) return false;
      if (java.lang.Double.doubleToLongBits(getM12())
          != java.lang.Double.doubleToLongBits(
              other.getM12())) return false;
      if (java.lang.Double.doubleToLongBits(getM13())
          != java.lang.Double.doubleToLongBits(
              other.getM13())) return false;
      if (java.lang.Double.doubleToLongBits(getM20())
          != java.lang.Double.doubleToLongBits(
              other.getM20())) return false;
      if (java.lang.Double.doubleToLongBits(getM21())
          != java.lang.Double.doubleToLongBits(
              other.getM21())) return false;
      if (java.lang.Double.doubleToLongBits(getM22())
          != java.lang.Double.doubleToLongBits(
              other.getM22())) return false;
      if (java.lang.Double.doubleToLongBits(getM23())
          != java.lang.Double.doubleToLongBits(
              other.getM23())) return false;
      if (java.lang.Double.doubleToLongBits(getM30())
          != java.lang.Double.doubleToLongBits(
              other.getM30())) return false;
      if (java.lang.Double.doubleToLongBits(getM31())
          != java.lang.Double.doubleToLongBits(
              other.getM31())) return false;
      if (java.lang.Double.doubleToLongBits(getM32())
          != java.lang.Double.doubleToLongBits(
              other.getM32())) return false;
      if (java.lang.Double.doubleToLongBits(getM33())
          != java.lang.Double.doubleToLongBits(
              other.getM33())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + M00_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM00()));
      hash = (37 * hash) + M01_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM01()));
      hash = (37 * hash) + M02_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM02()));
      hash = (37 * hash) + M03_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM03()));
      hash = (37 * hash) + M10_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM10()));
      hash = (37 * hash) + M11_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM11()));
      hash = (37 * hash) + M12_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM12()));
      hash = (37 * hash) + M13_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM13()));
      hash = (37 * hash) + M20_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM20()));
      hash = (37 * hash) + M21_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM21()));
      hash = (37 * hash) + M22_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM22()));
      hash = (37 * hash) + M23_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM23()));
      hash = (37 * hash) + M30_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM30()));
      hash = (37 * hash) + M31_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM31()));
      hash = (37 * hash) + M32_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM32()));
      hash = (37 * hash) + M33_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getM33()));
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.TransformMatrix4x4 parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.TransformMatrix4x4 parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.TransformMatrix4x4 parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.TransformMatrix4x4 parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.TransformMatrix4x4 parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.TransformMatrix4x4 parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.TransformMatrix4x4 parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.TransformMatrix4x4 parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.TransformMatrix4x4 parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.TransformMatrix4x4 parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.TransformMatrix4x4 parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.TransformMatrix4x4 parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.TransformMatrix4x4 prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.TransformMatrix4x4}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.TransformMatrix4x4)
        cmvr.api.ArmCommand.TransformMatrix4x4OrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_TransformMatrix4x4_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_TransformMatrix4x4_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.TransformMatrix4x4.class, cmvr.api.ArmCommand.TransformMatrix4x4.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.TransformMatrix4x4.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        m00_ = 0D;

        m01_ = 0D;

        m02_ = 0D;

        m03_ = 0D;

        m10_ = 0D;

        m11_ = 0D;

        m12_ = 0D;

        m13_ = 0D;

        m20_ = 0D;

        m21_ = 0D;

        m22_ = 0D;

        m23_ = 0D;

        m30_ = 0D;

        m31_ = 0D;

        m32_ = 0D;

        m33_ = 0D;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_TransformMatrix4x4_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.TransformMatrix4x4 getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.TransformMatrix4x4.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.TransformMatrix4x4 build() {
        cmvr.api.ArmCommand.TransformMatrix4x4 result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.TransformMatrix4x4 buildPartial() {
        cmvr.api.ArmCommand.TransformMatrix4x4 result = new cmvr.api.ArmCommand.TransformMatrix4x4(this);
        result.m00_ = m00_;
        result.m01_ = m01_;
        result.m02_ = m02_;
        result.m03_ = m03_;
        result.m10_ = m10_;
        result.m11_ = m11_;
        result.m12_ = m12_;
        result.m13_ = m13_;
        result.m20_ = m20_;
        result.m21_ = m21_;
        result.m22_ = m22_;
        result.m23_ = m23_;
        result.m30_ = m30_;
        result.m31_ = m31_;
        result.m32_ = m32_;
        result.m33_ = m33_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.TransformMatrix4x4) {
          return mergeFrom((cmvr.api.ArmCommand.TransformMatrix4x4)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.TransformMatrix4x4 other) {
        if (other == cmvr.api.ArmCommand.TransformMatrix4x4.getDefaultInstance()) return this;
        if (other.getM00() != 0D) {
          setM00(other.getM00());
        }
        if (other.getM01() != 0D) {
          setM01(other.getM01());
        }
        if (other.getM02() != 0D) {
          setM02(other.getM02());
        }
        if (other.getM03() != 0D) {
          setM03(other.getM03());
        }
        if (other.getM10() != 0D) {
          setM10(other.getM10());
        }
        if (other.getM11() != 0D) {
          setM11(other.getM11());
        }
        if (other.getM12() != 0D) {
          setM12(other.getM12());
        }
        if (other.getM13() != 0D) {
          setM13(other.getM13());
        }
        if (other.getM20() != 0D) {
          setM20(other.getM20());
        }
        if (other.getM21() != 0D) {
          setM21(other.getM21());
        }
        if (other.getM22() != 0D) {
          setM22(other.getM22());
        }
        if (other.getM23() != 0D) {
          setM23(other.getM23());
        }
        if (other.getM30() != 0D) {
          setM30(other.getM30());
        }
        if (other.getM31() != 0D) {
          setM31(other.getM31());
        }
        if (other.getM32() != 0D) {
          setM32(other.getM32());
        }
        if (other.getM33() != 0D) {
          setM33(other.getM33());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                m00_ = input.readDouble();

                break;
              } // case 9
              case 17: {
                m01_ = input.readDouble();

                break;
              } // case 17
              case 25: {
                m02_ = input.readDouble();

                break;
              } // case 25
              case 33: {
                m03_ = input.readDouble();

                break;
              } // case 33
              case 41: {
                m10_ = input.readDouble();

                break;
              } // case 41
              case 49: {
                m11_ = input.readDouble();

                break;
              } // case 49
              case 57: {
                m12_ = input.readDouble();

                break;
              } // case 57
              case 65: {
                m13_ = input.readDouble();

                break;
              } // case 65
              case 73: {
                m20_ = input.readDouble();

                break;
              } // case 73
              case 81: {
                m21_ = input.readDouble();

                break;
              } // case 81
              case 89: {
                m22_ = input.readDouble();

                break;
              } // case 89
              case 97: {
                m23_ = input.readDouble();

                break;
              } // case 97
              case 105: {
                m30_ = input.readDouble();

                break;
              } // case 105
              case 113: {
                m31_ = input.readDouble();

                break;
              } // case 113
              case 121: {
                m32_ = input.readDouble();

                break;
              } // case 121
              case 129: {
                m33_ = input.readDouble();

                break;
              } // case 129
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }

      private double m00_ ;
      /**
       * <code>double m00 = 1;</code>
       * @return The m00.
       */
      @java.lang.Override
      public double getM00() {
        return m00_;
      }
      /**
       * <code>double m00 = 1;</code>
       * @param value The m00 to set.
       * @return This builder for chaining.
       */
      public Builder setM00(double value) {
        
        m00_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m00 = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearM00() {
        
        m00_ = 0D;
        onChanged();
        return this;
      }

      private double m01_ ;
      /**
       * <code>double m01 = 2;</code>
       * @return The m01.
       */
      @java.lang.Override
      public double getM01() {
        return m01_;
      }
      /**
       * <code>double m01 = 2;</code>
       * @param value The m01 to set.
       * @return This builder for chaining.
       */
      public Builder setM01(double value) {
        
        m01_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m01 = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearM01() {
        
        m01_ = 0D;
        onChanged();
        return this;
      }

      private double m02_ ;
      /**
       * <code>double m02 = 3;</code>
       * @return The m02.
       */
      @java.lang.Override
      public double getM02() {
        return m02_;
      }
      /**
       * <code>double m02 = 3;</code>
       * @param value The m02 to set.
       * @return This builder for chaining.
       */
      public Builder setM02(double value) {
        
        m02_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m02 = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearM02() {
        
        m02_ = 0D;
        onChanged();
        return this;
      }

      private double m03_ ;
      /**
       * <code>double m03 = 4;</code>
       * @return The m03.
       */
      @java.lang.Override
      public double getM03() {
        return m03_;
      }
      /**
       * <code>double m03 = 4;</code>
       * @param value The m03 to set.
       * @return This builder for chaining.
       */
      public Builder setM03(double value) {
        
        m03_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m03 = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearM03() {
        
        m03_ = 0D;
        onChanged();
        return this;
      }

      private double m10_ ;
      /**
       * <code>double m10 = 5;</code>
       * @return The m10.
       */
      @java.lang.Override
      public double getM10() {
        return m10_;
      }
      /**
       * <code>double m10 = 5;</code>
       * @param value The m10 to set.
       * @return This builder for chaining.
       */
      public Builder setM10(double value) {
        
        m10_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m10 = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearM10() {
        
        m10_ = 0D;
        onChanged();
        return this;
      }

      private double m11_ ;
      /**
       * <code>double m11 = 6;</code>
       * @return The m11.
       */
      @java.lang.Override
      public double getM11() {
        return m11_;
      }
      /**
       * <code>double m11 = 6;</code>
       * @param value The m11 to set.
       * @return This builder for chaining.
       */
      public Builder setM11(double value) {
        
        m11_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m11 = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearM11() {
        
        m11_ = 0D;
        onChanged();
        return this;
      }

      private double m12_ ;
      /**
       * <code>double m12 = 7;</code>
       * @return The m12.
       */
      @java.lang.Override
      public double getM12() {
        return m12_;
      }
      /**
       * <code>double m12 = 7;</code>
       * @param value The m12 to set.
       * @return This builder for chaining.
       */
      public Builder setM12(double value) {
        
        m12_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m12 = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearM12() {
        
        m12_ = 0D;
        onChanged();
        return this;
      }

      private double m13_ ;
      /**
       * <code>double m13 = 8;</code>
       * @return The m13.
       */
      @java.lang.Override
      public double getM13() {
        return m13_;
      }
      /**
       * <code>double m13 = 8;</code>
       * @param value The m13 to set.
       * @return This builder for chaining.
       */
      public Builder setM13(double value) {
        
        m13_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m13 = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearM13() {
        
        m13_ = 0D;
        onChanged();
        return this;
      }

      private double m20_ ;
      /**
       * <code>double m20 = 9;</code>
       * @return The m20.
       */
      @java.lang.Override
      public double getM20() {
        return m20_;
      }
      /**
       * <code>double m20 = 9;</code>
       * @param value The m20 to set.
       * @return This builder for chaining.
       */
      public Builder setM20(double value) {
        
        m20_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m20 = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearM20() {
        
        m20_ = 0D;
        onChanged();
        return this;
      }

      private double m21_ ;
      /**
       * <code>double m21 = 10;</code>
       * @return The m21.
       */
      @java.lang.Override
      public double getM21() {
        return m21_;
      }
      /**
       * <code>double m21 = 10;</code>
       * @param value The m21 to set.
       * @return This builder for chaining.
       */
      public Builder setM21(double value) {
        
        m21_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m21 = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearM21() {
        
        m21_ = 0D;
        onChanged();
        return this;
      }

      private double m22_ ;
      /**
       * <code>double m22 = 11;</code>
       * @return The m22.
       */
      @java.lang.Override
      public double getM22() {
        return m22_;
      }
      /**
       * <code>double m22 = 11;</code>
       * @param value The m22 to set.
       * @return This builder for chaining.
       */
      public Builder setM22(double value) {
        
        m22_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m22 = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearM22() {
        
        m22_ = 0D;
        onChanged();
        return this;
      }

      private double m23_ ;
      /**
       * <code>double m23 = 12;</code>
       * @return The m23.
       */
      @java.lang.Override
      public double getM23() {
        return m23_;
      }
      /**
       * <code>double m23 = 12;</code>
       * @param value The m23 to set.
       * @return This builder for chaining.
       */
      public Builder setM23(double value) {
        
        m23_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m23 = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearM23() {
        
        m23_ = 0D;
        onChanged();
        return this;
      }

      private double m30_ ;
      /**
       * <code>double m30 = 13;</code>
       * @return The m30.
       */
      @java.lang.Override
      public double getM30() {
        return m30_;
      }
      /**
       * <code>double m30 = 13;</code>
       * @param value The m30 to set.
       * @return This builder for chaining.
       */
      public Builder setM30(double value) {
        
        m30_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m30 = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearM30() {
        
        m30_ = 0D;
        onChanged();
        return this;
      }

      private double m31_ ;
      /**
       * <code>double m31 = 14;</code>
       * @return The m31.
       */
      @java.lang.Override
      public double getM31() {
        return m31_;
      }
      /**
       * <code>double m31 = 14;</code>
       * @param value The m31 to set.
       * @return This builder for chaining.
       */
      public Builder setM31(double value) {
        
        m31_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m31 = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearM31() {
        
        m31_ = 0D;
        onChanged();
        return this;
      }

      private double m32_ ;
      /**
       * <code>double m32 = 15;</code>
       * @return The m32.
       */
      @java.lang.Override
      public double getM32() {
        return m32_;
      }
      /**
       * <code>double m32 = 15;</code>
       * @param value The m32 to set.
       * @return This builder for chaining.
       */
      public Builder setM32(double value) {
        
        m32_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m32 = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearM32() {
        
        m32_ = 0D;
        onChanged();
        return this;
      }

      private double m33_ ;
      /**
       * <code>double m33 = 16;</code>
       * @return The m33.
       */
      @java.lang.Override
      public double getM33() {
        return m33_;
      }
      /**
       * <code>double m33 = 16;</code>
       * @param value The m33 to set.
       * @return This builder for chaining.
       */
      public Builder setM33(double value) {
        
        m33_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double m33 = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearM33() {
        
        m33_ = 0D;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.TransformMatrix4x4)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.TransformMatrix4x4)
    private static final cmvr.api.ArmCommand.TransformMatrix4x4 DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.TransformMatrix4x4();
    }

    public static cmvr.api.ArmCommand.TransformMatrix4x4 getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<TransformMatrix4x4>
        PARSER = new com.google.protobuf.AbstractParser<TransformMatrix4x4>() {
      @java.lang.Override
      public TransformMatrix4x4 parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<TransformMatrix4x4> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<TransformMatrix4x4> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.TransformMatrix4x4 getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MoveJOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.MoveJ)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.MoveJ}
   */
  public static final class MoveJ extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.MoveJ)
      MoveJOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MoveJ.newBuilder() to construct.
    private MoveJ(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MoveJ() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MoveJ();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveJ_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveJ_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.MoveJ.class, cmvr.api.ArmCommand.MoveJ.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.MoveJ.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.JointPositionCommand target = 2;</code>
       * @return Whether the target field is set.
       */
      boolean hasTarget();
      /**
       * <code>.cmvr.api.JointPositionCommand target = 2;</code>
       * @return The target.
       */
      cmvr.api.ArmCommand.JointPositionCommand getTarget();
      /**
       * <code>.cmvr.api.JointPositionCommand target = 2;</code>
       */
      cmvr.api.ArmCommand.JointPositionCommandOrBuilder getTargetOrBuilder();

      /**
       * <code>.cmvr.api.MotionOptions options = 3;</code>
       * @return Whether the options field is set.
       */
      boolean hasOptions();
      /**
       * <code>.cmvr.api.MotionOptions options = 3;</code>
       * @return The options.
       */
      cmvr.api.ArmCommand.MotionOptions getOptions();
      /**
       * <code>.cmvr.api.MotionOptions options = 3;</code>
       */
      cmvr.api.ArmCommand.MotionOptionsOrBuilder getOptionsOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.MoveJ.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.MoveJ.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveJ_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveJ_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.MoveJ.Request.class, cmvr.api.ArmCommand.MoveJ.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int TARGET_FIELD_NUMBER = 2;
      private cmvr.api.ArmCommand.JointPositionCommand target_;
      /**
       * <code>.cmvr.api.JointPositionCommand target = 2;</code>
       * @return Whether the target field is set.
       */
      @java.lang.Override
      public boolean hasTarget() {
        return target_ != null;
      }
      /**
       * <code>.cmvr.api.JointPositionCommand target = 2;</code>
       * @return The target.
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.JointPositionCommand getTarget() {
        return target_ == null ? cmvr.api.ArmCommand.JointPositionCommand.getDefaultInstance() : target_;
      }
      /**
       * <code>.cmvr.api.JointPositionCommand target = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.JointPositionCommandOrBuilder getTargetOrBuilder() {
        return getTarget();
      }

      public static final int OPTIONS_FIELD_NUMBER = 3;
      private cmvr.api.ArmCommand.MotionOptions options_;
      /**
       * <code>.cmvr.api.MotionOptions options = 3;</code>
       * @return Whether the options field is set.
       */
      @java.lang.Override
      public boolean hasOptions() {
        return options_ != null;
      }
      /**
       * <code>.cmvr.api.MotionOptions options = 3;</code>
       * @return The options.
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.MotionOptions getOptions() {
        return options_ == null ? cmvr.api.ArmCommand.MotionOptions.getDefaultInstance() : options_;
      }
      /**
       * <code>.cmvr.api.MotionOptions options = 3;</code>
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.MotionOptionsOrBuilder getOptionsOrBuilder() {
        return getOptions();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (target_ != null) {
          output.writeMessage(2, getTarget());
        }
        if (options_ != null) {
          output.writeMessage(3, getOptions());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (target_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getTarget());
        }
        if (options_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getOptions());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.MoveJ.Request)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.MoveJ.Request other = (cmvr.api.ArmCommand.MoveJ.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasTarget() != other.hasTarget()) return false;
        if (hasTarget()) {
          if (!getTarget()
              .equals(other.getTarget())) return false;
        }
        if (hasOptions() != other.hasOptions()) return false;
        if (hasOptions()) {
          if (!getOptions()
              .equals(other.getOptions())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasTarget()) {
          hash = (37 * hash) + TARGET_FIELD_NUMBER;
          hash = (53 * hash) + getTarget().hashCode();
        }
        if (hasOptions()) {
          hash = (37 * hash) + OPTIONS_FIELD_NUMBER;
          hash = (53 * hash) + getOptions().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.MoveJ.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.MoveJ.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveJ.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.MoveJ.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveJ.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.MoveJ.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveJ.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.MoveJ.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveJ.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.MoveJ.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveJ.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.MoveJ.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.MoveJ.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.MoveJ.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.MoveJ.Request)
          cmvr.api.ArmCommand.MoveJ.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveJ_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveJ_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.MoveJ.Request.class, cmvr.api.ArmCommand.MoveJ.Request.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.MoveJ.Request.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (targetBuilder_ == null) {
            target_ = null;
          } else {
            target_ = null;
            targetBuilder_ = null;
          }
          if (optionsBuilder_ == null) {
            options_ = null;
          } else {
            options_ = null;
            optionsBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveJ_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.MoveJ.Request getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.MoveJ.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.MoveJ.Request build() {
          cmvr.api.ArmCommand.MoveJ.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.MoveJ.Request buildPartial() {
          cmvr.api.ArmCommand.MoveJ.Request result = new cmvr.api.ArmCommand.MoveJ.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (targetBuilder_ == null) {
            result.target_ = target_;
          } else {
            result.target_ = targetBuilder_.build();
          }
          if (optionsBuilder_ == null) {
            result.options_ = options_;
          } else {
            result.options_ = optionsBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.MoveJ.Request) {
            return mergeFrom((cmvr.api.ArmCommand.MoveJ.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.MoveJ.Request other) {
          if (other == cmvr.api.ArmCommand.MoveJ.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasTarget()) {
            mergeTarget(other.getTarget());
          }
          if (other.hasOptions()) {
            mergeOptions(other.getOptions());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getTargetFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                case 26: {
                  input.readMessage(
                      getOptionsFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 26
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.ArmCommand.JointPositionCommand target_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.JointPositionCommand, cmvr.api.ArmCommand.JointPositionCommand.Builder, cmvr.api.ArmCommand.JointPositionCommandOrBuilder> targetBuilder_;
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         * @return Whether the target field is set.
         */
        public boolean hasTarget() {
          return targetBuilder_ != null || target_ != null;
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         * @return The target.
         */
        public cmvr.api.ArmCommand.JointPositionCommand getTarget() {
          if (targetBuilder_ == null) {
            return target_ == null ? cmvr.api.ArmCommand.JointPositionCommand.getDefaultInstance() : target_;
          } else {
            return targetBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         */
        public Builder setTarget(cmvr.api.ArmCommand.JointPositionCommand value) {
          if (targetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            target_ = value;
            onChanged();
          } else {
            targetBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         */
        public Builder setTarget(
            cmvr.api.ArmCommand.JointPositionCommand.Builder builderForValue) {
          if (targetBuilder_ == null) {
            target_ = builderForValue.build();
            onChanged();
          } else {
            targetBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         */
        public Builder mergeTarget(cmvr.api.ArmCommand.JointPositionCommand value) {
          if (targetBuilder_ == null) {
            if (target_ != null) {
              target_ =
                cmvr.api.ArmCommand.JointPositionCommand.newBuilder(target_).mergeFrom(value).buildPartial();
            } else {
              target_ = value;
            }
            onChanged();
          } else {
            targetBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         */
        public Builder clearTarget() {
          if (targetBuilder_ == null) {
            target_ = null;
            onChanged();
          } else {
            target_ = null;
            targetBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         */
        public cmvr.api.ArmCommand.JointPositionCommand.Builder getTargetBuilder() {
          
          onChanged();
          return getTargetFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         */
        public cmvr.api.ArmCommand.JointPositionCommandOrBuilder getTargetOrBuilder() {
          if (targetBuilder_ != null) {
            return targetBuilder_.getMessageOrBuilder();
          } else {
            return target_ == null ?
                cmvr.api.ArmCommand.JointPositionCommand.getDefaultInstance() : target_;
          }
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.JointPositionCommand, cmvr.api.ArmCommand.JointPositionCommand.Builder, cmvr.api.ArmCommand.JointPositionCommandOrBuilder> 
            getTargetFieldBuilder() {
          if (targetBuilder_ == null) {
            targetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.ArmCommand.JointPositionCommand, cmvr.api.ArmCommand.JointPositionCommand.Builder, cmvr.api.ArmCommand.JointPositionCommandOrBuilder>(
                    getTarget(),
                    getParentForChildren(),
                    isClean());
            target_ = null;
          }
          return targetBuilder_;
        }

        private cmvr.api.ArmCommand.MotionOptions options_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.MotionOptions, cmvr.api.ArmCommand.MotionOptions.Builder, cmvr.api.ArmCommand.MotionOptionsOrBuilder> optionsBuilder_;
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         * @return Whether the options field is set.
         */
        public boolean hasOptions() {
          return optionsBuilder_ != null || options_ != null;
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         * @return The options.
         */
        public cmvr.api.ArmCommand.MotionOptions getOptions() {
          if (optionsBuilder_ == null) {
            return options_ == null ? cmvr.api.ArmCommand.MotionOptions.getDefaultInstance() : options_;
          } else {
            return optionsBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         */
        public Builder setOptions(cmvr.api.ArmCommand.MotionOptions value) {
          if (optionsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            options_ = value;
            onChanged();
          } else {
            optionsBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         */
        public Builder setOptions(
            cmvr.api.ArmCommand.MotionOptions.Builder builderForValue) {
          if (optionsBuilder_ == null) {
            options_ = builderForValue.build();
            onChanged();
          } else {
            optionsBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         */
        public Builder mergeOptions(cmvr.api.ArmCommand.MotionOptions value) {
          if (optionsBuilder_ == null) {
            if (options_ != null) {
              options_ =
                cmvr.api.ArmCommand.MotionOptions.newBuilder(options_).mergeFrom(value).buildPartial();
            } else {
              options_ = value;
            }
            onChanged();
          } else {
            optionsBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         */
        public Builder clearOptions() {
          if (optionsBuilder_ == null) {
            options_ = null;
            onChanged();
          } else {
            options_ = null;
            optionsBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         */
        public cmvr.api.ArmCommand.MotionOptions.Builder getOptionsBuilder() {
          
          onChanged();
          return getOptionsFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         */
        public cmvr.api.ArmCommand.MotionOptionsOrBuilder getOptionsOrBuilder() {
          if (optionsBuilder_ != null) {
            return optionsBuilder_.getMessageOrBuilder();
          } else {
            return options_ == null ?
                cmvr.api.ArmCommand.MotionOptions.getDefaultInstance() : options_;
          }
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.MotionOptions, cmvr.api.ArmCommand.MotionOptions.Builder, cmvr.api.ArmCommand.MotionOptionsOrBuilder> 
            getOptionsFieldBuilder() {
          if (optionsBuilder_ == null) {
            optionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.ArmCommand.MotionOptions, cmvr.api.ArmCommand.MotionOptions.Builder, cmvr.api.ArmCommand.MotionOptionsOrBuilder>(
                    getOptions(),
                    getParentForChildren(),
                    isClean());
            options_ = null;
          }
          return optionsBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.MoveJ.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.MoveJ.Request)
      private static final cmvr.api.ArmCommand.MoveJ.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.MoveJ.Request();
      }

      public static cmvr.api.ArmCommand.MoveJ.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Request>
          PARSER = new com.google.protobuf.AbstractParser<Request>() {
        @java.lang.Override
        public Request parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Request> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Request> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.MoveJ.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface ResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.MoveJ.Response)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.MoveJ.Response}
     */
    public static final class Response extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.MoveJ.Response)
        ResponseOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Response.newBuilder() to construct.
      private Response(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Response() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Response();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveJ_Response_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveJ_Response_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.MoveJ.Response.class, cmvr.api.ArmCommand.MoveJ.Response.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.MoveJ.Response)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.MoveJ.Response other = (cmvr.api.ArmCommand.MoveJ.Response) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.MoveJ.Response parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.MoveJ.Response parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveJ.Response parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.MoveJ.Response parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveJ.Response parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.MoveJ.Response parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveJ.Response parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.MoveJ.Response parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveJ.Response parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.MoveJ.Response parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveJ.Response parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.MoveJ.Response parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.MoveJ.Response prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.MoveJ.Response}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.MoveJ.Response)
          cmvr.api.ArmCommand.MoveJ.ResponseOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveJ_Response_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveJ_Response_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.MoveJ.Response.class, cmvr.api.ArmCommand.MoveJ.Response.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.MoveJ.Response.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveJ_Response_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.MoveJ.Response getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.MoveJ.Response.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.MoveJ.Response build() {
          cmvr.api.ArmCommand.MoveJ.Response result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.MoveJ.Response buildPartial() {
          cmvr.api.ArmCommand.MoveJ.Response result = new cmvr.api.ArmCommand.MoveJ.Response(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.MoveJ.Response) {
            return mergeFrom((cmvr.api.ArmCommand.MoveJ.Response)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.MoveJ.Response other) {
          if (other == cmvr.api.ArmCommand.MoveJ.Response.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.MoveJ.Response)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.MoveJ.Response)
      private static final cmvr.api.ArmCommand.MoveJ.Response DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.MoveJ.Response();
      }

      public static cmvr.api.ArmCommand.MoveJ.Response getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Response>
          PARSER = new com.google.protobuf.AbstractParser<Response>() {
        @java.lang.Override
        public Response parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Response> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Response> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.MoveJ.Response getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.MoveJ)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.MoveJ other = (cmvr.api.ArmCommand.MoveJ) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.MoveJ parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.MoveJ parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.MoveJ parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.MoveJ parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.MoveJ parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.MoveJ parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.MoveJ parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.MoveJ parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.MoveJ parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.MoveJ parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.MoveJ parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.MoveJ parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.MoveJ prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.MoveJ}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.MoveJ)
        cmvr.api.ArmCommand.MoveJOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveJ_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveJ_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.MoveJ.class, cmvr.api.ArmCommand.MoveJ.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.MoveJ.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveJ_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.MoveJ getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.MoveJ.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.MoveJ build() {
        cmvr.api.ArmCommand.MoveJ result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.MoveJ buildPartial() {
        cmvr.api.ArmCommand.MoveJ result = new cmvr.api.ArmCommand.MoveJ(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.MoveJ) {
          return mergeFrom((cmvr.api.ArmCommand.MoveJ)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.MoveJ other) {
        if (other == cmvr.api.ArmCommand.MoveJ.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.MoveJ)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.MoveJ)
    private static final cmvr.api.ArmCommand.MoveJ DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.MoveJ();
    }

    public static cmvr.api.ArmCommand.MoveJ getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MoveJ>
        PARSER = new com.google.protobuf.AbstractParser<MoveJ>() {
      @java.lang.Override
      public MoveJ parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<MoveJ> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<MoveJ> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.MoveJ getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MoveLOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.MoveL)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.MoveL}
   */
  public static final class MoveL extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.MoveL)
      MoveLOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MoveL.newBuilder() to construct.
    private MoveL(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MoveL() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MoveL();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveL_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveL_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.MoveL.class, cmvr.api.ArmCommand.MoveL.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.MoveL.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.CartesianPose target = 2;</code>
       * @return Whether the target field is set.
       */
      boolean hasTarget();
      /**
       * <code>.cmvr.api.CartesianPose target = 2;</code>
       * @return The target.
       */
      cmvr.api.ArmCommand.CartesianPose getTarget();
      /**
       * <code>.cmvr.api.CartesianPose target = 2;</code>
       */
      cmvr.api.ArmCommand.CartesianPoseOrBuilder getTargetOrBuilder();

      /**
       * <code>.cmvr.api.MotionOptions options = 3;</code>
       * @return Whether the options field is set.
       */
      boolean hasOptions();
      /**
       * <code>.cmvr.api.MotionOptions options = 3;</code>
       * @return The options.
       */
      cmvr.api.ArmCommand.MotionOptions getOptions();
      /**
       * <code>.cmvr.api.MotionOptions options = 3;</code>
       */
      cmvr.api.ArmCommand.MotionOptionsOrBuilder getOptionsOrBuilder();

      /**
       * <code>.cmvr.api.ArmFrameType frame = 4;</code>
       * @return The enum numeric value on the wire for frame.
       */
      int getFrameValue();
      /**
       * <code>.cmvr.api.ArmFrameType frame = 4;</code>
       * @return The frame.
       */
      cmvr.api.ArmCommand.ArmFrameType getFrame();
    }
    /**
     * Protobuf type {@code cmvr.api.MoveL.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.MoveL.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
        frame_ = 0;
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveL_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveL_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.MoveL.Request.class, cmvr.api.ArmCommand.MoveL.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int TARGET_FIELD_NUMBER = 2;
      private cmvr.api.ArmCommand.CartesianPose target_;
      /**
       * <code>.cmvr.api.CartesianPose target = 2;</code>
       * @return Whether the target field is set.
       */
      @java.lang.Override
      public boolean hasTarget() {
        return target_ != null;
      }
      /**
       * <code>.cmvr.api.CartesianPose target = 2;</code>
       * @return The target.
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.CartesianPose getTarget() {
        return target_ == null ? cmvr.api.ArmCommand.CartesianPose.getDefaultInstance() : target_;
      }
      /**
       * <code>.cmvr.api.CartesianPose target = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.CartesianPoseOrBuilder getTargetOrBuilder() {
        return getTarget();
      }

      public static final int OPTIONS_FIELD_NUMBER = 3;
      private cmvr.api.ArmCommand.MotionOptions options_;
      /**
       * <code>.cmvr.api.MotionOptions options = 3;</code>
       * @return Whether the options field is set.
       */
      @java.lang.Override
      public boolean hasOptions() {
        return options_ != null;
      }
      /**
       * <code>.cmvr.api.MotionOptions options = 3;</code>
       * @return The options.
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.MotionOptions getOptions() {
        return options_ == null ? cmvr.api.ArmCommand.MotionOptions.getDefaultInstance() : options_;
      }
      /**
       * <code>.cmvr.api.MotionOptions options = 3;</code>
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.MotionOptionsOrBuilder getOptionsOrBuilder() {
        return getOptions();
      }

      public static final int FRAME_FIELD_NUMBER = 4;
      private int frame_;
      /**
       * <code>.cmvr.api.ArmFrameType frame = 4;</code>
       * @return The enum numeric value on the wire for frame.
       */
      @java.lang.Override public int getFrameValue() {
        return frame_;
      }
      /**
       * <code>.cmvr.api.ArmFrameType frame = 4;</code>
       * @return The frame.
       */
      @java.lang.Override public cmvr.api.ArmCommand.ArmFrameType getFrame() {
        @SuppressWarnings("deprecation")
        cmvr.api.ArmCommand.ArmFrameType result = cmvr.api.ArmCommand.ArmFrameType.valueOf(frame_);
        return result == null ? cmvr.api.ArmCommand.ArmFrameType.UNRECOGNIZED : result;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (target_ != null) {
          output.writeMessage(2, getTarget());
        }
        if (options_ != null) {
          output.writeMessage(3, getOptions());
        }
        if (frame_ != cmvr.api.ArmCommand.ArmFrameType.ARM_FRAME_BASE.getNumber()) {
          output.writeEnum(4, frame_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (target_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getTarget());
        }
        if (options_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getOptions());
        }
        if (frame_ != cmvr.api.ArmCommand.ArmFrameType.ARM_FRAME_BASE.getNumber()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(4, frame_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.MoveL.Request)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.MoveL.Request other = (cmvr.api.ArmCommand.MoveL.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasTarget() != other.hasTarget()) return false;
        if (hasTarget()) {
          if (!getTarget()
              .equals(other.getTarget())) return false;
        }
        if (hasOptions() != other.hasOptions()) return false;
        if (hasOptions()) {
          if (!getOptions()
              .equals(other.getOptions())) return false;
        }
        if (frame_ != other.frame_) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasTarget()) {
          hash = (37 * hash) + TARGET_FIELD_NUMBER;
          hash = (53 * hash) + getTarget().hashCode();
        }
        if (hasOptions()) {
          hash = (37 * hash) + OPTIONS_FIELD_NUMBER;
          hash = (53 * hash) + getOptions().hashCode();
        }
        hash = (37 * hash) + FRAME_FIELD_NUMBER;
        hash = (53 * hash) + frame_;
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.MoveL.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.MoveL.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveL.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.MoveL.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveL.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.MoveL.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveL.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.MoveL.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveL.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.MoveL.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveL.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.MoveL.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.MoveL.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.MoveL.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.MoveL.Request)
          cmvr.api.ArmCommand.MoveL.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveL_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveL_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.MoveL.Request.class, cmvr.api.ArmCommand.MoveL.Request.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.MoveL.Request.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (targetBuilder_ == null) {
            target_ = null;
          } else {
            target_ = null;
            targetBuilder_ = null;
          }
          if (optionsBuilder_ == null) {
            options_ = null;
          } else {
            options_ = null;
            optionsBuilder_ = null;
          }
          frame_ = 0;

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveL_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.MoveL.Request getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.MoveL.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.MoveL.Request build() {
          cmvr.api.ArmCommand.MoveL.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.MoveL.Request buildPartial() {
          cmvr.api.ArmCommand.MoveL.Request result = new cmvr.api.ArmCommand.MoveL.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (targetBuilder_ == null) {
            result.target_ = target_;
          } else {
            result.target_ = targetBuilder_.build();
          }
          if (optionsBuilder_ == null) {
            result.options_ = options_;
          } else {
            result.options_ = optionsBuilder_.build();
          }
          result.frame_ = frame_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.MoveL.Request) {
            return mergeFrom((cmvr.api.ArmCommand.MoveL.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.MoveL.Request other) {
          if (other == cmvr.api.ArmCommand.MoveL.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasTarget()) {
            mergeTarget(other.getTarget());
          }
          if (other.hasOptions()) {
            mergeOptions(other.getOptions());
          }
          if (other.frame_ != 0) {
            setFrameValue(other.getFrameValue());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getTargetFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                case 26: {
                  input.readMessage(
                      getOptionsFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 26
                case 32: {
                  frame_ = input.readEnum();

                  break;
                } // case 32
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.ArmCommand.CartesianPose target_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.CartesianPose, cmvr.api.ArmCommand.CartesianPose.Builder, cmvr.api.ArmCommand.CartesianPoseOrBuilder> targetBuilder_;
        /**
         * <code>.cmvr.api.CartesianPose target = 2;</code>
         * @return Whether the target field is set.
         */
        public boolean hasTarget() {
          return targetBuilder_ != null || target_ != null;
        }
        /**
         * <code>.cmvr.api.CartesianPose target = 2;</code>
         * @return The target.
         */
        public cmvr.api.ArmCommand.CartesianPose getTarget() {
          if (targetBuilder_ == null) {
            return target_ == null ? cmvr.api.ArmCommand.CartesianPose.getDefaultInstance() : target_;
          } else {
            return targetBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CartesianPose target = 2;</code>
         */
        public Builder setTarget(cmvr.api.ArmCommand.CartesianPose value) {
          if (targetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            target_ = value;
            onChanged();
          } else {
            targetBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CartesianPose target = 2;</code>
         */
        public Builder setTarget(
            cmvr.api.ArmCommand.CartesianPose.Builder builderForValue) {
          if (targetBuilder_ == null) {
            target_ = builderForValue.build();
            onChanged();
          } else {
            targetBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CartesianPose target = 2;</code>
         */
        public Builder mergeTarget(cmvr.api.ArmCommand.CartesianPose value) {
          if (targetBuilder_ == null) {
            if (target_ != null) {
              target_ =
                cmvr.api.ArmCommand.CartesianPose.newBuilder(target_).mergeFrom(value).buildPartial();
            } else {
              target_ = value;
            }
            onChanged();
          } else {
            targetBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CartesianPose target = 2;</code>
         */
        public Builder clearTarget() {
          if (targetBuilder_ == null) {
            target_ = null;
            onChanged();
          } else {
            target_ = null;
            targetBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CartesianPose target = 2;</code>
         */
        public cmvr.api.ArmCommand.CartesianPose.Builder getTargetBuilder() {
          
          onChanged();
          return getTargetFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CartesianPose target = 2;</code>
         */
        public cmvr.api.ArmCommand.CartesianPoseOrBuilder getTargetOrBuilder() {
          if (targetBuilder_ != null) {
            return targetBuilder_.getMessageOrBuilder();
          } else {
            return target_ == null ?
                cmvr.api.ArmCommand.CartesianPose.getDefaultInstance() : target_;
          }
        }
        /**
         * <code>.cmvr.api.CartesianPose target = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.CartesianPose, cmvr.api.ArmCommand.CartesianPose.Builder, cmvr.api.ArmCommand.CartesianPoseOrBuilder> 
            getTargetFieldBuilder() {
          if (targetBuilder_ == null) {
            targetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.ArmCommand.CartesianPose, cmvr.api.ArmCommand.CartesianPose.Builder, cmvr.api.ArmCommand.CartesianPoseOrBuilder>(
                    getTarget(),
                    getParentForChildren(),
                    isClean());
            target_ = null;
          }
          return targetBuilder_;
        }

        private cmvr.api.ArmCommand.MotionOptions options_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.MotionOptions, cmvr.api.ArmCommand.MotionOptions.Builder, cmvr.api.ArmCommand.MotionOptionsOrBuilder> optionsBuilder_;
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         * @return Whether the options field is set.
         */
        public boolean hasOptions() {
          return optionsBuilder_ != null || options_ != null;
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         * @return The options.
         */
        public cmvr.api.ArmCommand.MotionOptions getOptions() {
          if (optionsBuilder_ == null) {
            return options_ == null ? cmvr.api.ArmCommand.MotionOptions.getDefaultInstance() : options_;
          } else {
            return optionsBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         */
        public Builder setOptions(cmvr.api.ArmCommand.MotionOptions value) {
          if (optionsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            options_ = value;
            onChanged();
          } else {
            optionsBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         */
        public Builder setOptions(
            cmvr.api.ArmCommand.MotionOptions.Builder builderForValue) {
          if (optionsBuilder_ == null) {
            options_ = builderForValue.build();
            onChanged();
          } else {
            optionsBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         */
        public Builder mergeOptions(cmvr.api.ArmCommand.MotionOptions value) {
          if (optionsBuilder_ == null) {
            if (options_ != null) {
              options_ =
                cmvr.api.ArmCommand.MotionOptions.newBuilder(options_).mergeFrom(value).buildPartial();
            } else {
              options_ = value;
            }
            onChanged();
          } else {
            optionsBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         */
        public Builder clearOptions() {
          if (optionsBuilder_ == null) {
            options_ = null;
            onChanged();
          } else {
            options_ = null;
            optionsBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         */
        public cmvr.api.ArmCommand.MotionOptions.Builder getOptionsBuilder() {
          
          onChanged();
          return getOptionsFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         */
        public cmvr.api.ArmCommand.MotionOptionsOrBuilder getOptionsOrBuilder() {
          if (optionsBuilder_ != null) {
            return optionsBuilder_.getMessageOrBuilder();
          } else {
            return options_ == null ?
                cmvr.api.ArmCommand.MotionOptions.getDefaultInstance() : options_;
          }
        }
        /**
         * <code>.cmvr.api.MotionOptions options = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.MotionOptions, cmvr.api.ArmCommand.MotionOptions.Builder, cmvr.api.ArmCommand.MotionOptionsOrBuilder> 
            getOptionsFieldBuilder() {
          if (optionsBuilder_ == null) {
            optionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.ArmCommand.MotionOptions, cmvr.api.ArmCommand.MotionOptions.Builder, cmvr.api.ArmCommand.MotionOptionsOrBuilder>(
                    getOptions(),
                    getParentForChildren(),
                    isClean());
            options_ = null;
          }
          return optionsBuilder_;
        }

        private int frame_ = 0;
        /**
         * <code>.cmvr.api.ArmFrameType frame = 4;</code>
         * @return The enum numeric value on the wire for frame.
         */
        @java.lang.Override public int getFrameValue() {
          return frame_;
        }
        /**
         * <code>.cmvr.api.ArmFrameType frame = 4;</code>
         * @param value The enum numeric value on the wire for frame to set.
         * @return This builder for chaining.
         */
        public Builder setFrameValue(int value) {
          
          frame_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>.cmvr.api.ArmFrameType frame = 4;</code>
         * @return The frame.
         */
        @java.lang.Override
        public cmvr.api.ArmCommand.ArmFrameType getFrame() {
          @SuppressWarnings("deprecation")
          cmvr.api.ArmCommand.ArmFrameType result = cmvr.api.ArmCommand.ArmFrameType.valueOf(frame_);
          return result == null ? cmvr.api.ArmCommand.ArmFrameType.UNRECOGNIZED : result;
        }
        /**
         * <code>.cmvr.api.ArmFrameType frame = 4;</code>
         * @param value The frame to set.
         * @return This builder for chaining.
         */
        public Builder setFrame(cmvr.api.ArmCommand.ArmFrameType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          
          frame_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <code>.cmvr.api.ArmFrameType frame = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearFrame() {
          
          frame_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.MoveL.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.MoveL.Request)
      private static final cmvr.api.ArmCommand.MoveL.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.MoveL.Request();
      }

      public static cmvr.api.ArmCommand.MoveL.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Request>
          PARSER = new com.google.protobuf.AbstractParser<Request>() {
        @java.lang.Override
        public Request parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Request> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Request> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.MoveL.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface ResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.MoveL.Response)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.MoveL.Response}
     */
    public static final class Response extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.MoveL.Response)
        ResponseOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Response.newBuilder() to construct.
      private Response(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Response() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Response();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveL_Response_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveL_Response_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.MoveL.Response.class, cmvr.api.ArmCommand.MoveL.Response.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.MoveL.Response)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.MoveL.Response other = (cmvr.api.ArmCommand.MoveL.Response) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.MoveL.Response parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.MoveL.Response parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveL.Response parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.MoveL.Response parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveL.Response parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.MoveL.Response parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveL.Response parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.MoveL.Response parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveL.Response parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.MoveL.Response parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.MoveL.Response parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.MoveL.Response parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.MoveL.Response prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.MoveL.Response}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.MoveL.Response)
          cmvr.api.ArmCommand.MoveL.ResponseOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveL_Response_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveL_Response_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.MoveL.Response.class, cmvr.api.ArmCommand.MoveL.Response.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.MoveL.Response.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveL_Response_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.MoveL.Response getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.MoveL.Response.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.MoveL.Response build() {
          cmvr.api.ArmCommand.MoveL.Response result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.MoveL.Response buildPartial() {
          cmvr.api.ArmCommand.MoveL.Response result = new cmvr.api.ArmCommand.MoveL.Response(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.MoveL.Response) {
            return mergeFrom((cmvr.api.ArmCommand.MoveL.Response)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.MoveL.Response other) {
          if (other == cmvr.api.ArmCommand.MoveL.Response.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.MoveL.Response)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.MoveL.Response)
      private static final cmvr.api.ArmCommand.MoveL.Response DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.MoveL.Response();
      }

      public static cmvr.api.ArmCommand.MoveL.Response getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Response>
          PARSER = new com.google.protobuf.AbstractParser<Response>() {
        @java.lang.Override
        public Response parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Response> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Response> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.MoveL.Response getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.MoveL)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.MoveL other = (cmvr.api.ArmCommand.MoveL) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.MoveL parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.MoveL parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.MoveL parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.MoveL parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.MoveL parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.MoveL parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.MoveL parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.MoveL parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.MoveL parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.MoveL parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.MoveL parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.MoveL parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.MoveL prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.MoveL}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.MoveL)
        cmvr.api.ArmCommand.MoveLOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveL_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveL_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.MoveL.class, cmvr.api.ArmCommand.MoveL.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.MoveL.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_MoveL_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.MoveL getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.MoveL.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.MoveL build() {
        cmvr.api.ArmCommand.MoveL result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.MoveL buildPartial() {
        cmvr.api.ArmCommand.MoveL result = new cmvr.api.ArmCommand.MoveL(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.MoveL) {
          return mergeFrom((cmvr.api.ArmCommand.MoveL)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.MoveL other) {
        if (other == cmvr.api.ArmCommand.MoveL.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.MoveL)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.MoveL)
    private static final cmvr.api.ArmCommand.MoveL DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.MoveL();
    }

    public static cmvr.api.ArmCommand.MoveL getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MoveL>
        PARSER = new com.google.protobuf.AbstractParser<MoveL>() {
      @java.lang.Override
      public MoveL parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<MoveL> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<MoveL> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.MoveL getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SpeedJOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.SpeedJ)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.SpeedJ}
   */
  public static final class SpeedJ extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.SpeedJ)
      SpeedJOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SpeedJ.newBuilder() to construct.
    private SpeedJ(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SpeedJ() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SpeedJ();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedJ_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedJ_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.SpeedJ.class, cmvr.api.ArmCommand.SpeedJ.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.SpeedJ.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.JointVelocityCommand velocity = 2;</code>
       * @return Whether the velocity field is set.
       */
      boolean hasVelocity();
      /**
       * <code>.cmvr.api.JointVelocityCommand velocity = 2;</code>
       * @return The velocity.
       */
      cmvr.api.ArmCommand.JointVelocityCommand getVelocity();
      /**
       * <code>.cmvr.api.JointVelocityCommand velocity = 2;</code>
       */
      cmvr.api.ArmCommand.JointVelocityCommandOrBuilder getVelocityOrBuilder();

      /**
       * <code>double acceleration = 3;</code>
       * @return The acceleration.
       */
      double getAcceleration();

      /**
       * <code>double duration = 4;</code>
       * @return The duration.
       */
      double getDuration();
    }
    /**
     * Protobuf type {@code cmvr.api.SpeedJ.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.SpeedJ.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedJ_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedJ_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.SpeedJ.Request.class, cmvr.api.ArmCommand.SpeedJ.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int VELOCITY_FIELD_NUMBER = 2;
      private cmvr.api.ArmCommand.JointVelocityCommand velocity_;
      /**
       * <code>.cmvr.api.JointVelocityCommand velocity = 2;</code>
       * @return Whether the velocity field is set.
       */
      @java.lang.Override
      public boolean hasVelocity() {
        return velocity_ != null;
      }
      /**
       * <code>.cmvr.api.JointVelocityCommand velocity = 2;</code>
       * @return The velocity.
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.JointVelocityCommand getVelocity() {
        return velocity_ == null ? cmvr.api.ArmCommand.JointVelocityCommand.getDefaultInstance() : velocity_;
      }
      /**
       * <code>.cmvr.api.JointVelocityCommand velocity = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.JointVelocityCommandOrBuilder getVelocityOrBuilder() {
        return getVelocity();
      }

      public static final int ACCELERATION_FIELD_NUMBER = 3;
      private double acceleration_;
      /**
       * <code>double acceleration = 3;</code>
       * @return The acceleration.
       */
      @java.lang.Override
      public double getAcceleration() {
        return acceleration_;
      }

      public static final int DURATION_FIELD_NUMBER = 4;
      private double duration_;
      /**
       * <code>double duration = 4;</code>
       * @return The duration.
       */
      @java.lang.Override
      public double getDuration() {
        return duration_;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (velocity_ != null) {
          output.writeMessage(2, getVelocity());
        }
        if (java.lang.Double.doubleToRawLongBits(acceleration_) != 0) {
          output.writeDouble(3, acceleration_);
        }
        if (java.lang.Double.doubleToRawLongBits(duration_) != 0) {
          output.writeDouble(4, duration_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (velocity_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getVelocity());
        }
        if (java.lang.Double.doubleToRawLongBits(acceleration_) != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeDoubleSize(3, acceleration_);
        }
        if (java.lang.Double.doubleToRawLongBits(duration_) != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeDoubleSize(4, duration_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.SpeedJ.Request)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.SpeedJ.Request other = (cmvr.api.ArmCommand.SpeedJ.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasVelocity() != other.hasVelocity()) return false;
        if (hasVelocity()) {
          if (!getVelocity()
              .equals(other.getVelocity())) return false;
        }
        if (java.lang.Double.doubleToLongBits(getAcceleration())
            != java.lang.Double.doubleToLongBits(
                other.getAcceleration())) return false;
        if (java.lang.Double.doubleToLongBits(getDuration())
            != java.lang.Double.doubleToLongBits(
                other.getDuration())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasVelocity()) {
          hash = (37 * hash) + VELOCITY_FIELD_NUMBER;
          hash = (53 * hash) + getVelocity().hashCode();
        }
        hash = (37 * hash) + ACCELERATION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getAcceleration()));
        hash = (37 * hash) + DURATION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getDuration()));
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.SpeedJ.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.SpeedJ.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.SpeedJ.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.SpeedJ.Request)
          cmvr.api.ArmCommand.SpeedJ.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedJ_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedJ_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.SpeedJ.Request.class, cmvr.api.ArmCommand.SpeedJ.Request.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.SpeedJ.Request.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (velocityBuilder_ == null) {
            velocity_ = null;
          } else {
            velocity_ = null;
            velocityBuilder_ = null;
          }
          acceleration_ = 0D;

          duration_ = 0D;

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedJ_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.SpeedJ.Request getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.SpeedJ.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.SpeedJ.Request build() {
          cmvr.api.ArmCommand.SpeedJ.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.SpeedJ.Request buildPartial() {
          cmvr.api.ArmCommand.SpeedJ.Request result = new cmvr.api.ArmCommand.SpeedJ.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (velocityBuilder_ == null) {
            result.velocity_ = velocity_;
          } else {
            result.velocity_ = velocityBuilder_.build();
          }
          result.acceleration_ = acceleration_;
          result.duration_ = duration_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.SpeedJ.Request) {
            return mergeFrom((cmvr.api.ArmCommand.SpeedJ.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.SpeedJ.Request other) {
          if (other == cmvr.api.ArmCommand.SpeedJ.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasVelocity()) {
            mergeVelocity(other.getVelocity());
          }
          if (other.getAcceleration() != 0D) {
            setAcceleration(other.getAcceleration());
          }
          if (other.getDuration() != 0D) {
            setDuration(other.getDuration());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getVelocityFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                case 25: {
                  acceleration_ = input.readDouble();

                  break;
                } // case 25
                case 33: {
                  duration_ = input.readDouble();

                  break;
                } // case 33
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.ArmCommand.JointVelocityCommand velocity_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.JointVelocityCommand, cmvr.api.ArmCommand.JointVelocityCommand.Builder, cmvr.api.ArmCommand.JointVelocityCommandOrBuilder> velocityBuilder_;
        /**
         * <code>.cmvr.api.JointVelocityCommand velocity = 2;</code>
         * @return Whether the velocity field is set.
         */
        public boolean hasVelocity() {
          return velocityBuilder_ != null || velocity_ != null;
        }
        /**
         * <code>.cmvr.api.JointVelocityCommand velocity = 2;</code>
         * @return The velocity.
         */
        public cmvr.api.ArmCommand.JointVelocityCommand getVelocity() {
          if (velocityBuilder_ == null) {
            return velocity_ == null ? cmvr.api.ArmCommand.JointVelocityCommand.getDefaultInstance() : velocity_;
          } else {
            return velocityBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.JointVelocityCommand velocity = 2;</code>
         */
        public Builder setVelocity(cmvr.api.ArmCommand.JointVelocityCommand value) {
          if (velocityBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            velocity_ = value;
            onChanged();
          } else {
            velocityBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointVelocityCommand velocity = 2;</code>
         */
        public Builder setVelocity(
            cmvr.api.ArmCommand.JointVelocityCommand.Builder builderForValue) {
          if (velocityBuilder_ == null) {
            velocity_ = builderForValue.build();
            onChanged();
          } else {
            velocityBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointVelocityCommand velocity = 2;</code>
         */
        public Builder mergeVelocity(cmvr.api.ArmCommand.JointVelocityCommand value) {
          if (velocityBuilder_ == null) {
            if (velocity_ != null) {
              velocity_ =
                cmvr.api.ArmCommand.JointVelocityCommand.newBuilder(velocity_).mergeFrom(value).buildPartial();
            } else {
              velocity_ = value;
            }
            onChanged();
          } else {
            velocityBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointVelocityCommand velocity = 2;</code>
         */
        public Builder clearVelocity() {
          if (velocityBuilder_ == null) {
            velocity_ = null;
            onChanged();
          } else {
            velocity_ = null;
            velocityBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointVelocityCommand velocity = 2;</code>
         */
        public cmvr.api.ArmCommand.JointVelocityCommand.Builder getVelocityBuilder() {
          
          onChanged();
          return getVelocityFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.JointVelocityCommand velocity = 2;</code>
         */
        public cmvr.api.ArmCommand.JointVelocityCommandOrBuilder getVelocityOrBuilder() {
          if (velocityBuilder_ != null) {
            return velocityBuilder_.getMessageOrBuilder();
          } else {
            return velocity_ == null ?
                cmvr.api.ArmCommand.JointVelocityCommand.getDefaultInstance() : velocity_;
          }
        }
        /**
         * <code>.cmvr.api.JointVelocityCommand velocity = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.JointVelocityCommand, cmvr.api.ArmCommand.JointVelocityCommand.Builder, cmvr.api.ArmCommand.JointVelocityCommandOrBuilder> 
            getVelocityFieldBuilder() {
          if (velocityBuilder_ == null) {
            velocityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.ArmCommand.JointVelocityCommand, cmvr.api.ArmCommand.JointVelocityCommand.Builder, cmvr.api.ArmCommand.JointVelocityCommandOrBuilder>(
                    getVelocity(),
                    getParentForChildren(),
                    isClean());
            velocity_ = null;
          }
          return velocityBuilder_;
        }

        private double acceleration_ ;
        /**
         * <code>double acceleration = 3;</code>
         * @return The acceleration.
         */
        @java.lang.Override
        public double getAcceleration() {
          return acceleration_;
        }
        /**
         * <code>double acceleration = 3;</code>
         * @param value The acceleration to set.
         * @return This builder for chaining.
         */
        public Builder setAcceleration(double value) {
          
          acceleration_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>double acceleration = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearAcceleration() {
          
          acceleration_ = 0D;
          onChanged();
          return this;
        }

        private double duration_ ;
        /**
         * <code>double duration = 4;</code>
         * @return The duration.
         */
        @java.lang.Override
        public double getDuration() {
          return duration_;
        }
        /**
         * <code>double duration = 4;</code>
         * @param value The duration to set.
         * @return This builder for chaining.
         */
        public Builder setDuration(double value) {
          
          duration_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>double duration = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearDuration() {
          
          duration_ = 0D;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.SpeedJ.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.SpeedJ.Request)
      private static final cmvr.api.ArmCommand.SpeedJ.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.SpeedJ.Request();
      }

      public static cmvr.api.ArmCommand.SpeedJ.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Request>
          PARSER = new com.google.protobuf.AbstractParser<Request>() {
        @java.lang.Override
        public Request parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Request> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Request> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.SpeedJ.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface ResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.SpeedJ.Response)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.SpeedJ.Response}
     */
    public static final class Response extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.SpeedJ.Response)
        ResponseOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Response.newBuilder() to construct.
      private Response(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Response() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Response();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedJ_Response_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedJ_Response_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.SpeedJ.Response.class, cmvr.api.ArmCommand.SpeedJ.Response.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.SpeedJ.Response)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.SpeedJ.Response other = (cmvr.api.ArmCommand.SpeedJ.Response) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.SpeedJ.Response parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Response parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Response parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Response parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Response parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Response parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Response parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Response parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Response parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Response parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Response parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.SpeedJ.Response parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.SpeedJ.Response prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.SpeedJ.Response}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.SpeedJ.Response)
          cmvr.api.ArmCommand.SpeedJ.ResponseOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedJ_Response_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedJ_Response_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.SpeedJ.Response.class, cmvr.api.ArmCommand.SpeedJ.Response.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.SpeedJ.Response.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedJ_Response_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.SpeedJ.Response getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.SpeedJ.Response.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.SpeedJ.Response build() {
          cmvr.api.ArmCommand.SpeedJ.Response result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.SpeedJ.Response buildPartial() {
          cmvr.api.ArmCommand.SpeedJ.Response result = new cmvr.api.ArmCommand.SpeedJ.Response(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.SpeedJ.Response) {
            return mergeFrom((cmvr.api.ArmCommand.SpeedJ.Response)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.SpeedJ.Response other) {
          if (other == cmvr.api.ArmCommand.SpeedJ.Response.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.SpeedJ.Response)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.SpeedJ.Response)
      private static final cmvr.api.ArmCommand.SpeedJ.Response DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.SpeedJ.Response();
      }

      public static cmvr.api.ArmCommand.SpeedJ.Response getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Response>
          PARSER = new com.google.protobuf.AbstractParser<Response>() {
        @java.lang.Override
        public Response parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Response> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Response> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.SpeedJ.Response getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.SpeedJ)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.SpeedJ other = (cmvr.api.ArmCommand.SpeedJ) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.SpeedJ parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.SpeedJ parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.SpeedJ parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.SpeedJ parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.SpeedJ parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.SpeedJ parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.SpeedJ parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.SpeedJ parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.SpeedJ parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.SpeedJ parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.SpeedJ parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.SpeedJ parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.SpeedJ prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.SpeedJ}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.SpeedJ)
        cmvr.api.ArmCommand.SpeedJOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedJ_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedJ_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.SpeedJ.class, cmvr.api.ArmCommand.SpeedJ.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.SpeedJ.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedJ_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.SpeedJ getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.SpeedJ.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.SpeedJ build() {
        cmvr.api.ArmCommand.SpeedJ result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.SpeedJ buildPartial() {
        cmvr.api.ArmCommand.SpeedJ result = new cmvr.api.ArmCommand.SpeedJ(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.SpeedJ) {
          return mergeFrom((cmvr.api.ArmCommand.SpeedJ)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.SpeedJ other) {
        if (other == cmvr.api.ArmCommand.SpeedJ.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.SpeedJ)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.SpeedJ)
    private static final cmvr.api.ArmCommand.SpeedJ DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.SpeedJ();
    }

    public static cmvr.api.ArmCommand.SpeedJ getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SpeedJ>
        PARSER = new com.google.protobuf.AbstractParser<SpeedJ>() {
      @java.lang.Override
      public SpeedJ parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<SpeedJ> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SpeedJ> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.SpeedJ getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SpeedLOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.SpeedL)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.SpeedL}
   */
  public static final class SpeedL extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.SpeedL)
      SpeedLOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SpeedL.newBuilder() to construct.
    private SpeedL(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SpeedL() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SpeedL();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedL_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedL_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.SpeedL.class, cmvr.api.ArmCommand.SpeedL.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.SpeedL.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.CartesianVelocity velocity = 2;</code>
       * @return Whether the velocity field is set.
       */
      boolean hasVelocity();
      /**
       * <code>.cmvr.api.CartesianVelocity velocity = 2;</code>
       * @return The velocity.
       */
      cmvr.api.ArmCommand.CartesianVelocity getVelocity();
      /**
       * <code>.cmvr.api.CartesianVelocity velocity = 2;</code>
       */
      cmvr.api.ArmCommand.CartesianVelocityOrBuilder getVelocityOrBuilder();

      /**
       * <code>double acceleration = 3;</code>
       * @return The acceleration.
       */
      double getAcceleration();

      /**
       * <code>double duration = 4;</code>
       * @return The duration.
       */
      double getDuration();

      /**
       * <code>.cmvr.api.ArmFrameType frame = 5;</code>
       * @return The enum numeric value on the wire for frame.
       */
      int getFrameValue();
      /**
       * <code>.cmvr.api.ArmFrameType frame = 5;</code>
       * @return The frame.
       */
      cmvr.api.ArmCommand.ArmFrameType getFrame();
    }
    /**
     * Protobuf type {@code cmvr.api.SpeedL.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.SpeedL.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
        frame_ = 0;
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedL_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedL_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.SpeedL.Request.class, cmvr.api.ArmCommand.SpeedL.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int VELOCITY_FIELD_NUMBER = 2;
      private cmvr.api.ArmCommand.CartesianVelocity velocity_;
      /**
       * <code>.cmvr.api.CartesianVelocity velocity = 2;</code>
       * @return Whether the velocity field is set.
       */
      @java.lang.Override
      public boolean hasVelocity() {
        return velocity_ != null;
      }
      /**
       * <code>.cmvr.api.CartesianVelocity velocity = 2;</code>
       * @return The velocity.
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.CartesianVelocity getVelocity() {
        return velocity_ == null ? cmvr.api.ArmCommand.CartesianVelocity.getDefaultInstance() : velocity_;
      }
      /**
       * <code>.cmvr.api.CartesianVelocity velocity = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.CartesianVelocityOrBuilder getVelocityOrBuilder() {
        return getVelocity();
      }

      public static final int ACCELERATION_FIELD_NUMBER = 3;
      private double acceleration_;
      /**
       * <code>double acceleration = 3;</code>
       * @return The acceleration.
       */
      @java.lang.Override
      public double getAcceleration() {
        return acceleration_;
      }

      public static final int DURATION_FIELD_NUMBER = 4;
      private double duration_;
      /**
       * <code>double duration = 4;</code>
       * @return The duration.
       */
      @java.lang.Override
      public double getDuration() {
        return duration_;
      }

      public static final int FRAME_FIELD_NUMBER = 5;
      private int frame_;
      /**
       * <code>.cmvr.api.ArmFrameType frame = 5;</code>
       * @return The enum numeric value on the wire for frame.
       */
      @java.lang.Override public int getFrameValue() {
        return frame_;
      }
      /**
       * <code>.cmvr.api.ArmFrameType frame = 5;</code>
       * @return The frame.
       */
      @java.lang.Override public cmvr.api.ArmCommand.ArmFrameType getFrame() {
        @SuppressWarnings("deprecation")
        cmvr.api.ArmCommand.ArmFrameType result = cmvr.api.ArmCommand.ArmFrameType.valueOf(frame_);
        return result == null ? cmvr.api.ArmCommand.ArmFrameType.UNRECOGNIZED : result;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (velocity_ != null) {
          output.writeMessage(2, getVelocity());
        }
        if (java.lang.Double.doubleToRawLongBits(acceleration_) != 0) {
          output.writeDouble(3, acceleration_);
        }
        if (java.lang.Double.doubleToRawLongBits(duration_) != 0) {
          output.writeDouble(4, duration_);
        }
        if (frame_ != cmvr.api.ArmCommand.ArmFrameType.ARM_FRAME_BASE.getNumber()) {
          output.writeEnum(5, frame_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (velocity_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getVelocity());
        }
        if (java.lang.Double.doubleToRawLongBits(acceleration_) != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeDoubleSize(3, acceleration_);
        }
        if (java.lang.Double.doubleToRawLongBits(duration_) != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeDoubleSize(4, duration_);
        }
        if (frame_ != cmvr.api.ArmCommand.ArmFrameType.ARM_FRAME_BASE.getNumber()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(5, frame_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.SpeedL.Request)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.SpeedL.Request other = (cmvr.api.ArmCommand.SpeedL.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasVelocity() != other.hasVelocity()) return false;
        if (hasVelocity()) {
          if (!getVelocity()
              .equals(other.getVelocity())) return false;
        }
        if (java.lang.Double.doubleToLongBits(getAcceleration())
            != java.lang.Double.doubleToLongBits(
                other.getAcceleration())) return false;
        if (java.lang.Double.doubleToLongBits(getDuration())
            != java.lang.Double.doubleToLongBits(
                other.getDuration())) return false;
        if (frame_ != other.frame_) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasVelocity()) {
          hash = (37 * hash) + VELOCITY_FIELD_NUMBER;
          hash = (53 * hash) + getVelocity().hashCode();
        }
        hash = (37 * hash) + ACCELERATION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getAcceleration()));
        hash = (37 * hash) + DURATION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getDuration()));
        hash = (37 * hash) + FRAME_FIELD_NUMBER;
        hash = (53 * hash) + frame_;
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.SpeedL.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.SpeedL.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedL.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.SpeedL.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedL.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.SpeedL.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedL.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.SpeedL.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedL.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.SpeedL.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedL.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.SpeedL.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.SpeedL.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.SpeedL.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.SpeedL.Request)
          cmvr.api.ArmCommand.SpeedL.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedL_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedL_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.SpeedL.Request.class, cmvr.api.ArmCommand.SpeedL.Request.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.SpeedL.Request.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (velocityBuilder_ == null) {
            velocity_ = null;
          } else {
            velocity_ = null;
            velocityBuilder_ = null;
          }
          acceleration_ = 0D;

          duration_ = 0D;

          frame_ = 0;

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedL_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.SpeedL.Request getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.SpeedL.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.SpeedL.Request build() {
          cmvr.api.ArmCommand.SpeedL.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.SpeedL.Request buildPartial() {
          cmvr.api.ArmCommand.SpeedL.Request result = new cmvr.api.ArmCommand.SpeedL.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (velocityBuilder_ == null) {
            result.velocity_ = velocity_;
          } else {
            result.velocity_ = velocityBuilder_.build();
          }
          result.acceleration_ = acceleration_;
          result.duration_ = duration_;
          result.frame_ = frame_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.SpeedL.Request) {
            return mergeFrom((cmvr.api.ArmCommand.SpeedL.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.SpeedL.Request other) {
          if (other == cmvr.api.ArmCommand.SpeedL.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasVelocity()) {
            mergeVelocity(other.getVelocity());
          }
          if (other.getAcceleration() != 0D) {
            setAcceleration(other.getAcceleration());
          }
          if (other.getDuration() != 0D) {
            setDuration(other.getDuration());
          }
          if (other.frame_ != 0) {
            setFrameValue(other.getFrameValue());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getVelocityFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                case 25: {
                  acceleration_ = input.readDouble();

                  break;
                } // case 25
                case 33: {
                  duration_ = input.readDouble();

                  break;
                } // case 33
                case 40: {
                  frame_ = input.readEnum();

                  break;
                } // case 40
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.ArmCommand.CartesianVelocity velocity_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.CartesianVelocity, cmvr.api.ArmCommand.CartesianVelocity.Builder, cmvr.api.ArmCommand.CartesianVelocityOrBuilder> velocityBuilder_;
        /**
         * <code>.cmvr.api.CartesianVelocity velocity = 2;</code>
         * @return Whether the velocity field is set.
         */
        public boolean hasVelocity() {
          return velocityBuilder_ != null || velocity_ != null;
        }
        /**
         * <code>.cmvr.api.CartesianVelocity velocity = 2;</code>
         * @return The velocity.
         */
        public cmvr.api.ArmCommand.CartesianVelocity getVelocity() {
          if (velocityBuilder_ == null) {
            return velocity_ == null ? cmvr.api.ArmCommand.CartesianVelocity.getDefaultInstance() : velocity_;
          } else {
            return velocityBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CartesianVelocity velocity = 2;</code>
         */
        public Builder setVelocity(cmvr.api.ArmCommand.CartesianVelocity value) {
          if (velocityBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            velocity_ = value;
            onChanged();
          } else {
            velocityBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CartesianVelocity velocity = 2;</code>
         */
        public Builder setVelocity(
            cmvr.api.ArmCommand.CartesianVelocity.Builder builderForValue) {
          if (velocityBuilder_ == null) {
            velocity_ = builderForValue.build();
            onChanged();
          } else {
            velocityBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CartesianVelocity velocity = 2;</code>
         */
        public Builder mergeVelocity(cmvr.api.ArmCommand.CartesianVelocity value) {
          if (velocityBuilder_ == null) {
            if (velocity_ != null) {
              velocity_ =
                cmvr.api.ArmCommand.CartesianVelocity.newBuilder(velocity_).mergeFrom(value).buildPartial();
            } else {
              velocity_ = value;
            }
            onChanged();
          } else {
            velocityBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CartesianVelocity velocity = 2;</code>
         */
        public Builder clearVelocity() {
          if (velocityBuilder_ == null) {
            velocity_ = null;
            onChanged();
          } else {
            velocity_ = null;
            velocityBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CartesianVelocity velocity = 2;</code>
         */
        public cmvr.api.ArmCommand.CartesianVelocity.Builder getVelocityBuilder() {
          
          onChanged();
          return getVelocityFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CartesianVelocity velocity = 2;</code>
         */
        public cmvr.api.ArmCommand.CartesianVelocityOrBuilder getVelocityOrBuilder() {
          if (velocityBuilder_ != null) {
            return velocityBuilder_.getMessageOrBuilder();
          } else {
            return velocity_ == null ?
                cmvr.api.ArmCommand.CartesianVelocity.getDefaultInstance() : velocity_;
          }
        }
        /**
         * <code>.cmvr.api.CartesianVelocity velocity = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.CartesianVelocity, cmvr.api.ArmCommand.CartesianVelocity.Builder, cmvr.api.ArmCommand.CartesianVelocityOrBuilder> 
            getVelocityFieldBuilder() {
          if (velocityBuilder_ == null) {
            velocityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.ArmCommand.CartesianVelocity, cmvr.api.ArmCommand.CartesianVelocity.Builder, cmvr.api.ArmCommand.CartesianVelocityOrBuilder>(
                    getVelocity(),
                    getParentForChildren(),
                    isClean());
            velocity_ = null;
          }
          return velocityBuilder_;
        }

        private double acceleration_ ;
        /**
         * <code>double acceleration = 3;</code>
         * @return The acceleration.
         */
        @java.lang.Override
        public double getAcceleration() {
          return acceleration_;
        }
        /**
         * <code>double acceleration = 3;</code>
         * @param value The acceleration to set.
         * @return This builder for chaining.
         */
        public Builder setAcceleration(double value) {
          
          acceleration_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>double acceleration = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearAcceleration() {
          
          acceleration_ = 0D;
          onChanged();
          return this;
        }

        private double duration_ ;
        /**
         * <code>double duration = 4;</code>
         * @return The duration.
         */
        @java.lang.Override
        public double getDuration() {
          return duration_;
        }
        /**
         * <code>double duration = 4;</code>
         * @param value The duration to set.
         * @return This builder for chaining.
         */
        public Builder setDuration(double value) {
          
          duration_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>double duration = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearDuration() {
          
          duration_ = 0D;
          onChanged();
          return this;
        }

        private int frame_ = 0;
        /**
         * <code>.cmvr.api.ArmFrameType frame = 5;</code>
         * @return The enum numeric value on the wire for frame.
         */
        @java.lang.Override public int getFrameValue() {
          return frame_;
        }
        /**
         * <code>.cmvr.api.ArmFrameType frame = 5;</code>
         * @param value The enum numeric value on the wire for frame to set.
         * @return This builder for chaining.
         */
        public Builder setFrameValue(int value) {
          
          frame_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>.cmvr.api.ArmFrameType frame = 5;</code>
         * @return The frame.
         */
        @java.lang.Override
        public cmvr.api.ArmCommand.ArmFrameType getFrame() {
          @SuppressWarnings("deprecation")
          cmvr.api.ArmCommand.ArmFrameType result = cmvr.api.ArmCommand.ArmFrameType.valueOf(frame_);
          return result == null ? cmvr.api.ArmCommand.ArmFrameType.UNRECOGNIZED : result;
        }
        /**
         * <code>.cmvr.api.ArmFrameType frame = 5;</code>
         * @param value The frame to set.
         * @return This builder for chaining.
         */
        public Builder setFrame(cmvr.api.ArmCommand.ArmFrameType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          
          frame_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <code>.cmvr.api.ArmFrameType frame = 5;</code>
         * @return This builder for chaining.
         */
        public Builder clearFrame() {
          
          frame_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.SpeedL.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.SpeedL.Request)
      private static final cmvr.api.ArmCommand.SpeedL.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.SpeedL.Request();
      }

      public static cmvr.api.ArmCommand.SpeedL.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Request>
          PARSER = new com.google.protobuf.AbstractParser<Request>() {
        @java.lang.Override
        public Request parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Request> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Request> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.SpeedL.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface ResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.SpeedL.Response)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.SpeedL.Response}
     */
    public static final class Response extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.SpeedL.Response)
        ResponseOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Response.newBuilder() to construct.
      private Response(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Response() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Response();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedL_Response_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedL_Response_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.SpeedL.Response.class, cmvr.api.ArmCommand.SpeedL.Response.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.SpeedL.Response)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.SpeedL.Response other = (cmvr.api.ArmCommand.SpeedL.Response) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.SpeedL.Response parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.SpeedL.Response parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedL.Response parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.SpeedL.Response parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedL.Response parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.SpeedL.Response parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedL.Response parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.SpeedL.Response parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedL.Response parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.SpeedL.Response parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.SpeedL.Response parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.SpeedL.Response parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.SpeedL.Response prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.SpeedL.Response}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.SpeedL.Response)
          cmvr.api.ArmCommand.SpeedL.ResponseOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedL_Response_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedL_Response_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.SpeedL.Response.class, cmvr.api.ArmCommand.SpeedL.Response.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.SpeedL.Response.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedL_Response_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.SpeedL.Response getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.SpeedL.Response.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.SpeedL.Response build() {
          cmvr.api.ArmCommand.SpeedL.Response result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.SpeedL.Response buildPartial() {
          cmvr.api.ArmCommand.SpeedL.Response result = new cmvr.api.ArmCommand.SpeedL.Response(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.SpeedL.Response) {
            return mergeFrom((cmvr.api.ArmCommand.SpeedL.Response)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.SpeedL.Response other) {
          if (other == cmvr.api.ArmCommand.SpeedL.Response.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.SpeedL.Response)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.SpeedL.Response)
      private static final cmvr.api.ArmCommand.SpeedL.Response DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.SpeedL.Response();
      }

      public static cmvr.api.ArmCommand.SpeedL.Response getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Response>
          PARSER = new com.google.protobuf.AbstractParser<Response>() {
        @java.lang.Override
        public Response parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Response> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Response> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.SpeedL.Response getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.SpeedL)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.SpeedL other = (cmvr.api.ArmCommand.SpeedL) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.SpeedL parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.SpeedL parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.SpeedL parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.SpeedL parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.SpeedL parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.SpeedL parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.SpeedL parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.SpeedL parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.SpeedL parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.SpeedL parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.SpeedL parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.SpeedL parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.SpeedL prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.SpeedL}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.SpeedL)
        cmvr.api.ArmCommand.SpeedLOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedL_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedL_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.SpeedL.class, cmvr.api.ArmCommand.SpeedL.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.SpeedL.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_SpeedL_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.SpeedL getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.SpeedL.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.SpeedL build() {
        cmvr.api.ArmCommand.SpeedL result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.SpeedL buildPartial() {
        cmvr.api.ArmCommand.SpeedL result = new cmvr.api.ArmCommand.SpeedL(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.SpeedL) {
          return mergeFrom((cmvr.api.ArmCommand.SpeedL)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.SpeedL other) {
        if (other == cmvr.api.ArmCommand.SpeedL.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.SpeedL)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.SpeedL)
    private static final cmvr.api.ArmCommand.SpeedL DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.SpeedL();
    }

    public static cmvr.api.ArmCommand.SpeedL getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SpeedL>
        PARSER = new com.google.protobuf.AbstractParser<SpeedL>() {
      @java.lang.Override
      public SpeedL parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<SpeedL> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SpeedL> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.SpeedL getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ServoJOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.ServoJ)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.ServoJ}
   */
  public static final class ServoJ extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.ServoJ)
      ServoJOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ServoJ.newBuilder() to construct.
    private ServoJ(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ServoJ() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ServoJ();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_ServoJ_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_ServoJ_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.ServoJ.class, cmvr.api.ArmCommand.ServoJ.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.ServoJ.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.JointPositionCommand target = 2;</code>
       * @return Whether the target field is set.
       */
      boolean hasTarget();
      /**
       * <code>.cmvr.api.JointPositionCommand target = 2;</code>
       * @return The target.
       */
      cmvr.api.ArmCommand.JointPositionCommand getTarget();
      /**
       * <code>.cmvr.api.JointPositionCommand target = 2;</code>
       */
      cmvr.api.ArmCommand.JointPositionCommandOrBuilder getTargetOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.ServoJ.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.ServoJ.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_ServoJ_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_ServoJ_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.ServoJ.Request.class, cmvr.api.ArmCommand.ServoJ.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int TARGET_FIELD_NUMBER = 2;
      private cmvr.api.ArmCommand.JointPositionCommand target_;
      /**
       * <code>.cmvr.api.JointPositionCommand target = 2;</code>
       * @return Whether the target field is set.
       */
      @java.lang.Override
      public boolean hasTarget() {
        return target_ != null;
      }
      /**
       * <code>.cmvr.api.JointPositionCommand target = 2;</code>
       * @return The target.
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.JointPositionCommand getTarget() {
        return target_ == null ? cmvr.api.ArmCommand.JointPositionCommand.getDefaultInstance() : target_;
      }
      /**
       * <code>.cmvr.api.JointPositionCommand target = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.JointPositionCommandOrBuilder getTargetOrBuilder() {
        return getTarget();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (target_ != null) {
          output.writeMessage(2, getTarget());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (target_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getTarget());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.ServoJ.Request)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.ServoJ.Request other = (cmvr.api.ArmCommand.ServoJ.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasTarget() != other.hasTarget()) return false;
        if (hasTarget()) {
          if (!getTarget()
              .equals(other.getTarget())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasTarget()) {
          hash = (37 * hash) + TARGET_FIELD_NUMBER;
          hash = (53 * hash) + getTarget().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.ServoJ.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.ServoJ.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ServoJ.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.ServoJ.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ServoJ.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.ServoJ.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ServoJ.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.ServoJ.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ServoJ.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.ServoJ.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ServoJ.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.ServoJ.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.ServoJ.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.ServoJ.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.ServoJ.Request)
          cmvr.api.ArmCommand.ServoJ.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_ServoJ_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_ServoJ_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.ServoJ.Request.class, cmvr.api.ArmCommand.ServoJ.Request.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.ServoJ.Request.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (targetBuilder_ == null) {
            target_ = null;
          } else {
            target_ = null;
            targetBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_ServoJ_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.ServoJ.Request getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.ServoJ.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.ServoJ.Request build() {
          cmvr.api.ArmCommand.ServoJ.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.ServoJ.Request buildPartial() {
          cmvr.api.ArmCommand.ServoJ.Request result = new cmvr.api.ArmCommand.ServoJ.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (targetBuilder_ == null) {
            result.target_ = target_;
          } else {
            result.target_ = targetBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.ServoJ.Request) {
            return mergeFrom((cmvr.api.ArmCommand.ServoJ.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.ServoJ.Request other) {
          if (other == cmvr.api.ArmCommand.ServoJ.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasTarget()) {
            mergeTarget(other.getTarget());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getTargetFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.ArmCommand.JointPositionCommand target_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.JointPositionCommand, cmvr.api.ArmCommand.JointPositionCommand.Builder, cmvr.api.ArmCommand.JointPositionCommandOrBuilder> targetBuilder_;
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         * @return Whether the target field is set.
         */
        public boolean hasTarget() {
          return targetBuilder_ != null || target_ != null;
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         * @return The target.
         */
        public cmvr.api.ArmCommand.JointPositionCommand getTarget() {
          if (targetBuilder_ == null) {
            return target_ == null ? cmvr.api.ArmCommand.JointPositionCommand.getDefaultInstance() : target_;
          } else {
            return targetBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         */
        public Builder setTarget(cmvr.api.ArmCommand.JointPositionCommand value) {
          if (targetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            target_ = value;
            onChanged();
          } else {
            targetBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         */
        public Builder setTarget(
            cmvr.api.ArmCommand.JointPositionCommand.Builder builderForValue) {
          if (targetBuilder_ == null) {
            target_ = builderForValue.build();
            onChanged();
          } else {
            targetBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         */
        public Builder mergeTarget(cmvr.api.ArmCommand.JointPositionCommand value) {
          if (targetBuilder_ == null) {
            if (target_ != null) {
              target_ =
                cmvr.api.ArmCommand.JointPositionCommand.newBuilder(target_).mergeFrom(value).buildPartial();
            } else {
              target_ = value;
            }
            onChanged();
          } else {
            targetBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         */
        public Builder clearTarget() {
          if (targetBuilder_ == null) {
            target_ = null;
            onChanged();
          } else {
            target_ = null;
            targetBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         */
        public cmvr.api.ArmCommand.JointPositionCommand.Builder getTargetBuilder() {
          
          onChanged();
          return getTargetFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         */
        public cmvr.api.ArmCommand.JointPositionCommandOrBuilder getTargetOrBuilder() {
          if (targetBuilder_ != null) {
            return targetBuilder_.getMessageOrBuilder();
          } else {
            return target_ == null ?
                cmvr.api.ArmCommand.JointPositionCommand.getDefaultInstance() : target_;
          }
        }
        /**
         * <code>.cmvr.api.JointPositionCommand target = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.JointPositionCommand, cmvr.api.ArmCommand.JointPositionCommand.Builder, cmvr.api.ArmCommand.JointPositionCommandOrBuilder> 
            getTargetFieldBuilder() {
          if (targetBuilder_ == null) {
            targetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.ArmCommand.JointPositionCommand, cmvr.api.ArmCommand.JointPositionCommand.Builder, cmvr.api.ArmCommand.JointPositionCommandOrBuilder>(
                    getTarget(),
                    getParentForChildren(),
                    isClean());
            target_ = null;
          }
          return targetBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.ServoJ.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.ServoJ.Request)
      private static final cmvr.api.ArmCommand.ServoJ.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.ServoJ.Request();
      }

      public static cmvr.api.ArmCommand.ServoJ.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Request>
          PARSER = new com.google.protobuf.AbstractParser<Request>() {
        @java.lang.Override
        public Request parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Request> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Request> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.ServoJ.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface ResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.ServoJ.Response)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.ServoJ.Response}
     */
    public static final class Response extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.ServoJ.Response)
        ResponseOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Response.newBuilder() to construct.
      private Response(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Response() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Response();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_ServoJ_Response_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_ServoJ_Response_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.ServoJ.Response.class, cmvr.api.ArmCommand.ServoJ.Response.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.ServoJ.Response)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.ServoJ.Response other = (cmvr.api.ArmCommand.ServoJ.Response) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.ServoJ.Response parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.ServoJ.Response parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ServoJ.Response parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.ServoJ.Response parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ServoJ.Response parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.ServoJ.Response parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ServoJ.Response parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.ServoJ.Response parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ServoJ.Response parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.ServoJ.Response parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ServoJ.Response parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.ServoJ.Response parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.ServoJ.Response prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.ServoJ.Response}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.ServoJ.Response)
          cmvr.api.ArmCommand.ServoJ.ResponseOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_ServoJ_Response_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_ServoJ_Response_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.ServoJ.Response.class, cmvr.api.ArmCommand.ServoJ.Response.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.ServoJ.Response.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_ServoJ_Response_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.ServoJ.Response getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.ServoJ.Response.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.ServoJ.Response build() {
          cmvr.api.ArmCommand.ServoJ.Response result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.ServoJ.Response buildPartial() {
          cmvr.api.ArmCommand.ServoJ.Response result = new cmvr.api.ArmCommand.ServoJ.Response(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.ServoJ.Response) {
            return mergeFrom((cmvr.api.ArmCommand.ServoJ.Response)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.ServoJ.Response other) {
          if (other == cmvr.api.ArmCommand.ServoJ.Response.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.ServoJ.Response)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.ServoJ.Response)
      private static final cmvr.api.ArmCommand.ServoJ.Response DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.ServoJ.Response();
      }

      public static cmvr.api.ArmCommand.ServoJ.Response getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Response>
          PARSER = new com.google.protobuf.AbstractParser<Response>() {
        @java.lang.Override
        public Response parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Response> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Response> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.ServoJ.Response getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.ServoJ)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.ServoJ other = (cmvr.api.ArmCommand.ServoJ) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.ServoJ parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.ServoJ parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.ServoJ parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.ServoJ parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.ServoJ parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.ServoJ parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.ServoJ parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.ServoJ parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.ServoJ parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.ServoJ parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.ServoJ parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.ServoJ parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.ServoJ prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.ServoJ}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.ServoJ)
        cmvr.api.ArmCommand.ServoJOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_ServoJ_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_ServoJ_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.ServoJ.class, cmvr.api.ArmCommand.ServoJ.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.ServoJ.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_ServoJ_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.ServoJ getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.ServoJ.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.ServoJ build() {
        cmvr.api.ArmCommand.ServoJ result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.ServoJ buildPartial() {
        cmvr.api.ArmCommand.ServoJ result = new cmvr.api.ArmCommand.ServoJ(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.ServoJ) {
          return mergeFrom((cmvr.api.ArmCommand.ServoJ)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.ServoJ other) {
        if (other == cmvr.api.ArmCommand.ServoJ.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.ServoJ)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.ServoJ)
    private static final cmvr.api.ArmCommand.ServoJ DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.ServoJ();
    }

    public static cmvr.api.ArmCommand.ServoJ getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ServoJ>
        PARSER = new com.google.protobuf.AbstractParser<ServoJ>() {
      @java.lang.Override
      public ServoJ parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ServoJ> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ServoJ> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.ServoJ getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface JointStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.JointState)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated string name = 1;</code>
     * @return A list containing the name.
     */
    java.util.List<java.lang.String>
        getNameList();
    /**
     * <code>repeated string name = 1;</code>
     * @return The count of name.
     */
    int getNameCount();
    /**
     * <code>repeated string name = 1;</code>
     * @param index The index of the element to return.
     * @return The name at the given index.
     */
    java.lang.String getName(int index);
    /**
     * <code>repeated string name = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the name at the given index.
     */
    com.google.protobuf.ByteString
        getNameBytes(int index);

    /**
     * <code>repeated double position = 2;</code>
     * @return A list containing the position.
     */
    java.util.List<java.lang.Double> getPositionList();
    /**
     * <code>repeated double position = 2;</code>
     * @return The count of position.
     */
    int getPositionCount();
    /**
     * <code>repeated double position = 2;</code>
     * @param index The index of the element to return.
     * @return The position at the given index.
     */
    double getPosition(int index);

    /**
     * <code>repeated double velocity = 3;</code>
     * @return A list containing the velocity.
     */
    java.util.List<java.lang.Double> getVelocityList();
    /**
     * <code>repeated double velocity = 3;</code>
     * @return The count of velocity.
     */
    int getVelocityCount();
    /**
     * <code>repeated double velocity = 3;</code>
     * @param index The index of the element to return.
     * @return The velocity at the given index.
     */
    double getVelocity(int index);

    /**
     * <code>repeated double effort = 4;</code>
     * @return A list containing the effort.
     */
    java.util.List<java.lang.Double> getEffortList();
    /**
     * <code>repeated double effort = 4;</code>
     * @return The count of effort.
     */
    int getEffortCount();
    /**
     * <code>repeated double effort = 4;</code>
     * @param index The index of the element to return.
     * @return The effort at the given index.
     */
    double getEffort(int index);

    /**
     * <code>double timestamp = 5;</code>
     * @return The timestamp.
     */
    double getTimestamp();
  }
  /**
   * Protobuf type {@code cmvr.api.JointState}
   */
  public static final class JointState extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.JointState)
      JointStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use JointState.newBuilder() to construct.
    private JointState(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private JointState() {
      name_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      position_ = emptyDoubleList();
      velocity_ = emptyDoubleList();
      effort_ = emptyDoubleList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new JointState();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_JointState_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_JointState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.JointState.class, cmvr.api.ArmCommand.JointState.Builder.class);
    }

    public static final int NAME_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList name_;
    /**
     * <code>repeated string name = 1;</code>
     * @return A list containing the name.
     */
    public com.google.protobuf.ProtocolStringList
        getNameList() {
      return name_;
    }
    /**
     * <code>repeated string name = 1;</code>
     * @return The count of name.
     */
    public int getNameCount() {
      return name_.size();
    }
    /**
     * <code>repeated string name = 1;</code>
     * @param index The index of the element to return.
     * @return The name at the given index.
     */
    public java.lang.String getName(int index) {
      return name_.get(index);
    }
    /**
     * <code>repeated string name = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the name at the given index.
     */
    public com.google.protobuf.ByteString
        getNameBytes(int index) {
      return name_.getByteString(index);
    }

    public static final int POSITION_FIELD_NUMBER = 2;
    private com.google.protobuf.Internal.DoubleList position_;
    /**
     * <code>repeated double position = 2;</code>
     * @return A list containing the position.
     */
    @java.lang.Override
    public java.util.List<java.lang.Double>
        getPositionList() {
      return position_;
    }
    /**
     * <code>repeated double position = 2;</code>
     * @return The count of position.
     */
    public int getPositionCount() {
      return position_.size();
    }
    /**
     * <code>repeated double position = 2;</code>
     * @param index The index of the element to return.
     * @return The position at the given index.
     */
    public double getPosition(int index) {
      return position_.getDouble(index);
    }
    private int positionMemoizedSerializedSize = -1;

    public static final int VELOCITY_FIELD_NUMBER = 3;
    private com.google.protobuf.Internal.DoubleList velocity_;
    /**
     * <code>repeated double velocity = 3;</code>
     * @return A list containing the velocity.
     */
    @java.lang.Override
    public java.util.List<java.lang.Double>
        getVelocityList() {
      return velocity_;
    }
    /**
     * <code>repeated double velocity = 3;</code>
     * @return The count of velocity.
     */
    public int getVelocityCount() {
      return velocity_.size();
    }
    /**
     * <code>repeated double velocity = 3;</code>
     * @param index The index of the element to return.
     * @return The velocity at the given index.
     */
    public double getVelocity(int index) {
      return velocity_.getDouble(index);
    }
    private int velocityMemoizedSerializedSize = -1;

    public static final int EFFORT_FIELD_NUMBER = 4;
    private com.google.protobuf.Internal.DoubleList effort_;
    /**
     * <code>repeated double effort = 4;</code>
     * @return A list containing the effort.
     */
    @java.lang.Override
    public java.util.List<java.lang.Double>
        getEffortList() {
      return effort_;
    }
    /**
     * <code>repeated double effort = 4;</code>
     * @return The count of effort.
     */
    public int getEffortCount() {
      return effort_.size();
    }
    /**
     * <code>repeated double effort = 4;</code>
     * @param index The index of the element to return.
     * @return The effort at the given index.
     */
    public double getEffort(int index) {
      return effort_.getDouble(index);
    }
    private int effortMemoizedSerializedSize = -1;

    public static final int TIMESTAMP_FIELD_NUMBER = 5;
    private double timestamp_;
    /**
     * <code>double timestamp = 5;</code>
     * @return The timestamp.
     */
    @java.lang.Override
    public double getTimestamp() {
      return timestamp_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < name_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_.getRaw(i));
      }
      if (getPositionList().size() > 0) {
        output.writeUInt32NoTag(18);
        output.writeUInt32NoTag(positionMemoizedSerializedSize);
      }
      for (int i = 0; i < position_.size(); i++) {
        output.writeDoubleNoTag(position_.getDouble(i));
      }
      if (getVelocityList().size() > 0) {
        output.writeUInt32NoTag(26);
        output.writeUInt32NoTag(velocityMemoizedSerializedSize);
      }
      for (int i = 0; i < velocity_.size(); i++) {
        output.writeDoubleNoTag(velocity_.getDouble(i));
      }
      if (getEffortList().size() > 0) {
        output.writeUInt32NoTag(34);
        output.writeUInt32NoTag(effortMemoizedSerializedSize);
      }
      for (int i = 0; i < effort_.size(); i++) {
        output.writeDoubleNoTag(effort_.getDouble(i));
      }
      if (java.lang.Double.doubleToRawLongBits(timestamp_) != 0) {
        output.writeDouble(5, timestamp_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < name_.size(); i++) {
          dataSize += computeStringSizeNoTag(name_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getNameList().size();
      }
      {
        int dataSize = 0;
        dataSize = 8 * getPositionList().size();
        size += dataSize;
        if (!getPositionList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        positionMemoizedSerializedSize = dataSize;
      }
      {
        int dataSize = 0;
        dataSize = 8 * getVelocityList().size();
        size += dataSize;
        if (!getVelocityList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        velocityMemoizedSerializedSize = dataSize;
      }
      {
        int dataSize = 0;
        dataSize = 8 * getEffortList().size();
        size += dataSize;
        if (!getEffortList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        effortMemoizedSerializedSize = dataSize;
      }
      if (java.lang.Double.doubleToRawLongBits(timestamp_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(5, timestamp_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.JointState)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.JointState other = (cmvr.api.ArmCommand.JointState) obj;

      if (!getNameList()
          .equals(other.getNameList())) return false;
      if (!getPositionList()
          .equals(other.getPositionList())) return false;
      if (!getVelocityList()
          .equals(other.getVelocityList())) return false;
      if (!getEffortList()
          .equals(other.getEffortList())) return false;
      if (java.lang.Double.doubleToLongBits(getTimestamp())
          != java.lang.Double.doubleToLongBits(
              other.getTimestamp())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getNameCount() > 0) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getNameList().hashCode();
      }
      if (getPositionCount() > 0) {
        hash = (37 * hash) + POSITION_FIELD_NUMBER;
        hash = (53 * hash) + getPositionList().hashCode();
      }
      if (getVelocityCount() > 0) {
        hash = (37 * hash) + VELOCITY_FIELD_NUMBER;
        hash = (53 * hash) + getVelocityList().hashCode();
      }
      if (getEffortCount() > 0) {
        hash = (37 * hash) + EFFORT_FIELD_NUMBER;
        hash = (53 * hash) + getEffortList().hashCode();
      }
      hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getTimestamp()));
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.JointState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.JointState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.JointState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.JointState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.JointState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.JointState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.JointState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.JointState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.JointState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.JointState)
        cmvr.api.ArmCommand.JointStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_JointState_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_JointState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.JointState.class, cmvr.api.ArmCommand.JointState.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.JointState.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        position_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000002);
        velocity_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000004);
        effort_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000008);
        timestamp_ = 0D;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_JointState_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.JointState getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.JointState.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.JointState build() {
        cmvr.api.ArmCommand.JointState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.JointState buildPartial() {
        cmvr.api.ArmCommand.JointState result = new cmvr.api.ArmCommand.JointState(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          name_ = name_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.name_ = name_;
        if (((bitField0_ & 0x00000002) != 0)) {
          position_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.position_ = position_;
        if (((bitField0_ & 0x00000004) != 0)) {
          velocity_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.velocity_ = velocity_;
        if (((bitField0_ & 0x00000008) != 0)) {
          effort_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.effort_ = effort_;
        result.timestamp_ = timestamp_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.JointState) {
          return mergeFrom((cmvr.api.ArmCommand.JointState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.JointState other) {
        if (other == cmvr.api.ArmCommand.JointState.getDefaultInstance()) return this;
        if (!other.name_.isEmpty()) {
          if (name_.isEmpty()) {
            name_ = other.name_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureNameIsMutable();
            name_.addAll(other.name_);
          }
          onChanged();
        }
        if (!other.position_.isEmpty()) {
          if (position_.isEmpty()) {
            position_ = other.position_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensurePositionIsMutable();
            position_.addAll(other.position_);
          }
          onChanged();
        }
        if (!other.velocity_.isEmpty()) {
          if (velocity_.isEmpty()) {
            velocity_ = other.velocity_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureVelocityIsMutable();
            velocity_.addAll(other.velocity_);
          }
          onChanged();
        }
        if (!other.effort_.isEmpty()) {
          if (effort_.isEmpty()) {
            effort_ = other.effort_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureEffortIsMutable();
            effort_.addAll(other.effort_);
          }
          onChanged();
        }
        if (other.getTimestamp() != 0D) {
          setTimestamp(other.getTimestamp());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureNameIsMutable();
                name_.add(s);
                break;
              } // case 10
              case 17: {
                double v = input.readDouble();
                ensurePositionIsMutable();
                position_.addDouble(v);
                break;
              } // case 17
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensurePositionIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  position_.addDouble(input.readDouble());
                }
                input.popLimit(limit);
                break;
              } // case 18
              case 25: {
                double v = input.readDouble();
                ensureVelocityIsMutable();
                velocity_.addDouble(v);
                break;
              } // case 25
              case 26: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureVelocityIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  velocity_.addDouble(input.readDouble());
                }
                input.popLimit(limit);
                break;
              } // case 26
              case 33: {
                double v = input.readDouble();
                ensureEffortIsMutable();
                effort_.addDouble(v);
                break;
              } // case 33
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureEffortIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  effort_.addDouble(input.readDouble());
                }
                input.popLimit(limit);
                break;
              } // case 34
              case 41: {
                timestamp_ = input.readDouble();

                break;
              } // case 41
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.LazyStringList name_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureNameIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          name_ = new com.google.protobuf.LazyStringArrayList(name_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated string name = 1;</code>
       * @return A list containing the name.
       */
      public com.google.protobuf.ProtocolStringList
          getNameList() {
        return name_.getUnmodifiableView();
      }
      /**
       * <code>repeated string name = 1;</code>
       * @return The count of name.
       */
      public int getNameCount() {
        return name_.size();
      }
      /**
       * <code>repeated string name = 1;</code>
       * @param index The index of the element to return.
       * @return The name at the given index.
       */
      public java.lang.String getName(int index) {
        return name_.get(index);
      }
      /**
       * <code>repeated string name = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the name at the given index.
       */
      public com.google.protobuf.ByteString
          getNameBytes(int index) {
        return name_.getByteString(index);
      }
      /**
       * <code>repeated string name = 1;</code>
       * @param index The index to set the value at.
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureNameIsMutable();
        name_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string name = 1;</code>
       * @param value The name to add.
       * @return This builder for chaining.
       */
      public Builder addName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureNameIsMutable();
        name_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string name = 1;</code>
       * @param values The name to add.
       * @return This builder for chaining.
       */
      public Builder addAllName(
          java.lang.Iterable<java.lang.String> values) {
        ensureNameIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, name_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        name_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string name = 1;</code>
       * @param value The bytes of the name to add.
       * @return This builder for chaining.
       */
      public Builder addNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureNameIsMutable();
        name_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.DoubleList position_ = emptyDoubleList();
      private void ensurePositionIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          position_ = mutableCopy(position_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated double position = 2;</code>
       * @return A list containing the position.
       */
      public java.util.List<java.lang.Double>
          getPositionList() {
        return ((bitField0_ & 0x00000002) != 0) ?
                 java.util.Collections.unmodifiableList(position_) : position_;
      }
      /**
       * <code>repeated double position = 2;</code>
       * @return The count of position.
       */
      public int getPositionCount() {
        return position_.size();
      }
      /**
       * <code>repeated double position = 2;</code>
       * @param index The index of the element to return.
       * @return The position at the given index.
       */
      public double getPosition(int index) {
        return position_.getDouble(index);
      }
      /**
       * <code>repeated double position = 2;</code>
       * @param index The index to set the value at.
       * @param value The position to set.
       * @return This builder for chaining.
       */
      public Builder setPosition(
          int index, double value) {
        ensurePositionIsMutable();
        position_.setDouble(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double position = 2;</code>
       * @param value The position to add.
       * @return This builder for chaining.
       */
      public Builder addPosition(double value) {
        ensurePositionIsMutable();
        position_.addDouble(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double position = 2;</code>
       * @param values The position to add.
       * @return This builder for chaining.
       */
      public Builder addAllPosition(
          java.lang.Iterable<? extends java.lang.Double> values) {
        ensurePositionIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, position_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double position = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPosition() {
        position_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.DoubleList velocity_ = emptyDoubleList();
      private void ensureVelocityIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          velocity_ = mutableCopy(velocity_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * <code>repeated double velocity = 3;</code>
       * @return A list containing the velocity.
       */
      public java.util.List<java.lang.Double>
          getVelocityList() {
        return ((bitField0_ & 0x00000004) != 0) ?
                 java.util.Collections.unmodifiableList(velocity_) : velocity_;
      }
      /**
       * <code>repeated double velocity = 3;</code>
       * @return The count of velocity.
       */
      public int getVelocityCount() {
        return velocity_.size();
      }
      /**
       * <code>repeated double velocity = 3;</code>
       * @param index The index of the element to return.
       * @return The velocity at the given index.
       */
      public double getVelocity(int index) {
        return velocity_.getDouble(index);
      }
      /**
       * <code>repeated double velocity = 3;</code>
       * @param index The index to set the value at.
       * @param value The velocity to set.
       * @return This builder for chaining.
       */
      public Builder setVelocity(
          int index, double value) {
        ensureVelocityIsMutable();
        velocity_.setDouble(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double velocity = 3;</code>
       * @param value The velocity to add.
       * @return This builder for chaining.
       */
      public Builder addVelocity(double value) {
        ensureVelocityIsMutable();
        velocity_.addDouble(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double velocity = 3;</code>
       * @param values The velocity to add.
       * @return This builder for chaining.
       */
      public Builder addAllVelocity(
          java.lang.Iterable<? extends java.lang.Double> values) {
        ensureVelocityIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, velocity_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double velocity = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearVelocity() {
        velocity_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.DoubleList effort_ = emptyDoubleList();
      private void ensureEffortIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          effort_ = mutableCopy(effort_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * <code>repeated double effort = 4;</code>
       * @return A list containing the effort.
       */
      public java.util.List<java.lang.Double>
          getEffortList() {
        return ((bitField0_ & 0x00000008) != 0) ?
                 java.util.Collections.unmodifiableList(effort_) : effort_;
      }
      /**
       * <code>repeated double effort = 4;</code>
       * @return The count of effort.
       */
      public int getEffortCount() {
        return effort_.size();
      }
      /**
       * <code>repeated double effort = 4;</code>
       * @param index The index of the element to return.
       * @return The effort at the given index.
       */
      public double getEffort(int index) {
        return effort_.getDouble(index);
      }
      /**
       * <code>repeated double effort = 4;</code>
       * @param index The index to set the value at.
       * @param value The effort to set.
       * @return This builder for chaining.
       */
      public Builder setEffort(
          int index, double value) {
        ensureEffortIsMutable();
        effort_.setDouble(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double effort = 4;</code>
       * @param value The effort to add.
       * @return This builder for chaining.
       */
      public Builder addEffort(double value) {
        ensureEffortIsMutable();
        effort_.addDouble(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double effort = 4;</code>
       * @param values The effort to add.
       * @return This builder for chaining.
       */
      public Builder addAllEffort(
          java.lang.Iterable<? extends java.lang.Double> values) {
        ensureEffortIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, effort_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated double effort = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearEffort() {
        effort_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }

      private double timestamp_ ;
      /**
       * <code>double timestamp = 5;</code>
       * @return The timestamp.
       */
      @java.lang.Override
      public double getTimestamp() {
        return timestamp_;
      }
      /**
       * <code>double timestamp = 5;</code>
       * @param value The timestamp to set.
       * @return This builder for chaining.
       */
      public Builder setTimestamp(double value) {
        
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double timestamp = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestamp() {
        
        timestamp_ = 0D;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.JointState)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.JointState)
    private static final cmvr.api.ArmCommand.JointState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.JointState();
    }

    public static cmvr.api.ArmCommand.JointState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<JointState>
        PARSER = new com.google.protobuf.AbstractParser<JointState>() {
      @java.lang.Override
      public JointState parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<JointState> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<JointState> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.JointState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface JointRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.JointRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
     * @return The header.
     */
    cmvr.api.Common.CommandHeader.Request getHeader();
    /**
     * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
     */
    cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();
  }
  /**
   * Protobuf type {@code cmvr.api.JointRequest}
   */
  public static final class JointRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.JointRequest)
      JointRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use JointRequest.newBuilder() to construct.
    private JointRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private JointRequest() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new JointRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_JointRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_JointRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.JointRequest.class, cmvr.api.ArmCommand.JointRequest.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private cmvr.api.Common.CommandHeader.Request header_;
    /**
     * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cmvr.api.Common.CommandHeader.Request getHeader() {
      return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
    }
    /**
     * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
     */
    @java.lang.Override
    public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (header_ != null) {
        output.writeMessage(1, getHeader());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.JointRequest)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.JointRequest other = (cmvr.api.ArmCommand.JointRequest) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.JointRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.JointRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.JointRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.JointRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.JointRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.JointRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.JointRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.JointRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.JointRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.JointRequest)
        cmvr.api.ArmCommand.JointRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_JointRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_JointRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.JointRequest.class, cmvr.api.ArmCommand.JointRequest.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.JointRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_JointRequest_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.JointRequest getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.JointRequest.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.JointRequest build() {
        cmvr.api.ArmCommand.JointRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.JointRequest buildPartial() {
        cmvr.api.ArmCommand.JointRequest result = new cmvr.api.ArmCommand.JointRequest(this);
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.JointRequest) {
          return mergeFrom((cmvr.api.ArmCommand.JointRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.JointRequest other) {
        if (other == cmvr.api.ArmCommand.JointRequest.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getHeaderFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }

      private cmvr.api.Common.CommandHeader.Request header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      public Builder setHeader(
          cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.JointRequest)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.JointRequest)
    private static final cmvr.api.ArmCommand.JointRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.JointRequest();
    }

    public static cmvr.api.ArmCommand.JointRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<JointRequest>
        PARSER = new com.google.protobuf.AbstractParser<JointRequest>() {
      @java.lang.Override
      public JointRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<JointRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<JointRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.JointRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface JointResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.JointResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
     * @return The header.
     */
    cmvr.api.Common.CommandHeader.Feedback getHeader();
    /**
     * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
     */
    cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

    /**
     * <code>.cmvr.api.JointState state = 2;</code>
     * @return Whether the state field is set.
     */
    boolean hasState();
    /**
     * <code>.cmvr.api.JointState state = 2;</code>
     * @return The state.
     */
    cmvr.api.ArmCommand.JointState getState();
    /**
     * <code>.cmvr.api.JointState state = 2;</code>
     */
    cmvr.api.ArmCommand.JointStateOrBuilder getStateOrBuilder();
  }
  /**
   * Protobuf type {@code cmvr.api.JointResponse}
   */
  public static final class JointResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.JointResponse)
      JointResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use JointResponse.newBuilder() to construct.
    private JointResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private JointResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new JointResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_JointResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_JointResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.JointResponse.class, cmvr.api.ArmCommand.JointResponse.Builder.class);
    }

    public static final int HEADER_FIELD_NUMBER = 1;
    private cmvr.api.Common.CommandHeader.Feedback header_;
    /**
     * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return header_ != null;
    }
    /**
     * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cmvr.api.Common.CommandHeader.Feedback getHeader() {
      return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
    }
    /**
     * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
     */
    @java.lang.Override
    public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
      return getHeader();
    }

    public static final int STATE_FIELD_NUMBER = 2;
    private cmvr.api.ArmCommand.JointState state_;
    /**
     * <code>.cmvr.api.JointState state = 2;</code>
     * @return Whether the state field is set.
     */
    @java.lang.Override
    public boolean hasState() {
      return state_ != null;
    }
    /**
     * <code>.cmvr.api.JointState state = 2;</code>
     * @return The state.
     */
    @java.lang.Override
    public cmvr.api.ArmCommand.JointState getState() {
      return state_ == null ? cmvr.api.ArmCommand.JointState.getDefaultInstance() : state_;
    }
    /**
     * <code>.cmvr.api.JointState state = 2;</code>
     */
    @java.lang.Override
    public cmvr.api.ArmCommand.JointStateOrBuilder getStateOrBuilder() {
      return getState();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (header_ != null) {
        output.writeMessage(1, getHeader());
      }
      if (state_ != null) {
        output.writeMessage(2, getState());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (header_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (state_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getState());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.JointResponse)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.JointResponse other = (cmvr.api.ArmCommand.JointResponse) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasState() != other.hasState()) return false;
      if (hasState()) {
        if (!getState()
            .equals(other.getState())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasState()) {
        hash = (37 * hash) + STATE_FIELD_NUMBER;
        hash = (53 * hash) + getState().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.JointResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.JointResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.JointResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.JointResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.JointResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.JointResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.JointResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.JointResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.JointResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.JointResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.JointResponse)
        cmvr.api.ArmCommand.JointResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_JointResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_JointResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.JointResponse.class, cmvr.api.ArmCommand.JointResponse.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.JointResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          header_ = null;
          headerBuilder_ = null;
        }
        if (stateBuilder_ == null) {
          state_ = null;
        } else {
          state_ = null;
          stateBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_JointResponse_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.JointResponse getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.JointResponse.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.JointResponse build() {
        cmvr.api.ArmCommand.JointResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.JointResponse buildPartial() {
        cmvr.api.ArmCommand.JointResponse result = new cmvr.api.ArmCommand.JointResponse(this);
        if (headerBuilder_ == null) {
          result.header_ = header_;
        } else {
          result.header_ = headerBuilder_.build();
        }
        if (stateBuilder_ == null) {
          result.state_ = state_;
        } else {
          result.state_ = stateBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.JointResponse) {
          return mergeFrom((cmvr.api.ArmCommand.JointResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.JointResponse other) {
        if (other == cmvr.api.ArmCommand.JointResponse.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasState()) {
          mergeState(other.getState());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getHeaderFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getStateFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }

      private cmvr.api.Common.CommandHeader.Feedback header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return headerBuilder_ != null || header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      public Builder setHeader(
          cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
        if (headerBuilder_ == null) {
          if (header_ != null) {
            header_ =
              cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          header_ = null;
          headerBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
        
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
        }
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private cmvr.api.ArmCommand.JointState state_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cmvr.api.ArmCommand.JointState, cmvr.api.ArmCommand.JointState.Builder, cmvr.api.ArmCommand.JointStateOrBuilder> stateBuilder_;
      /**
       * <code>.cmvr.api.JointState state = 2;</code>
       * @return Whether the state field is set.
       */
      public boolean hasState() {
        return stateBuilder_ != null || state_ != null;
      }
      /**
       * <code>.cmvr.api.JointState state = 2;</code>
       * @return The state.
       */
      public cmvr.api.ArmCommand.JointState getState() {
        if (stateBuilder_ == null) {
          return state_ == null ? cmvr.api.ArmCommand.JointState.getDefaultInstance() : state_;
        } else {
          return stateBuilder_.getMessage();
        }
      }
      /**
       * <code>.cmvr.api.JointState state = 2;</code>
       */
      public Builder setState(cmvr.api.ArmCommand.JointState value) {
        if (stateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          state_ = value;
          onChanged();
        } else {
          stateBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.cmvr.api.JointState state = 2;</code>
       */
      public Builder setState(
          cmvr.api.ArmCommand.JointState.Builder builderForValue) {
        if (stateBuilder_ == null) {
          state_ = builderForValue.build();
          onChanged();
        } else {
          stateBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.cmvr.api.JointState state = 2;</code>
       */
      public Builder mergeState(cmvr.api.ArmCommand.JointState value) {
        if (stateBuilder_ == null) {
          if (state_ != null) {
            state_ =
              cmvr.api.ArmCommand.JointState.newBuilder(state_).mergeFrom(value).buildPartial();
          } else {
            state_ = value;
          }
          onChanged();
        } else {
          stateBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.cmvr.api.JointState state = 2;</code>
       */
      public Builder clearState() {
        if (stateBuilder_ == null) {
          state_ = null;
          onChanged();
        } else {
          state_ = null;
          stateBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.cmvr.api.JointState state = 2;</code>
       */
      public cmvr.api.ArmCommand.JointState.Builder getStateBuilder() {
        
        onChanged();
        return getStateFieldBuilder().getBuilder();
      }
      /**
       * <code>.cmvr.api.JointState state = 2;</code>
       */
      public cmvr.api.ArmCommand.JointStateOrBuilder getStateOrBuilder() {
        if (stateBuilder_ != null) {
          return stateBuilder_.getMessageOrBuilder();
        } else {
          return state_ == null ?
              cmvr.api.ArmCommand.JointState.getDefaultInstance() : state_;
        }
      }
      /**
       * <code>.cmvr.api.JointState state = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cmvr.api.ArmCommand.JointState, cmvr.api.ArmCommand.JointState.Builder, cmvr.api.ArmCommand.JointStateOrBuilder> 
          getStateFieldBuilder() {
        if (stateBuilder_ == null) {
          stateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cmvr.api.ArmCommand.JointState, cmvr.api.ArmCommand.JointState.Builder, cmvr.api.ArmCommand.JointStateOrBuilder>(
                  getState(),
                  getParentForChildren(),
                  isClean());
          state_ = null;
        }
        return stateBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.JointResponse)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.JointResponse)
    private static final cmvr.api.ArmCommand.JointResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.JointResponse();
    }

    public static cmvr.api.ArmCommand.JointResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<JointResponse>
        PARSER = new com.google.protobuf.AbstractParser<JointResponse>() {
      @java.lang.Override
      public JointResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<JointResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<JointResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.JointResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetPoseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.GetPose)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.GetPose}
   */
  public static final class GetPose extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.GetPose)
      GetPoseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetPose.newBuilder() to construct.
    private GetPose(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetPose() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GetPose();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPose_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPose_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.GetPose.class, cmvr.api.ArmCommand.GetPose.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.GetPose.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>string base_link = 2;</code>
       * @return The baseLink.
       */
      java.lang.String getBaseLink();
      /**
       * <code>string base_link = 2;</code>
       * @return The bytes for baseLink.
       */
      com.google.protobuf.ByteString
          getBaseLinkBytes();

      /**
       * <code>string ee_link = 3;</code>
       * @return The eeLink.
       */
      java.lang.String getEeLink();
      /**
       * <code>string ee_link = 3;</code>
       * @return The bytes for eeLink.
       */
      com.google.protobuf.ByteString
          getEeLinkBytes();
    }
    /**
     * Protobuf type {@code cmvr.api.GetPose.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.GetPose.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
        baseLink_ = "";
        eeLink_ = "";
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPose_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPose_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.GetPose.Request.class, cmvr.api.ArmCommand.GetPose.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int BASE_LINK_FIELD_NUMBER = 2;
      private volatile java.lang.Object baseLink_;
      /**
       * <code>string base_link = 2;</code>
       * @return The baseLink.
       */
      @java.lang.Override
      public java.lang.String getBaseLink() {
        java.lang.Object ref = baseLink_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          baseLink_ = s;
          return s;
        }
      }
      /**
       * <code>string base_link = 2;</code>
       * @return The bytes for baseLink.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getBaseLinkBytes() {
        java.lang.Object ref = baseLink_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          baseLink_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int EE_LINK_FIELD_NUMBER = 3;
      private volatile java.lang.Object eeLink_;
      /**
       * <code>string ee_link = 3;</code>
       * @return The eeLink.
       */
      @java.lang.Override
      public java.lang.String getEeLink() {
        java.lang.Object ref = eeLink_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          eeLink_ = s;
          return s;
        }
      }
      /**
       * <code>string ee_link = 3;</code>
       * @return The bytes for eeLink.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getEeLinkBytes() {
        java.lang.Object ref = eeLink_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          eeLink_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(baseLink_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, baseLink_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eeLink_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, eeLink_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(baseLink_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, baseLink_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eeLink_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, eeLink_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.GetPose.Request)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.GetPose.Request other = (cmvr.api.ArmCommand.GetPose.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getBaseLink()
            .equals(other.getBaseLink())) return false;
        if (!getEeLink()
            .equals(other.getEeLink())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (37 * hash) + BASE_LINK_FIELD_NUMBER;
        hash = (53 * hash) + getBaseLink().hashCode();
        hash = (37 * hash) + EE_LINK_FIELD_NUMBER;
        hash = (53 * hash) + getEeLink().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.GetPose.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.GetPose.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPose.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.GetPose.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPose.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.GetPose.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPose.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.GetPose.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPose.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.GetPose.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPose.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.GetPose.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.GetPose.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.GetPose.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.GetPose.Request)
          cmvr.api.ArmCommand.GetPose.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPose_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPose_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.GetPose.Request.class, cmvr.api.ArmCommand.GetPose.Request.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.GetPose.Request.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          baseLink_ = "";

          eeLink_ = "";

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPose_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.GetPose.Request getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.GetPose.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.GetPose.Request build() {
          cmvr.api.ArmCommand.GetPose.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.GetPose.Request buildPartial() {
          cmvr.api.ArmCommand.GetPose.Request result = new cmvr.api.ArmCommand.GetPose.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          result.baseLink_ = baseLink_;
          result.eeLink_ = eeLink_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.GetPose.Request) {
            return mergeFrom((cmvr.api.ArmCommand.GetPose.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.GetPose.Request other) {
          if (other == cmvr.api.ArmCommand.GetPose.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (!other.getBaseLink().isEmpty()) {
            baseLink_ = other.baseLink_;
            onChanged();
          }
          if (!other.getEeLink().isEmpty()) {
            eeLink_ = other.eeLink_;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  baseLink_ = input.readStringRequireUtf8();

                  break;
                } // case 18
                case 26: {
                  eeLink_ = input.readStringRequireUtf8();

                  break;
                } // case 26
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private java.lang.Object baseLink_ = "";
        /**
         * <code>string base_link = 2;</code>
         * @return The baseLink.
         */
        public java.lang.String getBaseLink() {
          java.lang.Object ref = baseLink_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            baseLink_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string base_link = 2;</code>
         * @return The bytes for baseLink.
         */
        public com.google.protobuf.ByteString
            getBaseLinkBytes() {
          java.lang.Object ref = baseLink_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            baseLink_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string base_link = 2;</code>
         * @param value The baseLink to set.
         * @return This builder for chaining.
         */
        public Builder setBaseLink(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          baseLink_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string base_link = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearBaseLink() {
          
          baseLink_ = getDefaultInstance().getBaseLink();
          onChanged();
          return this;
        }
        /**
         * <code>string base_link = 2;</code>
         * @param value The bytes for baseLink to set.
         * @return This builder for chaining.
         */
        public Builder setBaseLinkBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          baseLink_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object eeLink_ = "";
        /**
         * <code>string ee_link = 3;</code>
         * @return The eeLink.
         */
        public java.lang.String getEeLink() {
          java.lang.Object ref = eeLink_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            eeLink_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string ee_link = 3;</code>
         * @return The bytes for eeLink.
         */
        public com.google.protobuf.ByteString
            getEeLinkBytes() {
          java.lang.Object ref = eeLink_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            eeLink_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string ee_link = 3;</code>
         * @param value The eeLink to set.
         * @return This builder for chaining.
         */
        public Builder setEeLink(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          eeLink_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string ee_link = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearEeLink() {
          
          eeLink_ = getDefaultInstance().getEeLink();
          onChanged();
          return this;
        }
        /**
         * <code>string ee_link = 3;</code>
         * @param value The bytes for eeLink to set.
         * @return This builder for chaining.
         */
        public Builder setEeLinkBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          eeLink_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.GetPose.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.GetPose.Request)
      private static final cmvr.api.ArmCommand.GetPose.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.GetPose.Request();
      }

      public static cmvr.api.ArmCommand.GetPose.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Request>
          PARSER = new com.google.protobuf.AbstractParser<Request>() {
        @java.lang.Override
        public Request parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Request> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Request> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.GetPose.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface ResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.GetPose.Response)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.CartesianPose pose = 2;</code>
       * @return Whether the pose field is set.
       */
      boolean hasPose();
      /**
       * <code>.cmvr.api.CartesianPose pose = 2;</code>
       * @return The pose.
       */
      cmvr.api.ArmCommand.CartesianPose getPose();
      /**
       * <code>.cmvr.api.CartesianPose pose = 2;</code>
       */
      cmvr.api.ArmCommand.CartesianPoseOrBuilder getPoseOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.GetPose.Response}
     */
    public static final class Response extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.GetPose.Response)
        ResponseOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Response.newBuilder() to construct.
      private Response(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Response() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Response();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPose_Response_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPose_Response_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.GetPose.Response.class, cmvr.api.ArmCommand.GetPose.Response.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int POSE_FIELD_NUMBER = 2;
      private cmvr.api.ArmCommand.CartesianPose pose_;
      /**
       * <code>.cmvr.api.CartesianPose pose = 2;</code>
       * @return Whether the pose field is set.
       */
      @java.lang.Override
      public boolean hasPose() {
        return pose_ != null;
      }
      /**
       * <code>.cmvr.api.CartesianPose pose = 2;</code>
       * @return The pose.
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.CartesianPose getPose() {
        return pose_ == null ? cmvr.api.ArmCommand.CartesianPose.getDefaultInstance() : pose_;
      }
      /**
       * <code>.cmvr.api.CartesianPose pose = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.CartesianPoseOrBuilder getPoseOrBuilder() {
        return getPose();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (pose_ != null) {
          output.writeMessage(2, getPose());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (pose_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getPose());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.GetPose.Response)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.GetPose.Response other = (cmvr.api.ArmCommand.GetPose.Response) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasPose() != other.hasPose()) return false;
        if (hasPose()) {
          if (!getPose()
              .equals(other.getPose())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasPose()) {
          hash = (37 * hash) + POSE_FIELD_NUMBER;
          hash = (53 * hash) + getPose().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.GetPose.Response parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.GetPose.Response parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPose.Response parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.GetPose.Response parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPose.Response parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.GetPose.Response parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPose.Response parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.GetPose.Response parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPose.Response parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.GetPose.Response parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPose.Response parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.GetPose.Response parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.GetPose.Response prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.GetPose.Response}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.GetPose.Response)
          cmvr.api.ArmCommand.GetPose.ResponseOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPose_Response_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPose_Response_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.GetPose.Response.class, cmvr.api.ArmCommand.GetPose.Response.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.GetPose.Response.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (poseBuilder_ == null) {
            pose_ = null;
          } else {
            pose_ = null;
            poseBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPose_Response_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.GetPose.Response getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.GetPose.Response.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.GetPose.Response build() {
          cmvr.api.ArmCommand.GetPose.Response result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.GetPose.Response buildPartial() {
          cmvr.api.ArmCommand.GetPose.Response result = new cmvr.api.ArmCommand.GetPose.Response(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (poseBuilder_ == null) {
            result.pose_ = pose_;
          } else {
            result.pose_ = poseBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.GetPose.Response) {
            return mergeFrom((cmvr.api.ArmCommand.GetPose.Response)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.GetPose.Response other) {
          if (other == cmvr.api.ArmCommand.GetPose.Response.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasPose()) {
            mergePose(other.getPose());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getPoseFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.ArmCommand.CartesianPose pose_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.CartesianPose, cmvr.api.ArmCommand.CartesianPose.Builder, cmvr.api.ArmCommand.CartesianPoseOrBuilder> poseBuilder_;
        /**
         * <code>.cmvr.api.CartesianPose pose = 2;</code>
         * @return Whether the pose field is set.
         */
        public boolean hasPose() {
          return poseBuilder_ != null || pose_ != null;
        }
        /**
         * <code>.cmvr.api.CartesianPose pose = 2;</code>
         * @return The pose.
         */
        public cmvr.api.ArmCommand.CartesianPose getPose() {
          if (poseBuilder_ == null) {
            return pose_ == null ? cmvr.api.ArmCommand.CartesianPose.getDefaultInstance() : pose_;
          } else {
            return poseBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CartesianPose pose = 2;</code>
         */
        public Builder setPose(cmvr.api.ArmCommand.CartesianPose value) {
          if (poseBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            pose_ = value;
            onChanged();
          } else {
            poseBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CartesianPose pose = 2;</code>
         */
        public Builder setPose(
            cmvr.api.ArmCommand.CartesianPose.Builder builderForValue) {
          if (poseBuilder_ == null) {
            pose_ = builderForValue.build();
            onChanged();
          } else {
            poseBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CartesianPose pose = 2;</code>
         */
        public Builder mergePose(cmvr.api.ArmCommand.CartesianPose value) {
          if (poseBuilder_ == null) {
            if (pose_ != null) {
              pose_ =
                cmvr.api.ArmCommand.CartesianPose.newBuilder(pose_).mergeFrom(value).buildPartial();
            } else {
              pose_ = value;
            }
            onChanged();
          } else {
            poseBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CartesianPose pose = 2;</code>
         */
        public Builder clearPose() {
          if (poseBuilder_ == null) {
            pose_ = null;
            onChanged();
          } else {
            pose_ = null;
            poseBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CartesianPose pose = 2;</code>
         */
        public cmvr.api.ArmCommand.CartesianPose.Builder getPoseBuilder() {
          
          onChanged();
          return getPoseFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CartesianPose pose = 2;</code>
         */
        public cmvr.api.ArmCommand.CartesianPoseOrBuilder getPoseOrBuilder() {
          if (poseBuilder_ != null) {
            return poseBuilder_.getMessageOrBuilder();
          } else {
            return pose_ == null ?
                cmvr.api.ArmCommand.CartesianPose.getDefaultInstance() : pose_;
          }
        }
        /**
         * <code>.cmvr.api.CartesianPose pose = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.CartesianPose, cmvr.api.ArmCommand.CartesianPose.Builder, cmvr.api.ArmCommand.CartesianPoseOrBuilder> 
            getPoseFieldBuilder() {
          if (poseBuilder_ == null) {
            poseBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.ArmCommand.CartesianPose, cmvr.api.ArmCommand.CartesianPose.Builder, cmvr.api.ArmCommand.CartesianPoseOrBuilder>(
                    getPose(),
                    getParentForChildren(),
                    isClean());
            pose_ = null;
          }
          return poseBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.GetPose.Response)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.GetPose.Response)
      private static final cmvr.api.ArmCommand.GetPose.Response DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.GetPose.Response();
      }

      public static cmvr.api.ArmCommand.GetPose.Response getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Response>
          PARSER = new com.google.protobuf.AbstractParser<Response>() {
        @java.lang.Override
        public Response parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Response> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Response> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.GetPose.Response getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.GetPose)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.GetPose other = (cmvr.api.ArmCommand.GetPose) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.GetPose parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.GetPose parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.GetPose parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.GetPose parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.GetPose parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.GetPose parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.GetPose parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.GetPose parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.GetPose parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.GetPose parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.GetPose parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.GetPose parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.GetPose prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.GetPose}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.GetPose)
        cmvr.api.ArmCommand.GetPoseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPose_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPose_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.GetPose.class, cmvr.api.ArmCommand.GetPose.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.GetPose.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPose_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.GetPose getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.GetPose.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.GetPose build() {
        cmvr.api.ArmCommand.GetPose result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.GetPose buildPartial() {
        cmvr.api.ArmCommand.GetPose result = new cmvr.api.ArmCommand.GetPose(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.GetPose) {
          return mergeFrom((cmvr.api.ArmCommand.GetPose)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.GetPose other) {
        if (other == cmvr.api.ArmCommand.GetPose.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.GetPose)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.GetPose)
    private static final cmvr.api.ArmCommand.GetPose DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.GetPose();
    }

    public static cmvr.api.ArmCommand.GetPose getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<GetPose>
        PARSER = new com.google.protobuf.AbstractParser<GetPose>() {
      @java.lang.Override
      public GetPose parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GetPose> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<GetPose> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.GetPose getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CalibrateZeroQOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.CalibrateZeroQ)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.CalibrateZeroQ}
   */
  public static final class CalibrateZeroQ extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.CalibrateZeroQ)
      CalibrateZeroQOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CalibrateZeroQ.newBuilder() to construct.
    private CalibrateZeroQ(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CalibrateZeroQ() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CalibrateZeroQ();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_CalibrateZeroQ_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_CalibrateZeroQ_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.CalibrateZeroQ.class, cmvr.api.ArmCommand.CalibrateZeroQ.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.CalibrateZeroQ.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>string joint_name = 2;</code>
       * @return The jointName.
       */
      java.lang.String getJointName();
      /**
       * <code>string joint_name = 2;</code>
       * @return The bytes for jointName.
       */
      com.google.protobuf.ByteString
          getJointNameBytes();
    }
    /**
     * Protobuf type {@code cmvr.api.CalibrateZeroQ.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.CalibrateZeroQ.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
        jointName_ = "";
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_CalibrateZeroQ_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_CalibrateZeroQ_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.CalibrateZeroQ.Request.class, cmvr.api.ArmCommand.CalibrateZeroQ.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int JOINT_NAME_FIELD_NUMBER = 2;
      private volatile java.lang.Object jointName_;
      /**
       * <code>string joint_name = 2;</code>
       * @return The jointName.
       */
      @java.lang.Override
      public java.lang.String getJointName() {
        java.lang.Object ref = jointName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          jointName_ = s;
          return s;
        }
      }
      /**
       * <code>string joint_name = 2;</code>
       * @return The bytes for jointName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getJointNameBytes() {
        java.lang.Object ref = jointName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          jointName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(jointName_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, jointName_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(jointName_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, jointName_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.CalibrateZeroQ.Request)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.CalibrateZeroQ.Request other = (cmvr.api.ArmCommand.CalibrateZeroQ.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getJointName()
            .equals(other.getJointName())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (37 * hash) + JOINT_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getJointName().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.CalibrateZeroQ.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.CalibrateZeroQ.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.CalibrateZeroQ.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.CalibrateZeroQ.Request)
          cmvr.api.ArmCommand.CalibrateZeroQ.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_CalibrateZeroQ_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_CalibrateZeroQ_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.CalibrateZeroQ.Request.class, cmvr.api.ArmCommand.CalibrateZeroQ.Request.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.CalibrateZeroQ.Request.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          jointName_ = "";

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_CalibrateZeroQ_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.CalibrateZeroQ.Request getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.CalibrateZeroQ.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.CalibrateZeroQ.Request build() {
          cmvr.api.ArmCommand.CalibrateZeroQ.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.CalibrateZeroQ.Request buildPartial() {
          cmvr.api.ArmCommand.CalibrateZeroQ.Request result = new cmvr.api.ArmCommand.CalibrateZeroQ.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          result.jointName_ = jointName_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.CalibrateZeroQ.Request) {
            return mergeFrom((cmvr.api.ArmCommand.CalibrateZeroQ.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.CalibrateZeroQ.Request other) {
          if (other == cmvr.api.ArmCommand.CalibrateZeroQ.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (!other.getJointName().isEmpty()) {
            jointName_ = other.jointName_;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  jointName_ = input.readStringRequireUtf8();

                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private java.lang.Object jointName_ = "";
        /**
         * <code>string joint_name = 2;</code>
         * @return The jointName.
         */
        public java.lang.String getJointName() {
          java.lang.Object ref = jointName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            jointName_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string joint_name = 2;</code>
         * @return The bytes for jointName.
         */
        public com.google.protobuf.ByteString
            getJointNameBytes() {
          java.lang.Object ref = jointName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            jointName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string joint_name = 2;</code>
         * @param value The jointName to set.
         * @return This builder for chaining.
         */
        public Builder setJointName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          jointName_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string joint_name = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearJointName() {
          
          jointName_ = getDefaultInstance().getJointName();
          onChanged();
          return this;
        }
        /**
         * <code>string joint_name = 2;</code>
         * @param value The bytes for jointName to set.
         * @return This builder for chaining.
         */
        public Builder setJointNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          jointName_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.CalibrateZeroQ.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.CalibrateZeroQ.Request)
      private static final cmvr.api.ArmCommand.CalibrateZeroQ.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.CalibrateZeroQ.Request();
      }

      public static cmvr.api.ArmCommand.CalibrateZeroQ.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Request>
          PARSER = new com.google.protobuf.AbstractParser<Request>() {
        @java.lang.Override
        public Request parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Request> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Request> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.CalibrateZeroQ.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface ResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.CalibrateZeroQ.Response)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.CalibrateZeroQ.Response}
     */
    public static final class Response extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.CalibrateZeroQ.Response)
        ResponseOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Response.newBuilder() to construct.
      private Response(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Response() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Response();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_CalibrateZeroQ_Response_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_CalibrateZeroQ_Response_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.CalibrateZeroQ.Response.class, cmvr.api.ArmCommand.CalibrateZeroQ.Response.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.CalibrateZeroQ.Response)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.CalibrateZeroQ.Response other = (cmvr.api.ArmCommand.CalibrateZeroQ.Response) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.CalibrateZeroQ.Response parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Response parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Response parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Response parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Response parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Response parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Response parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Response parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Response parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Response parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Response parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.CalibrateZeroQ.Response parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.CalibrateZeroQ.Response prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.CalibrateZeroQ.Response}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.CalibrateZeroQ.Response)
          cmvr.api.ArmCommand.CalibrateZeroQ.ResponseOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_CalibrateZeroQ_Response_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_CalibrateZeroQ_Response_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.CalibrateZeroQ.Response.class, cmvr.api.ArmCommand.CalibrateZeroQ.Response.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.CalibrateZeroQ.Response.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_CalibrateZeroQ_Response_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.CalibrateZeroQ.Response getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.CalibrateZeroQ.Response.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.CalibrateZeroQ.Response build() {
          cmvr.api.ArmCommand.CalibrateZeroQ.Response result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.CalibrateZeroQ.Response buildPartial() {
          cmvr.api.ArmCommand.CalibrateZeroQ.Response result = new cmvr.api.ArmCommand.CalibrateZeroQ.Response(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.CalibrateZeroQ.Response) {
            return mergeFrom((cmvr.api.ArmCommand.CalibrateZeroQ.Response)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.CalibrateZeroQ.Response other) {
          if (other == cmvr.api.ArmCommand.CalibrateZeroQ.Response.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.CalibrateZeroQ.Response)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.CalibrateZeroQ.Response)
      private static final cmvr.api.ArmCommand.CalibrateZeroQ.Response DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.CalibrateZeroQ.Response();
      }

      public static cmvr.api.ArmCommand.CalibrateZeroQ.Response getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Response>
          PARSER = new com.google.protobuf.AbstractParser<Response>() {
        @java.lang.Override
        public Response parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Response> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Response> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.CalibrateZeroQ.Response getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.CalibrateZeroQ)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.CalibrateZeroQ other = (cmvr.api.ArmCommand.CalibrateZeroQ) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.CalibrateZeroQ parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.CalibrateZeroQ parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.CalibrateZeroQ parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.CalibrateZeroQ parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.CalibrateZeroQ parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.CalibrateZeroQ parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.CalibrateZeroQ parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.CalibrateZeroQ parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.CalibrateZeroQ parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.CalibrateZeroQ parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.CalibrateZeroQ parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.CalibrateZeroQ parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.CalibrateZeroQ prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.CalibrateZeroQ}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.CalibrateZeroQ)
        cmvr.api.ArmCommand.CalibrateZeroQOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_CalibrateZeroQ_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_CalibrateZeroQ_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.CalibrateZeroQ.class, cmvr.api.ArmCommand.CalibrateZeroQ.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.CalibrateZeroQ.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_CalibrateZeroQ_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.CalibrateZeroQ getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.CalibrateZeroQ.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.CalibrateZeroQ build() {
        cmvr.api.ArmCommand.CalibrateZeroQ result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.CalibrateZeroQ buildPartial() {
        cmvr.api.ArmCommand.CalibrateZeroQ result = new cmvr.api.ArmCommand.CalibrateZeroQ(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.CalibrateZeroQ) {
          return mergeFrom((cmvr.api.ArmCommand.CalibrateZeroQ)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.CalibrateZeroQ other) {
        if (other == cmvr.api.ArmCommand.CalibrateZeroQ.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.CalibrateZeroQ)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.CalibrateZeroQ)
    private static final cmvr.api.ArmCommand.CalibrateZeroQ DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.CalibrateZeroQ();
    }

    public static cmvr.api.ArmCommand.CalibrateZeroQ getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<CalibrateZeroQ>
        PARSER = new com.google.protobuf.AbstractParser<CalibrateZeroQ>() {
      @java.lang.Override
      public CalibrateZeroQ parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<CalibrateZeroQ> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<CalibrateZeroQ> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.CalibrateZeroQ getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetPoseMatrixOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.GetPoseMatrix)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.GetPoseMatrix}
   */
  public static final class GetPoseMatrix extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.GetPoseMatrix)
      GetPoseMatrixOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetPoseMatrix.newBuilder() to construct.
    private GetPoseMatrix(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetPoseMatrix() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GetPoseMatrix();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPoseMatrix_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPoseMatrix_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.GetPoseMatrix.class, cmvr.api.ArmCommand.GetPoseMatrix.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.GetPoseMatrix.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>string base_link = 2;</code>
       * @return The baseLink.
       */
      java.lang.String getBaseLink();
      /**
       * <code>string base_link = 2;</code>
       * @return The bytes for baseLink.
       */
      com.google.protobuf.ByteString
          getBaseLinkBytes();

      /**
       * <code>string ee_link = 3;</code>
       * @return The eeLink.
       */
      java.lang.String getEeLink();
      /**
       * <code>string ee_link = 3;</code>
       * @return The bytes for eeLink.
       */
      com.google.protobuf.ByteString
          getEeLinkBytes();
    }
    /**
     * Protobuf type {@code cmvr.api.GetPoseMatrix.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.GetPoseMatrix.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
        baseLink_ = "";
        eeLink_ = "";
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPoseMatrix_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPoseMatrix_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.GetPoseMatrix.Request.class, cmvr.api.ArmCommand.GetPoseMatrix.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int BASE_LINK_FIELD_NUMBER = 2;
      private volatile java.lang.Object baseLink_;
      /**
       * <code>string base_link = 2;</code>
       * @return The baseLink.
       */
      @java.lang.Override
      public java.lang.String getBaseLink() {
        java.lang.Object ref = baseLink_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          baseLink_ = s;
          return s;
        }
      }
      /**
       * <code>string base_link = 2;</code>
       * @return The bytes for baseLink.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getBaseLinkBytes() {
        java.lang.Object ref = baseLink_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          baseLink_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int EE_LINK_FIELD_NUMBER = 3;
      private volatile java.lang.Object eeLink_;
      /**
       * <code>string ee_link = 3;</code>
       * @return The eeLink.
       */
      @java.lang.Override
      public java.lang.String getEeLink() {
        java.lang.Object ref = eeLink_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          eeLink_ = s;
          return s;
        }
      }
      /**
       * <code>string ee_link = 3;</code>
       * @return The bytes for eeLink.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getEeLinkBytes() {
        java.lang.Object ref = eeLink_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          eeLink_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(baseLink_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, baseLink_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eeLink_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, eeLink_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(baseLink_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, baseLink_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eeLink_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, eeLink_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.GetPoseMatrix.Request)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.GetPoseMatrix.Request other = (cmvr.api.ArmCommand.GetPoseMatrix.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getBaseLink()
            .equals(other.getBaseLink())) return false;
        if (!getEeLink()
            .equals(other.getEeLink())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (37 * hash) + BASE_LINK_FIELD_NUMBER;
        hash = (53 * hash) + getBaseLink().hashCode();
        hash = (37 * hash) + EE_LINK_FIELD_NUMBER;
        hash = (53 * hash) + getEeLink().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.GetPoseMatrix.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.GetPoseMatrix.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.GetPoseMatrix.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.GetPoseMatrix.Request)
          cmvr.api.ArmCommand.GetPoseMatrix.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPoseMatrix_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPoseMatrix_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.GetPoseMatrix.Request.class, cmvr.api.ArmCommand.GetPoseMatrix.Request.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.GetPoseMatrix.Request.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          baseLink_ = "";

          eeLink_ = "";

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPoseMatrix_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.GetPoseMatrix.Request getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.GetPoseMatrix.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.GetPoseMatrix.Request build() {
          cmvr.api.ArmCommand.GetPoseMatrix.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.GetPoseMatrix.Request buildPartial() {
          cmvr.api.ArmCommand.GetPoseMatrix.Request result = new cmvr.api.ArmCommand.GetPoseMatrix.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          result.baseLink_ = baseLink_;
          result.eeLink_ = eeLink_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.GetPoseMatrix.Request) {
            return mergeFrom((cmvr.api.ArmCommand.GetPoseMatrix.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.GetPoseMatrix.Request other) {
          if (other == cmvr.api.ArmCommand.GetPoseMatrix.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (!other.getBaseLink().isEmpty()) {
            baseLink_ = other.baseLink_;
            onChanged();
          }
          if (!other.getEeLink().isEmpty()) {
            eeLink_ = other.eeLink_;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  baseLink_ = input.readStringRequireUtf8();

                  break;
                } // case 18
                case 26: {
                  eeLink_ = input.readStringRequireUtf8();

                  break;
                } // case 26
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private java.lang.Object baseLink_ = "";
        /**
         * <code>string base_link = 2;</code>
         * @return The baseLink.
         */
        public java.lang.String getBaseLink() {
          java.lang.Object ref = baseLink_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            baseLink_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string base_link = 2;</code>
         * @return The bytes for baseLink.
         */
        public com.google.protobuf.ByteString
            getBaseLinkBytes() {
          java.lang.Object ref = baseLink_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            baseLink_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string base_link = 2;</code>
         * @param value The baseLink to set.
         * @return This builder for chaining.
         */
        public Builder setBaseLink(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          baseLink_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string base_link = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearBaseLink() {
          
          baseLink_ = getDefaultInstance().getBaseLink();
          onChanged();
          return this;
        }
        /**
         * <code>string base_link = 2;</code>
         * @param value The bytes for baseLink to set.
         * @return This builder for chaining.
         */
        public Builder setBaseLinkBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          baseLink_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object eeLink_ = "";
        /**
         * <code>string ee_link = 3;</code>
         * @return The eeLink.
         */
        public java.lang.String getEeLink() {
          java.lang.Object ref = eeLink_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            eeLink_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string ee_link = 3;</code>
         * @return The bytes for eeLink.
         */
        public com.google.protobuf.ByteString
            getEeLinkBytes() {
          java.lang.Object ref = eeLink_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            eeLink_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string ee_link = 3;</code>
         * @param value The eeLink to set.
         * @return This builder for chaining.
         */
        public Builder setEeLink(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          eeLink_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string ee_link = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearEeLink() {
          
          eeLink_ = getDefaultInstance().getEeLink();
          onChanged();
          return this;
        }
        /**
         * <code>string ee_link = 3;</code>
         * @param value The bytes for eeLink to set.
         * @return This builder for chaining.
         */
        public Builder setEeLinkBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          eeLink_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.GetPoseMatrix.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.GetPoseMatrix.Request)
      private static final cmvr.api.ArmCommand.GetPoseMatrix.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.GetPoseMatrix.Request();
      }

      public static cmvr.api.ArmCommand.GetPoseMatrix.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Request>
          PARSER = new com.google.protobuf.AbstractParser<Request>() {
        @java.lang.Override
        public Request parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Request> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Request> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.GetPoseMatrix.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface ResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.GetPoseMatrix.Response)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
       * @return Whether the matrix field is set.
       */
      boolean hasMatrix();
      /**
       * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
       * @return The matrix.
       */
      cmvr.api.ArmCommand.TransformMatrix4x4 getMatrix();
      /**
       * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
       */
      cmvr.api.ArmCommand.TransformMatrix4x4OrBuilder getMatrixOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.GetPoseMatrix.Response}
     */
    public static final class Response extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.GetPoseMatrix.Response)
        ResponseOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Response.newBuilder() to construct.
      private Response(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Response() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Response();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPoseMatrix_Response_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPoseMatrix_Response_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.GetPoseMatrix.Response.class, cmvr.api.ArmCommand.GetPoseMatrix.Response.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int MATRIX_FIELD_NUMBER = 2;
      private cmvr.api.ArmCommand.TransformMatrix4x4 matrix_;
      /**
       * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
       * @return Whether the matrix field is set.
       */
      @java.lang.Override
      public boolean hasMatrix() {
        return matrix_ != null;
      }
      /**
       * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
       * @return The matrix.
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.TransformMatrix4x4 getMatrix() {
        return matrix_ == null ? cmvr.api.ArmCommand.TransformMatrix4x4.getDefaultInstance() : matrix_;
      }
      /**
       * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.TransformMatrix4x4OrBuilder getMatrixOrBuilder() {
        return getMatrix();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (matrix_ != null) {
          output.writeMessage(2, getMatrix());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (matrix_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getMatrix());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.GetPoseMatrix.Response)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.GetPoseMatrix.Response other = (cmvr.api.ArmCommand.GetPoseMatrix.Response) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasMatrix() != other.hasMatrix()) return false;
        if (hasMatrix()) {
          if (!getMatrix()
              .equals(other.getMatrix())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasMatrix()) {
          hash = (37 * hash) + MATRIX_FIELD_NUMBER;
          hash = (53 * hash) + getMatrix().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.GetPoseMatrix.Response parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Response parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Response parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Response parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Response parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Response parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Response parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Response parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Response parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Response parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Response parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.GetPoseMatrix.Response parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.GetPoseMatrix.Response prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.GetPoseMatrix.Response}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.GetPoseMatrix.Response)
          cmvr.api.ArmCommand.GetPoseMatrix.ResponseOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPoseMatrix_Response_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPoseMatrix_Response_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.GetPoseMatrix.Response.class, cmvr.api.ArmCommand.GetPoseMatrix.Response.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.GetPoseMatrix.Response.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (matrixBuilder_ == null) {
            matrix_ = null;
          } else {
            matrix_ = null;
            matrixBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPoseMatrix_Response_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.GetPoseMatrix.Response getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.GetPoseMatrix.Response.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.GetPoseMatrix.Response build() {
          cmvr.api.ArmCommand.GetPoseMatrix.Response result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.GetPoseMatrix.Response buildPartial() {
          cmvr.api.ArmCommand.GetPoseMatrix.Response result = new cmvr.api.ArmCommand.GetPoseMatrix.Response(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (matrixBuilder_ == null) {
            result.matrix_ = matrix_;
          } else {
            result.matrix_ = matrixBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.GetPoseMatrix.Response) {
            return mergeFrom((cmvr.api.ArmCommand.GetPoseMatrix.Response)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.GetPoseMatrix.Response other) {
          if (other == cmvr.api.ArmCommand.GetPoseMatrix.Response.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasMatrix()) {
            mergeMatrix(other.getMatrix());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getMatrixFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.ArmCommand.TransformMatrix4x4 matrix_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.TransformMatrix4x4, cmvr.api.ArmCommand.TransformMatrix4x4.Builder, cmvr.api.ArmCommand.TransformMatrix4x4OrBuilder> matrixBuilder_;
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         * @return Whether the matrix field is set.
         */
        public boolean hasMatrix() {
          return matrixBuilder_ != null || matrix_ != null;
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         * @return The matrix.
         */
        public cmvr.api.ArmCommand.TransformMatrix4x4 getMatrix() {
          if (matrixBuilder_ == null) {
            return matrix_ == null ? cmvr.api.ArmCommand.TransformMatrix4x4.getDefaultInstance() : matrix_;
          } else {
            return matrixBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         */
        public Builder setMatrix(cmvr.api.ArmCommand.TransformMatrix4x4 value) {
          if (matrixBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            matrix_ = value;
            onChanged();
          } else {
            matrixBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         */
        public Builder setMatrix(
            cmvr.api.ArmCommand.TransformMatrix4x4.Builder builderForValue) {
          if (matrixBuilder_ == null) {
            matrix_ = builderForValue.build();
            onChanged();
          } else {
            matrixBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         */
        public Builder mergeMatrix(cmvr.api.ArmCommand.TransformMatrix4x4 value) {
          if (matrixBuilder_ == null) {
            if (matrix_ != null) {
              matrix_ =
                cmvr.api.ArmCommand.TransformMatrix4x4.newBuilder(matrix_).mergeFrom(value).buildPartial();
            } else {
              matrix_ = value;
            }
            onChanged();
          } else {
            matrixBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         */
        public Builder clearMatrix() {
          if (matrixBuilder_ == null) {
            matrix_ = null;
            onChanged();
          } else {
            matrix_ = null;
            matrixBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         */
        public cmvr.api.ArmCommand.TransformMatrix4x4.Builder getMatrixBuilder() {
          
          onChanged();
          return getMatrixFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         */
        public cmvr.api.ArmCommand.TransformMatrix4x4OrBuilder getMatrixOrBuilder() {
          if (matrixBuilder_ != null) {
            return matrixBuilder_.getMessageOrBuilder();
          } else {
            return matrix_ == null ?
                cmvr.api.ArmCommand.TransformMatrix4x4.getDefaultInstance() : matrix_;
          }
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.TransformMatrix4x4, cmvr.api.ArmCommand.TransformMatrix4x4.Builder, cmvr.api.ArmCommand.TransformMatrix4x4OrBuilder> 
            getMatrixFieldBuilder() {
          if (matrixBuilder_ == null) {
            matrixBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.ArmCommand.TransformMatrix4x4, cmvr.api.ArmCommand.TransformMatrix4x4.Builder, cmvr.api.ArmCommand.TransformMatrix4x4OrBuilder>(
                    getMatrix(),
                    getParentForChildren(),
                    isClean());
            matrix_ = null;
          }
          return matrixBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.GetPoseMatrix.Response)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.GetPoseMatrix.Response)
      private static final cmvr.api.ArmCommand.GetPoseMatrix.Response DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.GetPoseMatrix.Response();
      }

      public static cmvr.api.ArmCommand.GetPoseMatrix.Response getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Response>
          PARSER = new com.google.protobuf.AbstractParser<Response>() {
        @java.lang.Override
        public Response parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Response> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Response> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.GetPoseMatrix.Response getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.GetPoseMatrix)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.GetPoseMatrix other = (cmvr.api.ArmCommand.GetPoseMatrix) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.GetPoseMatrix parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.GetPoseMatrix parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.GetPoseMatrix parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.GetPoseMatrix parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.GetPoseMatrix parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.GetPoseMatrix parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.GetPoseMatrix parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.GetPoseMatrix parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.GetPoseMatrix parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.GetPoseMatrix parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.GetPoseMatrix parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.GetPoseMatrix parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.GetPoseMatrix prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.GetPoseMatrix}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.GetPoseMatrix)
        cmvr.api.ArmCommand.GetPoseMatrixOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPoseMatrix_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPoseMatrix_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.GetPoseMatrix.class, cmvr.api.ArmCommand.GetPoseMatrix.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.GetPoseMatrix.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_GetPoseMatrix_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.GetPoseMatrix getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.GetPoseMatrix.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.GetPoseMatrix build() {
        cmvr.api.ArmCommand.GetPoseMatrix result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.GetPoseMatrix buildPartial() {
        cmvr.api.ArmCommand.GetPoseMatrix result = new cmvr.api.ArmCommand.GetPoseMatrix(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.GetPoseMatrix) {
          return mergeFrom((cmvr.api.ArmCommand.GetPoseMatrix)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.GetPoseMatrix other) {
        if (other == cmvr.api.ArmCommand.GetPoseMatrix.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.GetPoseMatrix)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.GetPoseMatrix)
    private static final cmvr.api.ArmCommand.GetPoseMatrix DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.GetPoseMatrix();
    }

    public static cmvr.api.ArmCommand.GetPoseMatrix getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<GetPoseMatrix>
        PARSER = new com.google.protobuf.AbstractParser<GetPoseMatrix>() {
      @java.lang.Override
      public GetPoseMatrix parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GetPoseMatrix> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<GetPoseMatrix> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.GetPoseMatrix getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ComputeForwardKinematicsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.ComputeForwardKinematics)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.ComputeForwardKinematics}
   */
  public static final class ComputeForwardKinematics extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.ComputeForwardKinematics)
      ComputeForwardKinematicsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ComputeForwardKinematics.newBuilder() to construct.
    private ComputeForwardKinematics(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ComputeForwardKinematics() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ComputeForwardKinematics();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_ComputeForwardKinematics_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.ArmCommand.internal_static_cmvr_api_ComputeForwardKinematics_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.ArmCommand.ComputeForwardKinematics.class, cmvr.api.ArmCommand.ComputeForwardKinematics.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.ComputeForwardKinematics.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>string base_link = 2;</code>
       * @return The baseLink.
       */
      java.lang.String getBaseLink();
      /**
       * <code>string base_link = 2;</code>
       * @return The bytes for baseLink.
       */
      com.google.protobuf.ByteString
          getBaseLinkBytes();

      /**
       * <code>string ee_link = 3;</code>
       * @return The eeLink.
       */
      java.lang.String getEeLink();
      /**
       * <code>string ee_link = 3;</code>
       * @return The bytes for eeLink.
       */
      com.google.protobuf.ByteString
          getEeLinkBytes();

      /**
       * <code>.cmvr.api.JointPositionCommand joints = 4;</code>
       * @return Whether the joints field is set.
       */
      boolean hasJoints();
      /**
       * <code>.cmvr.api.JointPositionCommand joints = 4;</code>
       * @return The joints.
       */
      cmvr.api.ArmCommand.JointPositionCommand getJoints();
      /**
       * <code>.cmvr.api.JointPositionCommand joints = 4;</code>
       */
      cmvr.api.ArmCommand.JointPositionCommandOrBuilder getJointsOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.ComputeForwardKinematics.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.ComputeForwardKinematics.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
        baseLink_ = "";
        eeLink_ = "";
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_ComputeForwardKinematics_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_ComputeForwardKinematics_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.ComputeForwardKinematics.Request.class, cmvr.api.ArmCommand.ComputeForwardKinematics.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int BASE_LINK_FIELD_NUMBER = 2;
      private volatile java.lang.Object baseLink_;
      /**
       * <code>string base_link = 2;</code>
       * @return The baseLink.
       */
      @java.lang.Override
      public java.lang.String getBaseLink() {
        java.lang.Object ref = baseLink_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          baseLink_ = s;
          return s;
        }
      }
      /**
       * <code>string base_link = 2;</code>
       * @return The bytes for baseLink.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getBaseLinkBytes() {
        java.lang.Object ref = baseLink_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          baseLink_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int EE_LINK_FIELD_NUMBER = 3;
      private volatile java.lang.Object eeLink_;
      /**
       * <code>string ee_link = 3;</code>
       * @return The eeLink.
       */
      @java.lang.Override
      public java.lang.String getEeLink() {
        java.lang.Object ref = eeLink_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          eeLink_ = s;
          return s;
        }
      }
      /**
       * <code>string ee_link = 3;</code>
       * @return The bytes for eeLink.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getEeLinkBytes() {
        java.lang.Object ref = eeLink_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          eeLink_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int JOINTS_FIELD_NUMBER = 4;
      private cmvr.api.ArmCommand.JointPositionCommand joints_;
      /**
       * <code>.cmvr.api.JointPositionCommand joints = 4;</code>
       * @return Whether the joints field is set.
       */
      @java.lang.Override
      public boolean hasJoints() {
        return joints_ != null;
      }
      /**
       * <code>.cmvr.api.JointPositionCommand joints = 4;</code>
       * @return The joints.
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.JointPositionCommand getJoints() {
        return joints_ == null ? cmvr.api.ArmCommand.JointPositionCommand.getDefaultInstance() : joints_;
      }
      /**
       * <code>.cmvr.api.JointPositionCommand joints = 4;</code>
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.JointPositionCommandOrBuilder getJointsOrBuilder() {
        return getJoints();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(baseLink_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, baseLink_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eeLink_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, eeLink_);
        }
        if (joints_ != null) {
          output.writeMessage(4, getJoints());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(baseLink_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, baseLink_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eeLink_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, eeLink_);
        }
        if (joints_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getJoints());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.ComputeForwardKinematics.Request)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.ComputeForwardKinematics.Request other = (cmvr.api.ArmCommand.ComputeForwardKinematics.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getBaseLink()
            .equals(other.getBaseLink())) return false;
        if (!getEeLink()
            .equals(other.getEeLink())) return false;
        if (hasJoints() != other.hasJoints()) return false;
        if (hasJoints()) {
          if (!getJoints()
              .equals(other.getJoints())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (37 * hash) + BASE_LINK_FIELD_NUMBER;
        hash = (53 * hash) + getBaseLink().hashCode();
        hash = (37 * hash) + EE_LINK_FIELD_NUMBER;
        hash = (53 * hash) + getEeLink().hashCode();
        if (hasJoints()) {
          hash = (37 * hash) + JOINTS_FIELD_NUMBER;
          hash = (53 * hash) + getJoints().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.ComputeForwardKinematics.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.ComputeForwardKinematics.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.ComputeForwardKinematics.Request)
          cmvr.api.ArmCommand.ComputeForwardKinematics.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_ComputeForwardKinematics_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_ComputeForwardKinematics_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.ComputeForwardKinematics.Request.class, cmvr.api.ArmCommand.ComputeForwardKinematics.Request.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.ComputeForwardKinematics.Request.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          baseLink_ = "";

          eeLink_ = "";

          if (jointsBuilder_ == null) {
            joints_ = null;
          } else {
            joints_ = null;
            jointsBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_ComputeForwardKinematics_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.ComputeForwardKinematics.Request getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.ComputeForwardKinematics.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.ComputeForwardKinematics.Request build() {
          cmvr.api.ArmCommand.ComputeForwardKinematics.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.ComputeForwardKinematics.Request buildPartial() {
          cmvr.api.ArmCommand.ComputeForwardKinematics.Request result = new cmvr.api.ArmCommand.ComputeForwardKinematics.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          result.baseLink_ = baseLink_;
          result.eeLink_ = eeLink_;
          if (jointsBuilder_ == null) {
            result.joints_ = joints_;
          } else {
            result.joints_ = jointsBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.ComputeForwardKinematics.Request) {
            return mergeFrom((cmvr.api.ArmCommand.ComputeForwardKinematics.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.ComputeForwardKinematics.Request other) {
          if (other == cmvr.api.ArmCommand.ComputeForwardKinematics.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (!other.getBaseLink().isEmpty()) {
            baseLink_ = other.baseLink_;
            onChanged();
          }
          if (!other.getEeLink().isEmpty()) {
            eeLink_ = other.eeLink_;
            onChanged();
          }
          if (other.hasJoints()) {
            mergeJoints(other.getJoints());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  baseLink_ = input.readStringRequireUtf8();

                  break;
                } // case 18
                case 26: {
                  eeLink_ = input.readStringRequireUtf8();

                  break;
                } // case 26
                case 34: {
                  input.readMessage(
                      getJointsFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 34
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private java.lang.Object baseLink_ = "";
        /**
         * <code>string base_link = 2;</code>
         * @return The baseLink.
         */
        public java.lang.String getBaseLink() {
          java.lang.Object ref = baseLink_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            baseLink_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string base_link = 2;</code>
         * @return The bytes for baseLink.
         */
        public com.google.protobuf.ByteString
            getBaseLinkBytes() {
          java.lang.Object ref = baseLink_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            baseLink_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string base_link = 2;</code>
         * @param value The baseLink to set.
         * @return This builder for chaining.
         */
        public Builder setBaseLink(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          baseLink_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string base_link = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearBaseLink() {
          
          baseLink_ = getDefaultInstance().getBaseLink();
          onChanged();
          return this;
        }
        /**
         * <code>string base_link = 2;</code>
         * @param value The bytes for baseLink to set.
         * @return This builder for chaining.
         */
        public Builder setBaseLinkBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          baseLink_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object eeLink_ = "";
        /**
         * <code>string ee_link = 3;</code>
         * @return The eeLink.
         */
        public java.lang.String getEeLink() {
          java.lang.Object ref = eeLink_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            eeLink_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string ee_link = 3;</code>
         * @return The bytes for eeLink.
         */
        public com.google.protobuf.ByteString
            getEeLinkBytes() {
          java.lang.Object ref = eeLink_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            eeLink_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string ee_link = 3;</code>
         * @param value The eeLink to set.
         * @return This builder for chaining.
         */
        public Builder setEeLink(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          eeLink_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string ee_link = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearEeLink() {
          
          eeLink_ = getDefaultInstance().getEeLink();
          onChanged();
          return this;
        }
        /**
         * <code>string ee_link = 3;</code>
         * @param value The bytes for eeLink to set.
         * @return This builder for chaining.
         */
        public Builder setEeLinkBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          eeLink_ = value;
          onChanged();
          return this;
        }

        private cmvr.api.ArmCommand.JointPositionCommand joints_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.JointPositionCommand, cmvr.api.ArmCommand.JointPositionCommand.Builder, cmvr.api.ArmCommand.JointPositionCommandOrBuilder> jointsBuilder_;
        /**
         * <code>.cmvr.api.JointPositionCommand joints = 4;</code>
         * @return Whether the joints field is set.
         */
        public boolean hasJoints() {
          return jointsBuilder_ != null || joints_ != null;
        }
        /**
         * <code>.cmvr.api.JointPositionCommand joints = 4;</code>
         * @return The joints.
         */
        public cmvr.api.ArmCommand.JointPositionCommand getJoints() {
          if (jointsBuilder_ == null) {
            return joints_ == null ? cmvr.api.ArmCommand.JointPositionCommand.getDefaultInstance() : joints_;
          } else {
            return jointsBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.JointPositionCommand joints = 4;</code>
         */
        public Builder setJoints(cmvr.api.ArmCommand.JointPositionCommand value) {
          if (jointsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            joints_ = value;
            onChanged();
          } else {
            jointsBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointPositionCommand joints = 4;</code>
         */
        public Builder setJoints(
            cmvr.api.ArmCommand.JointPositionCommand.Builder builderForValue) {
          if (jointsBuilder_ == null) {
            joints_ = builderForValue.build();
            onChanged();
          } else {
            jointsBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointPositionCommand joints = 4;</code>
         */
        public Builder mergeJoints(cmvr.api.ArmCommand.JointPositionCommand value) {
          if (jointsBuilder_ == null) {
            if (joints_ != null) {
              joints_ =
                cmvr.api.ArmCommand.JointPositionCommand.newBuilder(joints_).mergeFrom(value).buildPartial();
            } else {
              joints_ = value;
            }
            onChanged();
          } else {
            jointsBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointPositionCommand joints = 4;</code>
         */
        public Builder clearJoints() {
          if (jointsBuilder_ == null) {
            joints_ = null;
            onChanged();
          } else {
            joints_ = null;
            jointsBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.JointPositionCommand joints = 4;</code>
         */
        public cmvr.api.ArmCommand.JointPositionCommand.Builder getJointsBuilder() {
          
          onChanged();
          return getJointsFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.JointPositionCommand joints = 4;</code>
         */
        public cmvr.api.ArmCommand.JointPositionCommandOrBuilder getJointsOrBuilder() {
          if (jointsBuilder_ != null) {
            return jointsBuilder_.getMessageOrBuilder();
          } else {
            return joints_ == null ?
                cmvr.api.ArmCommand.JointPositionCommand.getDefaultInstance() : joints_;
          }
        }
        /**
         * <code>.cmvr.api.JointPositionCommand joints = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.JointPositionCommand, cmvr.api.ArmCommand.JointPositionCommand.Builder, cmvr.api.ArmCommand.JointPositionCommandOrBuilder> 
            getJointsFieldBuilder() {
          if (jointsBuilder_ == null) {
            jointsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.ArmCommand.JointPositionCommand, cmvr.api.ArmCommand.JointPositionCommand.Builder, cmvr.api.ArmCommand.JointPositionCommandOrBuilder>(
                    getJoints(),
                    getParentForChildren(),
                    isClean());
            joints_ = null;
          }
          return jointsBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.ComputeForwardKinematics.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.ComputeForwardKinematics.Request)
      private static final cmvr.api.ArmCommand.ComputeForwardKinematics.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.ComputeForwardKinematics.Request();
      }

      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Request>
          PARSER = new com.google.protobuf.AbstractParser<Request>() {
        @java.lang.Override
        public Request parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Request> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Request> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.ComputeForwardKinematics.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface ResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.ComputeForwardKinematics.Response)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
       * @return Whether the matrix field is set.
       */
      boolean hasMatrix();
      /**
       * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
       * @return The matrix.
       */
      cmvr.api.ArmCommand.TransformMatrix4x4 getMatrix();
      /**
       * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
       */
      cmvr.api.ArmCommand.TransformMatrix4x4OrBuilder getMatrixOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.ComputeForwardKinematics.Response}
     */
    public static final class Response extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.ComputeForwardKinematics.Response)
        ResponseOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Response.newBuilder() to construct.
      private Response(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Response() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Response();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_ComputeForwardKinematics_Response_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_ComputeForwardKinematics_Response_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.ComputeForwardKinematics.Response.class, cmvr.api.ArmCommand.ComputeForwardKinematics.Response.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int MATRIX_FIELD_NUMBER = 2;
      private cmvr.api.ArmCommand.TransformMatrix4x4 matrix_;
      /**
       * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
       * @return Whether the matrix field is set.
       */
      @java.lang.Override
      public boolean hasMatrix() {
        return matrix_ != null;
      }
      /**
       * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
       * @return The matrix.
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.TransformMatrix4x4 getMatrix() {
        return matrix_ == null ? cmvr.api.ArmCommand.TransformMatrix4x4.getDefaultInstance() : matrix_;
      }
      /**
       * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.ArmCommand.TransformMatrix4x4OrBuilder getMatrixOrBuilder() {
        return getMatrix();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (matrix_ != null) {
          output.writeMessage(2, getMatrix());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (matrix_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getMatrix());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof cmvr.api.ArmCommand.ComputeForwardKinematics.Response)) {
          return super.equals(obj);
        }
        cmvr.api.ArmCommand.ComputeForwardKinematics.Response other = (cmvr.api.ArmCommand.ComputeForwardKinematics.Response) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasMatrix() != other.hasMatrix()) return false;
        if (hasMatrix()) {
          if (!getMatrix()
              .equals(other.getMatrix())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasMatrix()) {
          hash = (37 * hash) + MATRIX_FIELD_NUMBER;
          hash = (53 * hash) + getMatrix().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Response parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Response parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Response parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Response parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Response parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Response parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Response parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Response parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Response parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Response parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Response parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Response parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.ArmCommand.ComputeForwardKinematics.Response prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.ComputeForwardKinematics.Response}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.ComputeForwardKinematics.Response)
          cmvr.api.ArmCommand.ComputeForwardKinematics.ResponseOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_ComputeForwardKinematics_Response_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_ComputeForwardKinematics_Response_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.ArmCommand.ComputeForwardKinematics.Response.class, cmvr.api.ArmCommand.ComputeForwardKinematics.Response.Builder.class);
        }

        // Construct using cmvr.api.ArmCommand.ComputeForwardKinematics.Response.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (matrixBuilder_ == null) {
            matrix_ = null;
          } else {
            matrix_ = null;
            matrixBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.ArmCommand.internal_static_cmvr_api_ComputeForwardKinematics_Response_descriptor;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.ComputeForwardKinematics.Response getDefaultInstanceForType() {
          return cmvr.api.ArmCommand.ComputeForwardKinematics.Response.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.ComputeForwardKinematics.Response build() {
          cmvr.api.ArmCommand.ComputeForwardKinematics.Response result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.ArmCommand.ComputeForwardKinematics.Response buildPartial() {
          cmvr.api.ArmCommand.ComputeForwardKinematics.Response result = new cmvr.api.ArmCommand.ComputeForwardKinematics.Response(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (matrixBuilder_ == null) {
            result.matrix_ = matrix_;
          } else {
            result.matrix_ = matrixBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.ArmCommand.ComputeForwardKinematics.Response) {
            return mergeFrom((cmvr.api.ArmCommand.ComputeForwardKinematics.Response)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.ArmCommand.ComputeForwardKinematics.Response other) {
          if (other == cmvr.api.ArmCommand.ComputeForwardKinematics.Response.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasMatrix()) {
            mergeMatrix(other.getMatrix());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getMatrixFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.ArmCommand.TransformMatrix4x4 matrix_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.TransformMatrix4x4, cmvr.api.ArmCommand.TransformMatrix4x4.Builder, cmvr.api.ArmCommand.TransformMatrix4x4OrBuilder> matrixBuilder_;
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         * @return Whether the matrix field is set.
         */
        public boolean hasMatrix() {
          return matrixBuilder_ != null || matrix_ != null;
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         * @return The matrix.
         */
        public cmvr.api.ArmCommand.TransformMatrix4x4 getMatrix() {
          if (matrixBuilder_ == null) {
            return matrix_ == null ? cmvr.api.ArmCommand.TransformMatrix4x4.getDefaultInstance() : matrix_;
          } else {
            return matrixBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         */
        public Builder setMatrix(cmvr.api.ArmCommand.TransformMatrix4x4 value) {
          if (matrixBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            matrix_ = value;
            onChanged();
          } else {
            matrixBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         */
        public Builder setMatrix(
            cmvr.api.ArmCommand.TransformMatrix4x4.Builder builderForValue) {
          if (matrixBuilder_ == null) {
            matrix_ = builderForValue.build();
            onChanged();
          } else {
            matrixBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         */
        public Builder mergeMatrix(cmvr.api.ArmCommand.TransformMatrix4x4 value) {
          if (matrixBuilder_ == null) {
            if (matrix_ != null) {
              matrix_ =
                cmvr.api.ArmCommand.TransformMatrix4x4.newBuilder(matrix_).mergeFrom(value).buildPartial();
            } else {
              matrix_ = value;
            }
            onChanged();
          } else {
            matrixBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         */
        public Builder clearMatrix() {
          if (matrixBuilder_ == null) {
            matrix_ = null;
            onChanged();
          } else {
            matrix_ = null;
            matrixBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         */
        public cmvr.api.ArmCommand.TransformMatrix4x4.Builder getMatrixBuilder() {
          
          onChanged();
          return getMatrixFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         */
        public cmvr.api.ArmCommand.TransformMatrix4x4OrBuilder getMatrixOrBuilder() {
          if (matrixBuilder_ != null) {
            return matrixBuilder_.getMessageOrBuilder();
          } else {
            return matrix_ == null ?
                cmvr.api.ArmCommand.TransformMatrix4x4.getDefaultInstance() : matrix_;
          }
        }
        /**
         * <code>.cmvr.api.TransformMatrix4x4 matrix = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.ArmCommand.TransformMatrix4x4, cmvr.api.ArmCommand.TransformMatrix4x4.Builder, cmvr.api.ArmCommand.TransformMatrix4x4OrBuilder> 
            getMatrixFieldBuilder() {
          if (matrixBuilder_ == null) {
            matrixBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.ArmCommand.TransformMatrix4x4, cmvr.api.ArmCommand.TransformMatrix4x4.Builder, cmvr.api.ArmCommand.TransformMatrix4x4OrBuilder>(
                    getMatrix(),
                    getParentForChildren(),
                    isClean());
            matrix_ = null;
          }
          return matrixBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:cmvr.api.ComputeForwardKinematics.Response)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.ComputeForwardKinematics.Response)
      private static final cmvr.api.ArmCommand.ComputeForwardKinematics.Response DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.ArmCommand.ComputeForwardKinematics.Response();
      }

      public static cmvr.api.ArmCommand.ComputeForwardKinematics.Response getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Response>
          PARSER = new com.google.protobuf.AbstractParser<Response>() {
        @java.lang.Override
        public Response parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Response> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Response> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.ComputeForwardKinematics.Response getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof cmvr.api.ArmCommand.ComputeForwardKinematics)) {
        return super.equals(obj);
      }
      cmvr.api.ArmCommand.ComputeForwardKinematics other = (cmvr.api.ArmCommand.ComputeForwardKinematics) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.ArmCommand.ComputeForwardKinematics parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.ComputeForwardKinematics parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.ComputeForwardKinematics parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.ComputeForwardKinematics parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.ComputeForwardKinematics parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.ArmCommand.ComputeForwardKinematics parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.ComputeForwardKinematics parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.ComputeForwardKinematics parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.ComputeForwardKinematics parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.ComputeForwardKinematics parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.ArmCommand.ComputeForwardKinematics parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.ArmCommand.ComputeForwardKinematics parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.ArmCommand.ComputeForwardKinematics prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.ComputeForwardKinematics}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.ComputeForwardKinematics)
        cmvr.api.ArmCommand.ComputeForwardKinematicsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_ComputeForwardKinematics_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_ComputeForwardKinematics_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.ArmCommand.ComputeForwardKinematics.class, cmvr.api.ArmCommand.ComputeForwardKinematics.Builder.class);
      }

      // Construct using cmvr.api.ArmCommand.ComputeForwardKinematics.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.ArmCommand.internal_static_cmvr_api_ComputeForwardKinematics_descriptor;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.ComputeForwardKinematics getDefaultInstanceForType() {
        return cmvr.api.ArmCommand.ComputeForwardKinematics.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.ComputeForwardKinematics build() {
        cmvr.api.ArmCommand.ComputeForwardKinematics result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.ArmCommand.ComputeForwardKinematics buildPartial() {
        cmvr.api.ArmCommand.ComputeForwardKinematics result = new cmvr.api.ArmCommand.ComputeForwardKinematics(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.ArmCommand.ComputeForwardKinematics) {
          return mergeFrom((cmvr.api.ArmCommand.ComputeForwardKinematics)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.ArmCommand.ComputeForwardKinematics other) {
        if (other == cmvr.api.ArmCommand.ComputeForwardKinematics.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:cmvr.api.ComputeForwardKinematics)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.ComputeForwardKinematics)
    private static final cmvr.api.ArmCommand.ComputeForwardKinematics DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.ArmCommand.ComputeForwardKinematics();
    }

    public static cmvr.api.ArmCommand.ComputeForwardKinematics getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ComputeForwardKinematics>
        PARSER = new com.google.protobuf.AbstractParser<ComputeForwardKinematics>() {
      @java.lang.Override
      public ComputeForwardKinematics parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ComputeForwardKinematics> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ComputeForwardKinematics> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cmvr.api.ArmCommand.ComputeForwardKinematics getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_JointPositionCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_JointPositionCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_JointVelocityCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_JointVelocityCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_MotionOptions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_MotionOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_CartesianPose_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_CartesianPose_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_CartesianVelocity_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_CartesianVelocity_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_TransformMatrix4x4_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_TransformMatrix4x4_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_MoveJ_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_MoveJ_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_MoveJ_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_MoveJ_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_MoveJ_Response_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_MoveJ_Response_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_MoveL_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_MoveL_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_MoveL_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_MoveL_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_MoveL_Response_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_MoveL_Response_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SpeedJ_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SpeedJ_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SpeedJ_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SpeedJ_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SpeedJ_Response_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SpeedJ_Response_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SpeedL_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SpeedL_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SpeedL_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SpeedL_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SpeedL_Response_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SpeedL_Response_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_ServoJ_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_ServoJ_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_ServoJ_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_ServoJ_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_ServoJ_Response_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_ServoJ_Response_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_JointState_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_JointState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_JointRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_JointRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_JointResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_JointResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetPose_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetPose_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetPose_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetPose_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetPose_Response_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetPose_Response_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_CalibrateZeroQ_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_CalibrateZeroQ_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_CalibrateZeroQ_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_CalibrateZeroQ_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_CalibrateZeroQ_Response_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_CalibrateZeroQ_Response_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetPoseMatrix_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetPoseMatrix_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetPoseMatrix_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetPoseMatrix_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetPoseMatrix_Response_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetPoseMatrix_Response_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_ComputeForwardKinematics_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_ComputeForwardKinematics_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_ComputeForwardKinematics_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_ComputeForwardKinematics_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_ComputeForwardKinematics_Response_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_ComputeForwardKinematics_Response_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\032cmvr/api/arm_command.proto\022\010cmvr.api\032\025" +
      "cmvr/api/common.proto\"(\n\024JointPositionCo" +
      "mmand\022\020\n\010position\030\001 \003(\001\"(\n\024JointVelocity" +
      "Command\022\020\n\010velocity\030\001 \003(\001\"\220\001\n\rMotionOpti" +
      "ons\022\020\n\010velocity\030\001 \001(\001\022\024\n\014acceleration\030\002 " +
      "\001(\001\022\024\n\014blend_radius\030\003 \001(\001\022\014\n\004jerk\030\004 \001(\001\022" +
      "\035\n\025joint_velocity_limits\030\005 \003(\001\022\024\n\014asynch" +
      "ronous\030\006 \001(\010\"T\n\rCartesianPose\022\t\n\001x\030\001 \001(\001" +
      "\022\t\n\001y\030\002 \001(\001\022\t\n\001z\030\003 \001(\001\022\n\n\002rx\030\004 \001(\001\022\n\n\002ry" +
      "\030\005 \001(\001\022\n\n\002rz\030\006 \001(\001\"[\n\021CartesianVelocity\022" +
      "\n\n\002vx\030\001 \001(\001\022\n\n\002vy\030\002 \001(\001\022\n\n\002vz\030\003 \001(\001\022\n\n\002w" +
      "x\030\004 \001(\001\022\n\n\002wy\030\005 \001(\001\022\n\n\002wz\030\006 \001(\001\"\344\001\n\022Tran" +
      "sformMatrix4x4\022\013\n\003m00\030\001 \001(\001\022\013\n\003m01\030\002 \001(\001" +
      "\022\013\n\003m02\030\003 \001(\001\022\013\n\003m03\030\004 \001(\001\022\013\n\003m10\030\005 \001(\001\022" +
      "\013\n\003m11\030\006 \001(\001\022\013\n\003m12\030\007 \001(\001\022\013\n\003m13\030\010 \001(\001\022\013" +
      "\n\003m20\030\t \001(\001\022\013\n\003m21\030\n \001(\001\022\013\n\003m22\030\013 \001(\001\022\013\n" +
      "\003m23\030\014 \001(\001\022\013\n\003m30\030\r \001(\001\022\013\n\003m31\030\016 \001(\001\022\013\n\003" +
      "m32\030\017 \001(\001\022\013\n\003m33\030\020 \001(\001\"\334\001\n\005MoveJ\032\224\001\n\007Req" +
      "uest\022/\n\006header\030\001 \001(\0132\037.cmvr.api.CommandH" +
      "eader.Request\022.\n\006target\030\002 \001(\0132\036.cmvr.api" +
      ".JointPositionCommand\022(\n\007options\030\003 \001(\0132\027" +
      ".cmvr.api.MotionOptions\032<\n\010Response\0220\n\006h" +
      "eader\030\001 \001(\0132 .cmvr.api.CommandHeader.Fee" +
      "dback\"\374\001\n\005MoveL\032\264\001\n\007Request\022/\n\006header\030\001 " +
      "\001(\0132\037.cmvr.api.CommandHeader.Request\022\'\n\006" +
      "target\030\002 \001(\0132\027.cmvr.api.CartesianPose\022(\n" +
      "\007options\030\003 \001(\0132\027.cmvr.api.MotionOptions\022" +
      "%\n\005frame\030\004 \001(\0162\026.cmvr.api.ArmFrameType\032<" +
      "\n\010Response\0220\n\006header\030\001 \001(\0132 .cmvr.api.Co" +
      "mmandHeader.Feedback\"\335\001\n\006SpeedJ\032\224\001\n\007Requ" +
      "est\022/\n\006header\030\001 \001(\0132\037.cmvr.api.CommandHe" +
      "ader.Request\0220\n\010velocity\030\002 \001(\0132\036.cmvr.ap" +
      "i.JointVelocityCommand\022\024\n\014acceleration\030\003" +
      " \001(\001\022\020\n\010duration\030\004 \001(\001\032<\n\010Response\0220\n\006he" +
      "ader\030\001 \001(\0132 .cmvr.api.CommandHeader.Feed" +
      "back\"\201\002\n\006SpeedL\032\270\001\n\007Request\022/\n\006header\030\001 " +
      "\001(\0132\037.cmvr.api.CommandHeader.Request\022-\n\010" +
      "velocity\030\002 \001(\0132\033.cmvr.api.CartesianVeloc" +
      "ity\022\024\n\014acceleration\030\003 \001(\001\022\020\n\010duration\030\004 " +
      "\001(\001\022%\n\005frame\030\005 \001(\0162\026.cmvr.api.ArmFrameTy" +
      "pe\032<\n\010Response\0220\n\006header\030\001 \001(\0132 .cmvr.ap" +
      "i.CommandHeader.Feedback\"\262\001\n\006ServoJ\032j\n\007R" +
      "equest\022/\n\006header\030\001 \001(\0132\037.cmvr.api.Comman" +
      "dHeader.Request\022.\n\006target\030\002 \001(\0132\036.cmvr.a" +
      "pi.JointPositionCommand\032<\n\010Response\0220\n\006h" +
      "eader\030\001 \001(\0132 .cmvr.api.CommandHeader.Fee" +
      "dback\"a\n\nJointState\022\014\n\004name\030\001 \003(\t\022\020\n\010pos" +
      "ition\030\002 \003(\001\022\020\n\010velocity\030\003 \003(\001\022\016\n\006effort\030" +
      "\004 \003(\001\022\021\n\ttimestamp\030\005 \001(\001\"?\n\014JointRequest" +
      "\022/\n\006header\030\001 \001(\0132\037.cmvr.api.CommandHeade" +
      "r.Request\"f\n\rJointResponse\0220\n\006header\030\001 \001" +
      "(\0132 .cmvr.api.CommandHeader.Feedback\022#\n\005" +
      "state\030\002 \001(\0132\024.cmvr.api.JointState\"\316\001\n\007Ge" +
      "tPose\032^\n\007Request\022/\n\006header\030\001 \001(\0132\037.cmvr." +
      "api.CommandHeader.Request\022\021\n\tbase_link\030\002" +
      " \001(\t\022\017\n\007ee_link\030\003 \001(\t\032c\n\010Response\0220\n\006hea" +
      "der\030\001 \001(\0132 .cmvr.api.CommandHeader.Feedb" +
      "ack\022%\n\004pose\030\002 \001(\0132\027.cmvr.api.CartesianPo" +
      "se\"\236\001\n\016CalibrateZeroQ\032N\n\007Request\022/\n\006head" +
      "er\030\001 \001(\0132\037.cmvr.api.CommandHeader.Reques" +
      "t\022\022\n\njoint_name\030\002 \001(\t\032<\n\010Response\0220\n\006hea" +
      "der\030\001 \001(\0132 .cmvr.api.CommandHeader.Feedb" +
      "ack\"\333\001\n\rGetPoseMatrix\032^\n\007Request\022/\n\006head" +
      "er\030\001 \001(\0132\037.cmvr.api.CommandHeader.Reques" +
      "t\022\021\n\tbase_link\030\002 \001(\t\022\017\n\007ee_link\030\003 \001(\t\032j\n" +
      "\010Response\0220\n\006header\030\001 \001(\0132 .cmvr.api.Com" +
      "mandHeader.Feedback\022,\n\006matrix\030\002 \001(\0132\034.cm" +
      "vr.api.TransformMatrix4x4\"\227\002\n\030ComputeFor" +
      "wardKinematics\032\216\001\n\007Request\022/\n\006header\030\001 \001" +
      "(\0132\037.cmvr.api.CommandHeader.Request\022\021\n\tb" +
      "ase_link\030\002 \001(\t\022\017\n\007ee_link\030\003 \001(\t\022.\n\006joint" +
      "s\030\004 \001(\0132\036.cmvr.api.JointPositionCommand\032" +
      "j\n\010Response\0220\n\006header\030\001 \001(\0132 .cmvr.api.C" +
      "ommandHeader.Feedback\022,\n\006matrix\030\002 \001(\0132\034." +
      "cmvr.api.TransformMatrix4x4*_\n\014ArmFrameT" +
      "ype\022\022\n\016ARM_FRAME_BASE\020\000\022\022\n\016ARM_FRAME_TOO" +
      "L\020\001\022\023\n\017ARM_FRAME_WORLD\020\002\022\022\n\016ARM_FRAME_US" +
      "ER\020\003b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          cmvr.api.Common.getDescriptor(),
        });
    internal_static_cmvr_api_JointPositionCommand_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_cmvr_api_JointPositionCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_JointPositionCommand_descriptor,
        new java.lang.String[] { "Position", });
    internal_static_cmvr_api_JointVelocityCommand_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_cmvr_api_JointVelocityCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_JointVelocityCommand_descriptor,
        new java.lang.String[] { "Velocity", });
    internal_static_cmvr_api_MotionOptions_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_cmvr_api_MotionOptions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_MotionOptions_descriptor,
        new java.lang.String[] { "Velocity", "Acceleration", "BlendRadius", "Jerk", "JointVelocityLimits", "Asynchronous", });
    internal_static_cmvr_api_CartesianPose_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_cmvr_api_CartesianPose_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_CartesianPose_descriptor,
        new java.lang.String[] { "X", "Y", "Z", "Rx", "Ry", "Rz", });
    internal_static_cmvr_api_CartesianVelocity_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_cmvr_api_CartesianVelocity_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_CartesianVelocity_descriptor,
        new java.lang.String[] { "Vx", "Vy", "Vz", "Wx", "Wy", "Wz", });
    internal_static_cmvr_api_TransformMatrix4x4_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_cmvr_api_TransformMatrix4x4_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_TransformMatrix4x4_descriptor,
        new java.lang.String[] { "M00", "M01", "M02", "M03", "M10", "M11", "M12", "M13", "M20", "M21", "M22", "M23", "M30", "M31", "M32", "M33", });
    internal_static_cmvr_api_MoveJ_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_cmvr_api_MoveJ_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_MoveJ_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_MoveJ_Request_descriptor =
      internal_static_cmvr_api_MoveJ_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_MoveJ_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_MoveJ_Request_descriptor,
        new java.lang.String[] { "Header", "Target", "Options", });
    internal_static_cmvr_api_MoveJ_Response_descriptor =
      internal_static_cmvr_api_MoveJ_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_MoveJ_Response_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_MoveJ_Response_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_MoveL_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_cmvr_api_MoveL_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_MoveL_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_MoveL_Request_descriptor =
      internal_static_cmvr_api_MoveL_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_MoveL_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_MoveL_Request_descriptor,
        new java.lang.String[] { "Header", "Target", "Options", "Frame", });
    internal_static_cmvr_api_MoveL_Response_descriptor =
      internal_static_cmvr_api_MoveL_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_MoveL_Response_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_MoveL_Response_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_SpeedJ_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_cmvr_api_SpeedJ_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SpeedJ_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_SpeedJ_Request_descriptor =
      internal_static_cmvr_api_SpeedJ_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_SpeedJ_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SpeedJ_Request_descriptor,
        new java.lang.String[] { "Header", "Velocity", "Acceleration", "Duration", });
    internal_static_cmvr_api_SpeedJ_Response_descriptor =
      internal_static_cmvr_api_SpeedJ_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_SpeedJ_Response_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SpeedJ_Response_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_SpeedL_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_cmvr_api_SpeedL_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SpeedL_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_SpeedL_Request_descriptor =
      internal_static_cmvr_api_SpeedL_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_SpeedL_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SpeedL_Request_descriptor,
        new java.lang.String[] { "Header", "Velocity", "Acceleration", "Duration", "Frame", });
    internal_static_cmvr_api_SpeedL_Response_descriptor =
      internal_static_cmvr_api_SpeedL_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_SpeedL_Response_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SpeedL_Response_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_ServoJ_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_cmvr_api_ServoJ_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_ServoJ_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_ServoJ_Request_descriptor =
      internal_static_cmvr_api_ServoJ_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_ServoJ_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_ServoJ_Request_descriptor,
        new java.lang.String[] { "Header", "Target", });
    internal_static_cmvr_api_ServoJ_Response_descriptor =
      internal_static_cmvr_api_ServoJ_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_ServoJ_Response_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_ServoJ_Response_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_JointState_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_cmvr_api_JointState_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_JointState_descriptor,
        new java.lang.String[] { "Name", "Position", "Velocity", "Effort", "Timestamp", });
    internal_static_cmvr_api_JointRequest_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_cmvr_api_JointRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_JointRequest_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_JointResponse_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_cmvr_api_JointResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_JointResponse_descriptor,
        new java.lang.String[] { "Header", "State", });
    internal_static_cmvr_api_GetPose_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_cmvr_api_GetPose_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetPose_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_GetPose_Request_descriptor =
      internal_static_cmvr_api_GetPose_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_GetPose_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetPose_Request_descriptor,
        new java.lang.String[] { "Header", "BaseLink", "EeLink", });
    internal_static_cmvr_api_GetPose_Response_descriptor =
      internal_static_cmvr_api_GetPose_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_GetPose_Response_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetPose_Response_descriptor,
        new java.lang.String[] { "Header", "Pose", });
    internal_static_cmvr_api_CalibrateZeroQ_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_cmvr_api_CalibrateZeroQ_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_CalibrateZeroQ_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_CalibrateZeroQ_Request_descriptor =
      internal_static_cmvr_api_CalibrateZeroQ_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_CalibrateZeroQ_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_CalibrateZeroQ_Request_descriptor,
        new java.lang.String[] { "Header", "JointName", });
    internal_static_cmvr_api_CalibrateZeroQ_Response_descriptor =
      internal_static_cmvr_api_CalibrateZeroQ_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_CalibrateZeroQ_Response_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_CalibrateZeroQ_Response_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_GetPoseMatrix_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_cmvr_api_GetPoseMatrix_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetPoseMatrix_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_GetPoseMatrix_Request_descriptor =
      internal_static_cmvr_api_GetPoseMatrix_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_GetPoseMatrix_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetPoseMatrix_Request_descriptor,
        new java.lang.String[] { "Header", "BaseLink", "EeLink", });
    internal_static_cmvr_api_GetPoseMatrix_Response_descriptor =
      internal_static_cmvr_api_GetPoseMatrix_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_GetPoseMatrix_Response_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetPoseMatrix_Response_descriptor,
        new java.lang.String[] { "Header", "Matrix", });
    internal_static_cmvr_api_ComputeForwardKinematics_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_cmvr_api_ComputeForwardKinematics_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_ComputeForwardKinematics_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_ComputeForwardKinematics_Request_descriptor =
      internal_static_cmvr_api_ComputeForwardKinematics_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_ComputeForwardKinematics_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_ComputeForwardKinematics_Request_descriptor,
        new java.lang.String[] { "Header", "BaseLink", "EeLink", "Joints", });
    internal_static_cmvr_api_ComputeForwardKinematics_Response_descriptor =
      internal_static_cmvr_api_ComputeForwardKinematics_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_ComputeForwardKinematics_Response_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_ComputeForwardKinematics_Response_descriptor,
        new java.lang.String[] { "Header", "Matrix", });
    cmvr.api.Common.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
