text:
package voldemort.client.protocol.pb;

public final class VProto {
  private VProto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public static enum RequestType
      implements com.google.protobuf.ProtocolMessageEnum {
    GET(0, 0),
    GET_ALL(1, 1),
    PUT(2, 2),
    DELETE(3, 3),
    ;

    public final int getNumber() { return value; }

    public static RequestType valueOf(int value) {
      switch (value) {
        case 0: return GET;
        case 1: return GET_ALL;
        case 2: return PUT;
        case 3: return DELETE;
        default: return null;
      }
    }

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return voldemort.client.protocol.pb.VProto.getDescriptor().getEnumTypes().get(0);
    }

    private static final RequestType[] VALUES = {
      GET, GET_ALL, PUT, DELETE,
    };
    public static RequestType valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }
    private final int index;
    private final int value;
    private RequestType(int index, int value) {
      this.index = index;
      this.value = value;
    }

    static {
      voldemort.client.protocol.pb.VProto.getDescriptor();
    }
  }

  public static final class ClockEntry extends
      com.google.protobuf.GeneratedMessage {
    // Use ClockEntry.newBuilder() to construct.
    private ClockEntry() {}

    private static final ClockEntry defaultInstance = new ClockEntry();
    public static ClockEntry getDefaultInstance() {
      return defaultInstance;
    }

    public ClockEntry getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_ClockEntry_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_ClockEntry_fieldAccessorTable;
    }

    // required int32 node_id = 1;
    public static final int NODE_ID_FIELD_NUMBER = 1;
    private boolean hasNodeId;
    private int nodeId_ = 0;
    public boolean hasNodeId() { return hasNodeId; }
    public int getNodeId() { return nodeId_; }

    // required int64 version = 2;
    public static final int VERSION_FIELD_NUMBER = 2;
    private boolean hasVersion;
    private long version_ = 0L;
    public boolean hasVersion() { return hasVersion; }
    public long getVersion() { return version_; }

    @Override
    public final boolean isInitialized() {
      if (!hasNodeId) return false;
      if (!hasVersion) return false;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (hasNodeId()) {
        output.writeInt32(1, getNodeId());
      }
      if (hasVersion()) {
        output.writeInt64(2, getVersion());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (hasNodeId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getNodeId());
      }
      if (hasVersion()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getVersion());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static voldemort.client.protocol.pb.VProto.ClockEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.ClockEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.ClockEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.ClockEntry parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.ClockEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.ClockEntry parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.ClockEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.ClockEntry parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.ClockEntry parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.ClockEntry parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return new Builder(); }
    public Builder newBuilderForType() { return new Builder(); }
    public static Builder newBuilder(voldemort.client.protocol.pb.VProto.ClockEntry prototype) {
      return new Builder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      // Construct using voldemort.client.protocol.pb.VProto.ClockEntry.newBuilder()
      private Builder() {}

      voldemort.client.protocol.pb.VProto.ClockEntry result = new voldemort.client.protocol.pb.VProto.ClockEntry();

      @Override
      protected voldemort.client.protocol.pb.VProto.ClockEntry internalGetResult() {
        return result;
      }

      @Override
      public Builder clear() {
        result = new voldemort.client.protocol.pb.VProto.ClockEntry();
        return this;
      }

      @Override
      public Builder clone() {
        return new Builder().mergeFrom(result);
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return voldemort.client.protocol.pb.VProto.ClockEntry.getDescriptor();
      }

      public voldemort.client.protocol.pb.VProto.ClockEntry getDefaultInstanceForType() {
        return voldemort.client.protocol.pb.VProto.ClockEntry.getDefaultInstance();
      }

      public voldemort.client.protocol.pb.VProto.ClockEntry build() {
        if (result != null && !isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result);
        }
        return buildPartial();
      }

      private voldemort.client.protocol.pb.VProto.ClockEntry buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }

      public voldemort.client.protocol.pb.VProto.ClockEntry buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");  }
        voldemort.client.protocol.pb.VProto.ClockEntry returnMe = result;
        result = null;
        return returnMe;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof voldemort.client.protocol.pb.VProto.ClockEntry) {
          return mergeFrom((voldemort.client.protocol.pb.VProto.ClockEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(voldemort.client.protocol.pb.VProto.ClockEntry other) {
        if (other == voldemort.client.protocol.pb.VProto.ClockEntry.getDefaultInstance()) return this;
        if (other.hasNodeId()) {
          setNodeId(other.getNodeId());
        }
        if (other.hasVersion()) {
          setVersion(other.getVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return mergeFrom(input,
          com.google.protobuf.ExtensionRegistry.getEmptyRegistry());
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistry extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setNodeId(input.readInt32());
              break;
            }
            case 16: {
              setVersion(input.readInt64());
              break;
            }
          }
        }
      }

      // required int32 node_id = 1;
      public boolean hasNodeId() {
        return result.hasNodeId();
      }
      public int getNodeId() {
        return result.getNodeId();
      }
      public Builder setNodeId(int value) {
        result.hasNodeId = true;
        result.nodeId_ = value;
        return this;
      }
      public Builder clearNodeId() {
        result.hasNodeId = false;
        result.nodeId_ = 0;
        return this;
      }

      // required int64 version = 2;
      public boolean hasVersion() {
        return result.hasVersion();
      }
      public long getVersion() {
        return result.getVersion();
      }
      public Builder setVersion(long value) {
        result.hasVersion = true;
        result.version_ = value;
        return this;
      }
      public Builder clearVersion() {
        result.hasVersion = false;
        result.version_ = 0L;
        return this;
      }
    }

    static {
      voldemort.client.protocol.pb.VProto.getDescriptor();
    }
  }

  public static final class VectorClock extends
      com.google.protobuf.GeneratedMessage {
    // Use VectorClock.newBuilder() to construct.
    private VectorClock() {}

    private static final VectorClock defaultInstance = new VectorClock();
    public static VectorClock getDefaultInstance() {
      return defaultInstance;
    }

    public VectorClock getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_VectorClock_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_VectorClock_fieldAccessorTable;
    }

    // repeated .voldemort.ClockEntry entries = 1;
    public static final int ENTRIES_FIELD_NUMBER = 1;
    private java.util.List<voldemort.client.protocol.pb.VProto.ClockEntry> entries_ =
      java.util.Collections.emptyList();
    public java.util.List<voldemort.client.protocol.pb.VProto.ClockEntry> getEntriesList() {
      return entries_;
    }
    public int getEntriesCount() { return entries_.size(); }
    public voldemort.client.protocol.pb.VProto.ClockEntry getEntries(int index) {
      return entries_.get(index);
    }

    // optional int64 timestamp = 2;
    public static final int TIMESTAMP_FIELD_NUMBER = 2;
    private boolean hasTimestamp;
    private long timestamp_ = 0L;
    public boolean hasTimestamp() { return hasTimestamp; }
    public long getTimestamp() { return timestamp_; }

    @Override
    public final boolean isInitialized() {
      for (voldemort.client.protocol.pb.VProto.ClockEntry element : getEntriesList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (voldemort.client.protocol.pb.VProto.ClockEntry element : getEntriesList()) {
        output.writeMessage(1, element);
      }
      if (hasTimestamp()) {
        output.writeInt64(2, getTimestamp());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (voldemort.client.protocol.pb.VProto.ClockEntry element : getEntriesList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, element);
      }
      if (hasTimestamp()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getTimestamp());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static voldemort.client.protocol.pb.VProto.VectorClock parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VectorClock parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VectorClock parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VectorClock parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VectorClock parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VectorClock parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VectorClock parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VectorClock parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VectorClock parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VectorClock parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return new Builder(); }
    public Builder newBuilderForType() { return new Builder(); }
    public static Builder newBuilder(voldemort.client.protocol.pb.VProto.VectorClock prototype) {
      return new Builder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      // Construct using voldemort.client.protocol.pb.VProto.VectorClock.newBuilder()
      private Builder() {}

      voldemort.client.protocol.pb.VProto.VectorClock result = new voldemort.client.protocol.pb.VProto.VectorClock();

      @Override
      protected voldemort.client.protocol.pb.VProto.VectorClock internalGetResult() {
        return result;
      }

      @Override
      public Builder clear() {
        result = new voldemort.client.protocol.pb.VProto.VectorClock();
        return this;
      }

      @Override
      public Builder clone() {
        return new Builder().mergeFrom(result);
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return voldemort.client.protocol.pb.VProto.VectorClock.getDescriptor();
      }

      public voldemort.client.protocol.pb.VProto.VectorClock getDefaultInstanceForType() {
        return voldemort.client.protocol.pb.VProto.VectorClock.getDefaultInstance();
      }

      public voldemort.client.protocol.pb.VProto.VectorClock build() {
        if (result != null && !isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result);
        }
        return buildPartial();
      }

      private voldemort.client.protocol.pb.VProto.VectorClock buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }

      public voldemort.client.protocol.pb.VProto.VectorClock buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");  }
        if (result.entries_ != java.util.Collections.EMPTY_LIST) {
          result.entries_ =
            java.util.Collections.unmodifiableList(result.entries_);
        }
        voldemort.client.protocol.pb.VProto.VectorClock returnMe = result;
        result = null;
        return returnMe;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof voldemort.client.protocol.pb.VProto.VectorClock) {
          return mergeFrom((voldemort.client.protocol.pb.VProto.VectorClock)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(voldemort.client.protocol.pb.VProto.VectorClock other) {
        if (other == voldemort.client.protocol.pb.VProto.VectorClock.getDefaultInstance()) return this;
        if (!other.entries_.isEmpty()) {
          if (result.entries_.isEmpty()) {
            result.entries_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.ClockEntry>();
          }
          result.entries_.addAll(other.entries_);
        }
        if (other.hasTimestamp()) {
          setTimestamp(other.getTimestamp());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return mergeFrom(input,
          com.google.protobuf.ExtensionRegistry.getEmptyRegistry());
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistry extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              voldemort.client.protocol.pb.VProto.ClockEntry.Builder subBuilder = voldemort.client.protocol.pb.VProto.ClockEntry.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addEntries(subBuilder.buildPartial());
              break;
            }
            case 16: {
              setTimestamp(input.readInt64());
              break;
            }
          }
        }
      }

      // repeated .voldemort.ClockEntry entries = 1;
      public java.util.List<voldemort.client.protocol.pb.VProto.ClockEntry> getEntriesList() {
        return java.util.Collections.unmodifiableList(result.entries_);
      }
      public int getEntriesCount() {
        return result.getEntriesCount();
      }
      public voldemort.client.protocol.pb.VProto.ClockEntry getEntries(int index) {
        return result.getEntries(index);
      }
      public Builder setEntries(int index, voldemort.client.protocol.pb.VProto.ClockEntry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.entries_.set(index, value);
        return this;
      }
      public Builder setEntries(int index, voldemort.client.protocol.pb.VProto.ClockEntry.Builder builderForValue) {
        result.entries_.set(index, builderForValue.build());
        return this;
      }
      public Builder addEntries(voldemort.client.protocol.pb.VProto.ClockEntry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.entries_.isEmpty()) {
          result.entries_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.ClockEntry>();
        }
        result.entries_.add(value);
        return this;
      }
      public Builder addEntries(voldemort.client.protocol.pb.VProto.ClockEntry.Builder builderForValue) {
        if (result.entries_.isEmpty()) {
          result.entries_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.ClockEntry>();
        }
        result.entries_.add(builderForValue.build());
        return this;
      }
      public Builder addAllEntries(
          java.lang.Iterable<? extends voldemort.client.protocol.pb.VProto.ClockEntry> values) {
        if (result.entries_.isEmpty()) {
          result.entries_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.ClockEntry>();
        }
        super.addAll(values, result.entries_);
        return this;
      }
      public Builder clearEntries() {
        result.entries_ = java.util.Collections.emptyList();
        return this;
      }

      // optional int64 timestamp = 2;
      public boolean hasTimestamp() {
        return result.hasTimestamp();
      }
      public long getTimestamp() {
        return result.getTimestamp();
      }
      public Builder setTimestamp(long value) {
        result.hasTimestamp = true;
        result.timestamp_ = value;
        return this;
      }
      public Builder clearTimestamp() {
        result.hasTimestamp = false;
        result.timestamp_ = 0L;
        return this;
      }
    }

    static {
      voldemort.client.protocol.pb.VProto.getDescriptor();
    }
  }

  public static final class Versioned extends
      com.google.protobuf.GeneratedMessage {
    // Use Versioned.newBuilder() to construct.
    private Versioned() {}

    private static final Versioned defaultInstance = new Versioned();
    public static Versioned getDefaultInstance() {
      return defaultInstance;
    }

    public Versioned getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_Versioned_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_Versioned_fieldAccessorTable;
    }

    // required bytes value = 1;
    public static final int VALUE_FIELD_NUMBER = 1;
    private boolean hasValue;
    private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasValue() { return hasValue; }
    public com.google.protobuf.ByteString getValue() { return value_; }

    // required .voldemort.VectorClock version = 2;
    public static final int VERSION_FIELD_NUMBER = 2;
    private boolean hasVersion;
    private voldemort.client.protocol.pb.VProto.VectorClock version_ = voldemort.client.protocol.pb.VProto.VectorClock.getDefaultInstance();
    public boolean hasVersion() { return hasVersion; }
    public voldemort.client.protocol.pb.VProto.VectorClock getVersion() { return version_; }

    @Override
    public final boolean isInitialized() {
      if (!hasValue) return false;
      if (!hasVersion) return false;
      if (!getVersion().isInitialized()) return false;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (hasValue()) {
        output.writeBytes(1, getValue());
      }
      if (hasVersion()) {
        output.writeMessage(2, getVersion());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (hasValue()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getValue());
      }
      if (hasVersion()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getVersion());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static voldemort.client.protocol.pb.VProto.Versioned parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Versioned parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Versioned parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Versioned parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Versioned parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Versioned parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Versioned parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Versioned parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Versioned parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Versioned parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return new Builder(); }
    public Builder newBuilderForType() { return new Builder(); }
    public static Builder newBuilder(voldemort.client.protocol.pb.VProto.Versioned prototype) {
      return new Builder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      // Construct using voldemort.client.protocol.pb.VProto.Versioned.newBuilder()
      private Builder() {}

      voldemort.client.protocol.pb.VProto.Versioned result = new voldemort.client.protocol.pb.VProto.Versioned();

      @Override
      protected voldemort.client.protocol.pb.VProto.Versioned internalGetResult() {
        return result;
      }

      @Override
      public Builder clear() {
        result = new voldemort.client.protocol.pb.VProto.Versioned();
        return this;
      }

      @Override
      public Builder clone() {
        return new Builder().mergeFrom(result);
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return voldemort.client.protocol.pb.VProto.Versioned.getDescriptor();
      }

      public voldemort.client.protocol.pb.VProto.Versioned getDefaultInstanceForType() {
        return voldemort.client.protocol.pb.VProto.Versioned.getDefaultInstance();
      }

      public voldemort.client.protocol.pb.VProto.Versioned build() {
        if (result != null && !isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result);
        }
        return buildPartial();
      }

      private voldemort.client.protocol.pb.VProto.Versioned buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }

      public voldemort.client.protocol.pb.VProto.Versioned buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");  }
        voldemort.client.protocol.pb.VProto.Versioned returnMe = result;
        result = null;
        return returnMe;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof voldemort.client.protocol.pb.VProto.Versioned) {
          return mergeFrom((voldemort.client.protocol.pb.VProto.Versioned)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(voldemort.client.protocol.pb.VProto.Versioned other) {
        if (other == voldemort.client.protocol.pb.VProto.Versioned.getDefaultInstance()) return this;
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        if (other.hasVersion()) {
          mergeVersion(other.getVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return mergeFrom(input,
          com.google.protobuf.ExtensionRegistry.getEmptyRegistry());
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistry extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              setValue(input.readBytes());
              break;
            }
            case 18: {
              voldemort.client.protocol.pb.VProto.VectorClock.Builder subBuilder = voldemort.client.protocol.pb.VProto.VectorClock.newBuilder();
              if (hasVersion()) {
                subBuilder.mergeFrom(getVersion());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setVersion(subBuilder.buildPartial());
              break;
            }
          }
        }
      }

      // required bytes value = 1;
      public boolean hasValue() {
        return result.hasValue();
      }
      public com.google.protobuf.ByteString getValue() {
        return result.getValue();
      }
      public Builder setValue(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasValue = true;
        result.value_ = value;
        return this;
      }
      public Builder clearValue() {
        result.hasValue = false;
        result.value_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }

      // required .voldemort.VectorClock version = 2;
      public boolean hasVersion() {
        return result.hasVersion();
      }
      public voldemort.client.protocol.pb.VProto.VectorClock getVersion() {
        return result.getVersion();
      }
      public Builder setVersion(voldemort.client.protocol.pb.VProto.VectorClock value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasVersion = true;
        result.version_ = value;
        return this;
      }
      public Builder setVersion(voldemort.client.protocol.pb.VProto.VectorClock.Builder builderForValue) {
        result.hasVersion = true;
        result.version_ = builderForValue.build();
        return this;
      }
      public Builder mergeVersion(voldemort.client.protocol.pb.VProto.VectorClock value) {
        if (result.hasVersion() &&
            result.version_ != voldemort.client.protocol.pb.VProto.VectorClock.getDefaultInstance()) {
          result.version_ =
            voldemort.client.protocol.pb.VProto.VectorClock.newBuilder(result.version_).mergeFrom(value).buildPartial();
        } else {
          result.version_ = value;
        }
        result.hasVersion = true;
        return this;
      }
      public Builder clearVersion() {
        result.hasVersion = false;
        result.version_ = voldemort.client.protocol.pb.VProto.VectorClock.getDefaultInstance();
        return this;
      }
    }

    static {
      voldemort.client.protocol.pb.VProto.getDescriptor();
    }
  }

  public static final class Error extends
      com.google.protobuf.GeneratedMessage {
    // Use Error.newBuilder() to construct.
    private Error() {}

    private static final Error defaultInstance = new Error();
    public static Error getDefaultInstance() {
      return defaultInstance;
    }

    public Error getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_Error_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_Error_fieldAccessorTable;
    }

    // required int32 error_code = 1;
    public static final int ERROR_CODE_FIELD_NUMBER = 1;
    private boolean hasErrorCode;
    private int errorCode_ = 0;
    public boolean hasErrorCode() { return hasErrorCode; }
    public int getErrorCode() { return errorCode_; }

    // required string error_message = 2;
    public static final int ERROR_MESSAGE_FIELD_NUMBER = 2;
    private boolean hasErrorMessage;
    private java.lang.String errorMessage_ = "";
    public boolean hasErrorMessage() { return hasErrorMessage; }
    public java.lang.String getErrorMessage() { return errorMessage_; }

    @Override
    public final boolean isInitialized() {
      if (!hasErrorCode) return false;
      if (!hasErrorMessage) return false;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (hasErrorCode()) {
        output.writeInt32(1, getErrorCode());
      }
      if (hasErrorMessage()) {
        output.writeString(2, getErrorMessage());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (hasErrorCode()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getErrorCode());
      }
      if (hasErrorMessage()) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(2, getErrorMessage());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static voldemort.client.protocol.pb.VProto.Error parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Error parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Error parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Error parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Error parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Error parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Error parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Error parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Error parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.Error parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return new Builder(); }
    public Builder newBuilderForType() { return new Builder(); }
    public static Builder newBuilder(voldemort.client.protocol.pb.VProto.Error prototype) {
      return new Builder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      // Construct using voldemort.client.protocol.pb.VProto.Error.newBuilder()
      private Builder() {}

      voldemort.client.protocol.pb.VProto.Error result = new voldemort.client.protocol.pb.VProto.Error();

      @Override
      protected voldemort.client.protocol.pb.VProto.Error internalGetResult() {
        return result;
      }

      @Override
      public Builder clear() {
        result = new voldemort.client.protocol.pb.VProto.Error();
        return this;
      }

      @Override
      public Builder clone() {
        return new Builder().mergeFrom(result);
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return voldemort.client.protocol.pb.VProto.Error.getDescriptor();
      }

      public voldemort.client.protocol.pb.VProto.Error getDefaultInstanceForType() {
        return voldemort.client.protocol.pb.VProto.Error.getDefaultInstance();
      }

      public voldemort.client.protocol.pb.VProto.Error build() {
        if (result != null && !isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result);
        }
        return buildPartial();
      }

      private voldemort.client.protocol.pb.VProto.Error buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }

      public voldemort.client.protocol.pb.VProto.Error buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");  }
        voldemort.client.protocol.pb.VProto.Error returnMe = result;
        result = null;
        return returnMe;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof voldemort.client.protocol.pb.VProto.Error) {
          return mergeFrom((voldemort.client.protocol.pb.VProto.Error)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(voldemort.client.protocol.pb.VProto.Error other) {
        if (other == voldemort.client.protocol.pb.VProto.Error.getDefaultInstance()) return this;
        if (other.hasErrorCode()) {
          setErrorCode(other.getErrorCode());
        }
        if (other.hasErrorMessage()) {
          setErrorMessage(other.getErrorMessage());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return mergeFrom(input,
          com.google.protobuf.ExtensionRegistry.getEmptyRegistry());
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistry extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setErrorCode(input.readInt32());
              break;
            }
            case 18: {
              setErrorMessage(input.readString());
              break;
            }
          }
        }
      }

      // required int32 error_code = 1;
      public boolean hasErrorCode() {
        return result.hasErrorCode();
      }
      public int getErrorCode() {
        return result.getErrorCode();
      }
      public Builder setErrorCode(int value) {
        result.hasErrorCode = true;
        result.errorCode_ = value;
        return this;
      }
      public Builder clearErrorCode() {
        result.hasErrorCode = false;
        result.errorCode_ = 0;
        return this;
      }

      // required string error_message = 2;
      public boolean hasErrorMessage() {
        return result.hasErrorMessage();
      }
      public java.lang.String getErrorMessage() {
        return result.getErrorMessage();
      }
      public Builder setErrorMessage(java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasErrorMessage = true;
        result.errorMessage_ = value;
        return this;
      }
      public Builder clearErrorMessage() {
        result.hasErrorMessage = false;
        result.errorMessage_ = "";
        return this;
      }
    }

    static {
      voldemort.client.protocol.pb.VProto.getDescriptor();
    }
  }

  public static final class KeyedVersions extends
      com.google.protobuf.GeneratedMessage {
    // Use KeyedVersions.newBuilder() to construct.
    private KeyedVersions() {}

    private static final KeyedVersions defaultInstance = new KeyedVersions();
    public static KeyedVersions getDefaultInstance() {
      return defaultInstance;
    }

    public KeyedVersions getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_KeyedVersions_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_KeyedVersions_fieldAccessorTable;
    }

    // required bytes key = 1;
    public static final int KEY_FIELD_NUMBER = 1;
    private boolean hasKey;
    private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasKey() { return hasKey; }
    public com.google.protobuf.ByteString getKey() { return key_; }

    // repeated .voldemort.Versioned versions = 2;
    public static final int VERSIONS_FIELD_NUMBER = 2;
    private java.util.List<voldemort.client.protocol.pb.VProto.Versioned> versions_ =
      java.util.Collections.emptyList();
    public java.util.List<voldemort.client.protocol.pb.VProto.Versioned> getVersionsList() {
      return versions_;
    }
    public int getVersionsCount() { return versions_.size(); }
    public voldemort.client.protocol.pb.VProto.Versioned getVersions(int index) {
      return versions_.get(index);
    }

    @Override
    public final boolean isInitialized() {
      if (!hasKey) return false;
      for (voldemort.client.protocol.pb.VProto.Versioned element : getVersionsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (hasKey()) {
        output.writeBytes(1, getKey());
      }
      for (voldemort.client.protocol.pb.VProto.Versioned element : getVersionsList()) {
        output.writeMessage(2, element);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (hasKey()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getKey());
      }
      for (voldemort.client.protocol.pb.VProto.Versioned element : getVersionsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static voldemort.client.protocol.pb.VProto.KeyedVersions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.KeyedVersions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.KeyedVersions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.KeyedVersions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.KeyedVersions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.KeyedVersions parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.KeyedVersions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.KeyedVersions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.KeyedVersions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.KeyedVersions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return new Builder(); }
    public Builder newBuilderForType() { return new Builder(); }
    public static Builder newBuilder(voldemort.client.protocol.pb.VProto.KeyedVersions prototype) {
      return new Builder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      // Construct using voldemort.client.protocol.pb.VProto.KeyedVersions.newBuilder()
      private Builder() {}

      voldemort.client.protocol.pb.VProto.KeyedVersions result = new voldemort.client.protocol.pb.VProto.KeyedVersions();

      @Override
      protected voldemort.client.protocol.pb.VProto.KeyedVersions internalGetResult() {
        return result;
      }

      @Override
      public Builder clear() {
        result = new voldemort.client.protocol.pb.VProto.KeyedVersions();
        return this;
      }

      @Override
      public Builder clone() {
        return new Builder().mergeFrom(result);
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return voldemort.client.protocol.pb.VProto.KeyedVersions.getDescriptor();
      }

      public voldemort.client.protocol.pb.VProto.KeyedVersions getDefaultInstanceForType() {
        return voldemort.client.protocol.pb.VProto.KeyedVersions.getDefaultInstance();
      }

      public voldemort.client.protocol.pb.VProto.KeyedVersions build() {
        if (result != null && !isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result);
        }
        return buildPartial();
      }

      private voldemort.client.protocol.pb.VProto.KeyedVersions buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }

      public voldemort.client.protocol.pb.VProto.KeyedVersions buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");  }
        if (result.versions_ != java.util.Collections.EMPTY_LIST) {
          result.versions_ =
            java.util.Collections.unmodifiableList(result.versions_);
        }
        voldemort.client.protocol.pb.VProto.KeyedVersions returnMe = result;
        result = null;
        return returnMe;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof voldemort.client.protocol.pb.VProto.KeyedVersions) {
          return mergeFrom((voldemort.client.protocol.pb.VProto.KeyedVersions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(voldemort.client.protocol.pb.VProto.KeyedVersions other) {
        if (other == voldemort.client.protocol.pb.VProto.KeyedVersions.getDefaultInstance()) return this;
        if (other.hasKey()) {
          setKey(other.getKey());
        }
        if (!other.versions_.isEmpty()) {
          if (result.versions_.isEmpty()) {
            result.versions_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.Versioned>();
          }
          result.versions_.addAll(other.versions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return mergeFrom(input,
          com.google.protobuf.ExtensionRegistry.getEmptyRegistry());
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistry extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              setKey(input.readBytes());
              break;
            }
            case 18: {
              voldemort.client.protocol.pb.VProto.Versioned.Builder subBuilder = voldemort.client.protocol.pb.VProto.Versioned.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addVersions(subBuilder.buildPartial());
              break;
            }
          }
        }
      }

      // required bytes key = 1;
      public boolean hasKey() {
        return result.hasKey();
      }
      public com.google.protobuf.ByteString getKey() {
        return result.getKey();
      }
      public Builder setKey(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasKey = true;
        result.key_ = value;
        return this;
      }
      public Builder clearKey() {
        result.hasKey = false;
        result.key_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }

      // repeated .voldemort.Versioned versions = 2;
      public java.util.List<voldemort.client.protocol.pb.VProto.Versioned> getVersionsList() {
        return java.util.Collections.unmodifiableList(result.versions_);
      }
      public int getVersionsCount() {
        return result.getVersionsCount();
      }
      public voldemort.client.protocol.pb.VProto.Versioned getVersions(int index) {
        return result.getVersions(index);
      }
      public Builder setVersions(int index, voldemort.client.protocol.pb.VProto.Versioned value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.versions_.set(index, value);
        return this;
      }
      public Builder setVersions(int index, voldemort.client.protocol.pb.VProto.Versioned.Builder builderForValue) {
        result.versions_.set(index, builderForValue.build());
        return this;
      }
      public Builder addVersions(voldemort.client.protocol.pb.VProto.Versioned value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.versions_.isEmpty()) {
          result.versions_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.Versioned>();
        }
        result.versions_.add(value);
        return this;
      }
      public Builder addVersions(voldemort.client.protocol.pb.VProto.Versioned.Builder builderForValue) {
        if (result.versions_.isEmpty()) {
          result.versions_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.Versioned>();
        }
        result.versions_.add(builderForValue.build());
        return this;
      }
      public Builder addAllVersions(
          java.lang.Iterable<? extends voldemort.client.protocol.pb.VProto.Versioned> values) {
        if (result.versions_.isEmpty()) {
          result.versions_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.Versioned>();
        }
        super.addAll(values, result.versions_);
        return this;
      }
      public Builder clearVersions() {
        result.versions_ = java.util.Collections.emptyList();
        return this;
      }
    }

    static {
      voldemort.client.protocol.pb.VProto.getDescriptor();
    }
  }

  public static final class GetRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use GetRequest.newBuilder() to construct.
    private GetRequest() {}

    private static final GetRequest defaultInstance = new GetRequest();
    public static GetRequest getDefaultInstance() {
      return defaultInstance;
    }

    public GetRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_GetRequest_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_GetRequest_fieldAccessorTable;
    }

    // optional bytes key = 1;
    public static final int KEY_FIELD_NUMBER = 1;
    private boolean hasKey;
    private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasKey() { return hasKey; }
    public com.google.protobuf.ByteString getKey() { return key_; }

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

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (hasKey()) {
        output.writeBytes(1, getKey());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (hasKey()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getKey());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static voldemort.client.protocol.pb.VProto.GetRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return new Builder(); }
    public Builder newBuilderForType() { return new Builder(); }
    public static Builder newBuilder(voldemort.client.protocol.pb.VProto.GetRequest prototype) {
      return new Builder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      // Construct using voldemort.client.protocol.pb.VProto.GetRequest.newBuilder()
      private Builder() {}

      voldemort.client.protocol.pb.VProto.GetRequest result = new voldemort.client.protocol.pb.VProto.GetRequest();

      @Override
      protected voldemort.client.protocol.pb.VProto.GetRequest internalGetResult() {
        return result;
      }

      @Override
      public Builder clear() {
        result = new voldemort.client.protocol.pb.VProto.GetRequest();
        return this;
      }

      @Override
      public Builder clone() {
        return new Builder().mergeFrom(result);
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return voldemort.client.protocol.pb.VProto.GetRequest.getDescriptor();
      }

      public voldemort.client.protocol.pb.VProto.GetRequest getDefaultInstanceForType() {
        return voldemort.client.protocol.pb.VProto.GetRequest.getDefaultInstance();
      }

      public voldemort.client.protocol.pb.VProto.GetRequest build() {
        if (result != null && !isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result);
        }
        return buildPartial();
      }

      private voldemort.client.protocol.pb.VProto.GetRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }

      public voldemort.client.protocol.pb.VProto.GetRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");  }
        voldemort.client.protocol.pb.VProto.GetRequest returnMe = result;
        result = null;
        return returnMe;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof voldemort.client.protocol.pb.VProto.GetRequest) {
          return mergeFrom((voldemort.client.protocol.pb.VProto.GetRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(voldemort.client.protocol.pb.VProto.GetRequest other) {
        if (other == voldemort.client.protocol.pb.VProto.GetRequest.getDefaultInstance()) return this;
        if (other.hasKey()) {
          setKey(other.getKey());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return mergeFrom(input,
          com.google.protobuf.ExtensionRegistry.getEmptyRegistry());
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistry extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              setKey(input.readBytes());
              break;
            }
          }
        }
      }

      // optional bytes key = 1;
      public boolean hasKey() {
        return result.hasKey();
      }
      public com.google.protobuf.ByteString getKey() {
        return result.getKey();
      }
      public Builder setKey(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasKey = true;
        result.key_ = value;
        return this;
      }
      public Builder clearKey() {
        result.hasKey = false;
        result.key_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }
    }

    static {
      voldemort.client.protocol.pb.VProto.getDescriptor();
    }
  }

  public static final class GetResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use GetResponse.newBuilder() to construct.
    private GetResponse() {}

    private static final GetResponse defaultInstance = new GetResponse();
    public static GetResponse getDefaultInstance() {
      return defaultInstance;
    }

    public GetResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_GetResponse_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_GetResponse_fieldAccessorTable;
    }

    // repeated .voldemort.Versioned versioned = 1;
    public static final int VERSIONED_FIELD_NUMBER = 1;
    private java.util.List<voldemort.client.protocol.pb.VProto.Versioned> versioned_ =
      java.util.Collections.emptyList();
    public java.util.List<voldemort.client.protocol.pb.VProto.Versioned> getVersionedList() {
      return versioned_;
    }
    public int getVersionedCount() { return versioned_.size(); }
    public voldemort.client.protocol.pb.VProto.Versioned getVersioned(int index) {
      return versioned_.get(index);
    }

    // optional .voldemort.Error error = 2;
    public static final int ERROR_FIELD_NUMBER = 2;
    private boolean hasError;
    private voldemort.client.protocol.pb.VProto.Error error_ = voldemort.client.protocol.pb.VProto.Error.getDefaultInstance();
    public boolean hasError() { return hasError; }
    public voldemort.client.protocol.pb.VProto.Error getError() { return error_; }

    @Override
    public final boolean isInitialized() {
      for (voldemort.client.protocol.pb.VProto.Versioned element : getVersionedList()) {
        if (!element.isInitialized()) return false;
      }
      if (hasError()) {
        if (!getError().isInitialized()) return false;
      }
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (voldemort.client.protocol.pb.VProto.Versioned element : getVersionedList()) {
        output.writeMessage(1, element);
      }
      if (hasError()) {
        output.writeMessage(2, getError());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (voldemort.client.protocol.pb.VProto.Versioned element : getVersionedList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, element);
      }
      if (hasError()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getError());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static voldemort.client.protocol.pb.VProto.GetResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return new Builder(); }
    public Builder newBuilderForType() { return new Builder(); }
    public static Builder newBuilder(voldemort.client.protocol.pb.VProto.GetResponse prototype) {
      return new Builder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      // Construct using voldemort.client.protocol.pb.VProto.GetResponse.newBuilder()
      private Builder() {}

      voldemort.client.protocol.pb.VProto.GetResponse result = new voldemort.client.protocol.pb.VProto.GetResponse();

      @Override
      protected voldemort.client.protocol.pb.VProto.GetResponse internalGetResult() {
        return result;
      }

      @Override
      public Builder clear() {
        result = new voldemort.client.protocol.pb.VProto.GetResponse();
        return this;
      }

      @Override
      public Builder clone() {
        return new Builder().mergeFrom(result);
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return voldemort.client.protocol.pb.VProto.GetResponse.getDescriptor();
      }

      public voldemort.client.protocol.pb.VProto.GetResponse getDefaultInstanceForType() {
        return voldemort.client.protocol.pb.VProto.GetResponse.getDefaultInstance();
      }

      public voldemort.client.protocol.pb.VProto.GetResponse build() {
        if (result != null && !isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result);
        }
        return buildPartial();
      }

      private voldemort.client.protocol.pb.VProto.GetResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }

      public voldemort.client.protocol.pb.VProto.GetResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");  }
        if (result.versioned_ != java.util.Collections.EMPTY_LIST) {
          result.versioned_ =
            java.util.Collections.unmodifiableList(result.versioned_);
        }
        voldemort.client.protocol.pb.VProto.GetResponse returnMe = result;
        result = null;
        return returnMe;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof voldemort.client.protocol.pb.VProto.GetResponse) {
          return mergeFrom((voldemort.client.protocol.pb.VProto.GetResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(voldemort.client.protocol.pb.VProto.GetResponse other) {
        if (other == voldemort.client.protocol.pb.VProto.GetResponse.getDefaultInstance()) return this;
        if (!other.versioned_.isEmpty()) {
          if (result.versioned_.isEmpty()) {
            result.versioned_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.Versioned>();
          }
          result.versioned_.addAll(other.versioned_);
        }
        if (other.hasError()) {
          mergeError(other.getError());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return mergeFrom(input,
          com.google.protobuf.ExtensionRegistry.getEmptyRegistry());
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistry extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              voldemort.client.protocol.pb.VProto.Versioned.Builder subBuilder = voldemort.client.protocol.pb.VProto.Versioned.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addVersioned(subBuilder.buildPartial());
              break;
            }
            case 18: {
              voldemort.client.protocol.pb.VProto.Error.Builder subBuilder = voldemort.client.protocol.pb.VProto.Error.newBuilder();
              if (hasError()) {
                subBuilder.mergeFrom(getError());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setError(subBuilder.buildPartial());
              break;
            }
          }
        }
      }

      // repeated .voldemort.Versioned versioned = 1;
      public java.util.List<voldemort.client.protocol.pb.VProto.Versioned> getVersionedList() {
        return java.util.Collections.unmodifiableList(result.versioned_);
      }
      public int getVersionedCount() {
        return result.getVersionedCount();
      }
      public voldemort.client.protocol.pb.VProto.Versioned getVersioned(int index) {
        return result.getVersioned(index);
      }
      public Builder setVersioned(int index, voldemort.client.protocol.pb.VProto.Versioned value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.versioned_.set(index, value);
        return this;
      }
      public Builder setVersioned(int index, voldemort.client.protocol.pb.VProto.Versioned.Builder builderForValue) {
        result.versioned_.set(index, builderForValue.build());
        return this;
      }
      public Builder addVersioned(voldemort.client.protocol.pb.VProto.Versioned value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.versioned_.isEmpty()) {
          result.versioned_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.Versioned>();
        }
        result.versioned_.add(value);
        return this;
      }
      public Builder addVersioned(voldemort.client.protocol.pb.VProto.Versioned.Builder builderForValue) {
        if (result.versioned_.isEmpty()) {
          result.versioned_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.Versioned>();
        }
        result.versioned_.add(builderForValue.build());
        return this;
      }
      public Builder addAllVersioned(
          java.lang.Iterable<? extends voldemort.client.protocol.pb.VProto.Versioned> values) {
        if (result.versioned_.isEmpty()) {
          result.versioned_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.Versioned>();
        }
        super.addAll(values, result.versioned_);
        return this;
      }
      public Builder clearVersioned() {
        result.versioned_ = java.util.Collections.emptyList();
        return this;
      }

      // optional .voldemort.Error error = 2;
      public boolean hasError() {
        return result.hasError();
      }
      public voldemort.client.protocol.pb.VProto.Error getError() {
        return result.getError();
      }
      public Builder setError(voldemort.client.protocol.pb.VProto.Error value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasError = true;
        result.error_ = value;
        return this;
      }
      public Builder setError(voldemort.client.protocol.pb.VProto.Error.Builder builderForValue) {
        result.hasError = true;
        result.error_ = builderForValue.build();
        return this;
      }
      public Builder mergeError(voldemort.client.protocol.pb.VProto.Error value) {
        if (result.hasError() &&
            result.error_ != voldemort.client.protocol.pb.VProto.Error.getDefaultInstance()) {
          result.error_ =
            voldemort.client.protocol.pb.VProto.Error.newBuilder(result.error_).mergeFrom(value).buildPartial();
        } else {
          result.error_ = value;
        }
        result.hasError = true;
        return this;
      }
      public Builder clearError() {
        result.hasError = false;
        result.error_ = voldemort.client.protocol.pb.VProto.Error.getDefaultInstance();
        return this;
      }
    }

    static {
      voldemort.client.protocol.pb.VProto.getDescriptor();
    }
  }

  public static final class GetAllRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use GetAllRequest.newBuilder() to construct.
    private GetAllRequest() {}

    private static final GetAllRequest defaultInstance = new GetAllRequest();
    public static GetAllRequest getDefaultInstance() {
      return defaultInstance;
    }

    public GetAllRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_GetAllRequest_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_GetAllRequest_fieldAccessorTable;
    }

    // repeated bytes keys = 1;
    public static final int KEYS_FIELD_NUMBER = 1;
    private java.util.List<com.google.protobuf.ByteString> keys_ =
      java.util.Collections.emptyList();
    public java.util.List<com.google.protobuf.ByteString> getKeysList() {
      return keys_;
    }
    public int getKeysCount() { return keys_.size(); }
    public com.google.protobuf.ByteString getKeys(int index) {
      return keys_.get(index);
    }

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

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (com.google.protobuf.ByteString element : getKeysList()) {
        output.writeBytes(1, element);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getKeysList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getKeysList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static voldemort.client.protocol.pb.VProto.GetAllRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return new Builder(); }
    public Builder newBuilderForType() { return new Builder(); }
    public static Builder newBuilder(voldemort.client.protocol.pb.VProto.GetAllRequest prototype) {
      return new Builder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      // Construct using voldemort.client.protocol.pb.VProto.GetAllRequest.newBuilder()
      private Builder() {}

      voldemort.client.protocol.pb.VProto.GetAllRequest result = new voldemort.client.protocol.pb.VProto.GetAllRequest();

      @Override
      protected voldemort.client.protocol.pb.VProto.GetAllRequest internalGetResult() {
        return result;
      }

      @Override
      public Builder clear() {
        result = new voldemort.client.protocol.pb.VProto.GetAllRequest();
        return this;
      }

      @Override
      public Builder clone() {
        return new Builder().mergeFrom(result);
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return voldemort.client.protocol.pb.VProto.GetAllRequest.getDescriptor();
      }

      public voldemort.client.protocol.pb.VProto.GetAllRequest getDefaultInstanceForType() {
        return voldemort.client.protocol.pb.VProto.GetAllRequest.getDefaultInstance();
      }

      public voldemort.client.protocol.pb.VProto.GetAllRequest build() {
        if (result != null && !isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result);
        }
        return buildPartial();
      }

      private voldemort.client.protocol.pb.VProto.GetAllRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }

      public voldemort.client.protocol.pb.VProto.GetAllRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");  }
        if (result.keys_ != java.util.Collections.EMPTY_LIST) {
          result.keys_ =
            java.util.Collections.unmodifiableList(result.keys_);
        }
        voldemort.client.protocol.pb.VProto.GetAllRequest returnMe = result;
        result = null;
        return returnMe;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof voldemort.client.protocol.pb.VProto.GetAllRequest) {
          return mergeFrom((voldemort.client.protocol.pb.VProto.GetAllRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(voldemort.client.protocol.pb.VProto.GetAllRequest other) {
        if (other == voldemort.client.protocol.pb.VProto.GetAllRequest.getDefaultInstance()) return this;
        if (!other.keys_.isEmpty()) {
          if (result.keys_.isEmpty()) {
            result.keys_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
          }
          result.keys_.addAll(other.keys_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return mergeFrom(input,
          com.google.protobuf.ExtensionRegistry.getEmptyRegistry());
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistry extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              addKeys(input.readBytes());
              break;
            }
          }
        }
      }

      // repeated bytes keys = 1;
      public java.util.List<com.google.protobuf.ByteString> getKeysList() {
        return java.util.Collections.unmodifiableList(result.keys_);
      }
      public int getKeysCount() {
        return result.getKeysCount();
      }
      public com.google.protobuf.ByteString getKeys(int index) {
        return result.getKeys(index);
      }
      public Builder setKeys(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.keys_.set(index, value);
        return this;
      }
      public Builder addKeys(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.keys_.isEmpty()) {
          result.keys_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
        }
        result.keys_.add(value);
        return this;
      }
      public Builder addAllKeys(
          java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
        if (result.keys_.isEmpty()) {
          result.keys_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
        }
        super.addAll(values, result.keys_);
        return this;
      }
      public Builder clearKeys() {
        result.keys_ = java.util.Collections.emptyList();
        return this;
      }
    }

    static {
      voldemort.client.protocol.pb.VProto.getDescriptor();
    }
  }

  public static final class GetAllResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use GetAllResponse.newBuilder() to construct.
    private GetAllResponse() {}

    private static final GetAllResponse defaultInstance = new GetAllResponse();
    public static GetAllResponse getDefaultInstance() {
      return defaultInstance;
    }

    public GetAllResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_GetAllResponse_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_GetAllResponse_fieldAccessorTable;
    }

    // repeated .voldemort.KeyedVersions values = 1;
    public static final int VALUES_FIELD_NUMBER = 1;
    private java.util.List<voldemort.client.protocol.pb.VProto.KeyedVersions> values_ =
      java.util.Collections.emptyList();
    public java.util.List<voldemort.client.protocol.pb.VProto.KeyedVersions> getValuesList() {
      return values_;
    }
    public int getValuesCount() { return values_.size(); }
    public voldemort.client.protocol.pb.VProto.KeyedVersions getValues(int index) {
      return values_.get(index);
    }

    // optional .voldemort.Error error = 2;
    public static final int ERROR_FIELD_NUMBER = 2;
    private boolean hasError;
    private voldemort.client.protocol.pb.VProto.Error error_ = voldemort.client.protocol.pb.VProto.Error.getDefaultInstance();
    public boolean hasError() { return hasError; }
    public voldemort.client.protocol.pb.VProto.Error getError() { return error_; }

    @Override
    public final boolean isInitialized() {
      for (voldemort.client.protocol.pb.VProto.KeyedVersions element : getValuesList()) {
        if (!element.isInitialized()) return false;
      }
      if (hasError()) {
        if (!getError().isInitialized()) return false;
      }
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (voldemort.client.protocol.pb.VProto.KeyedVersions element : getValuesList()) {
        output.writeMessage(1, element);
      }
      if (hasError()) {
        output.writeMessage(2, getError());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (voldemort.client.protocol.pb.VProto.KeyedVersions element : getValuesList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, element);
      }
      if (hasError()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getError());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static voldemort.client.protocol.pb.VProto.GetAllResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.GetAllResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return new Builder(); }
    public Builder newBuilderForType() { return new Builder(); }
    public static Builder newBuilder(voldemort.client.protocol.pb.VProto.GetAllResponse prototype) {
      return new Builder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      // Construct using voldemort.client.protocol.pb.VProto.GetAllResponse.newBuilder()
      private Builder() {}

      voldemort.client.protocol.pb.VProto.GetAllResponse result = new voldemort.client.protocol.pb.VProto.GetAllResponse();

      @Override
      protected voldemort.client.protocol.pb.VProto.GetAllResponse internalGetResult() {
        return result;
      }

      @Override
      public Builder clear() {
        result = new voldemort.client.protocol.pb.VProto.GetAllResponse();
        return this;
      }

      @Override
      public Builder clone() {
        return new Builder().mergeFrom(result);
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return voldemort.client.protocol.pb.VProto.GetAllResponse.getDescriptor();
      }

      public voldemort.client.protocol.pb.VProto.GetAllResponse getDefaultInstanceForType() {
        return voldemort.client.protocol.pb.VProto.GetAllResponse.getDefaultInstance();
      }

      public voldemort.client.protocol.pb.VProto.GetAllResponse build() {
        if (result != null && !isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result);
        }
        return buildPartial();
      }

      private voldemort.client.protocol.pb.VProto.GetAllResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }

      public voldemort.client.protocol.pb.VProto.GetAllResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");  }
        if (result.values_ != java.util.Collections.EMPTY_LIST) {
          result.values_ =
            java.util.Collections.unmodifiableList(result.values_);
        }
        voldemort.client.protocol.pb.VProto.GetAllResponse returnMe = result;
        result = null;
        return returnMe;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof voldemort.client.protocol.pb.VProto.GetAllResponse) {
          return mergeFrom((voldemort.client.protocol.pb.VProto.GetAllResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(voldemort.client.protocol.pb.VProto.GetAllResponse other) {
        if (other == voldemort.client.protocol.pb.VProto.GetAllResponse.getDefaultInstance()) return this;
        if (!other.values_.isEmpty()) {
          if (result.values_.isEmpty()) {
            result.values_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.KeyedVersions>();
          }
          result.values_.addAll(other.values_);
        }
        if (other.hasError()) {
          mergeError(other.getError());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return mergeFrom(input,
          com.google.protobuf.ExtensionRegistry.getEmptyRegistry());
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistry extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              voldemort.client.protocol.pb.VProto.KeyedVersions.Builder subBuilder = voldemort.client.protocol.pb.VProto.KeyedVersions.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addValues(subBuilder.buildPartial());
              break;
            }
            case 18: {
              voldemort.client.protocol.pb.VProto.Error.Builder subBuilder = voldemort.client.protocol.pb.VProto.Error.newBuilder();
              if (hasError()) {
                subBuilder.mergeFrom(getError());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setError(subBuilder.buildPartial());
              break;
            }
          }
        }
      }

      // repeated .voldemort.KeyedVersions values = 1;
      public java.util.List<voldemort.client.protocol.pb.VProto.KeyedVersions> getValuesList() {
        return java.util.Collections.unmodifiableList(result.values_);
      }
      public int getValuesCount() {
        return result.getValuesCount();
      }
      public voldemort.client.protocol.pb.VProto.KeyedVersions getValues(int index) {
        return result.getValues(index);
      }
      public Builder setValues(int index, voldemort.client.protocol.pb.VProto.KeyedVersions value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.values_.set(index, value);
        return this;
      }
      public Builder setValues(int index, voldemort.client.protocol.pb.VProto.KeyedVersions.Builder builderForValue) {
        result.values_.set(index, builderForValue.build());
        return this;
      }
      public Builder addValues(voldemort.client.protocol.pb.VProto.KeyedVersions value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.values_.isEmpty()) {
          result.values_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.KeyedVersions>();
        }
        result.values_.add(value);
        return this;
      }
      public Builder addValues(voldemort.client.protocol.pb.VProto.KeyedVersions.Builder builderForValue) {
        if (result.values_.isEmpty()) {
          result.values_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.KeyedVersions>();
        }
        result.values_.add(builderForValue.build());
        return this;
      }
      public Builder addAllValues(
          java.lang.Iterable<? extends voldemort.client.protocol.pb.VProto.KeyedVersions> values) {
        if (result.values_.isEmpty()) {
          result.values_ = new java.util.ArrayList<voldemort.client.protocol.pb.VProto.KeyedVersions>();
        }
        super.addAll(values, result.values_);
        return this;
      }
      public Builder clearValues() {
        result.values_ = java.util.Collections.emptyList();
        return this;
      }

      // optional .voldemort.Error error = 2;
      public boolean hasError() {
        return result.hasError();
      }
      public voldemort.client.protocol.pb.VProto.Error getError() {
        return result.getError();
      }
      public Builder setError(voldemort.client.protocol.pb.VProto.Error value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasError = true;
        result.error_ = value;
        return this;
      }
      public Builder setError(voldemort.client.protocol.pb.VProto.Error.Builder builderForValue) {
        result.hasError = true;
        result.error_ = builderForValue.build();
        return this;
      }
      public Builder mergeError(voldemort.client.protocol.pb.VProto.Error value) {
        if (result.hasError() &&
            result.error_ != voldemort.client.protocol.pb.VProto.Error.getDefaultInstance()) {
          result.error_ =
            voldemort.client.protocol.pb.VProto.Error.newBuilder(result.error_).mergeFrom(value).buildPartial();
        } else {
          result.error_ = value;
        }
        result.hasError = true;
        return this;
      }
      public Builder clearError() {
        result.hasError = false;
        result.error_ = voldemort.client.protocol.pb.VProto.Error.getDefaultInstance();
        return this;
      }
    }

    static {
      voldemort.client.protocol.pb.VProto.getDescriptor();
    }
  }

  public static final class PutRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use PutRequest.newBuilder() to construct.
    private PutRequest() {}

    private static final PutRequest defaultInstance = new PutRequest();
    public static PutRequest getDefaultInstance() {
      return defaultInstance;
    }

    public PutRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_PutRequest_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_PutRequest_fieldAccessorTable;
    }

    // required bytes key = 1;
    public static final int KEY_FIELD_NUMBER = 1;
    private boolean hasKey;
    private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasKey() { return hasKey; }
    public com.google.protobuf.ByteString getKey() { return key_; }

    // required .voldemort.Versioned versioned = 2;
    public static final int VERSIONED_FIELD_NUMBER = 2;
    private boolean hasVersioned;
    private voldemort.client.protocol.pb.VProto.Versioned versioned_ = voldemort.client.protocol.pb.VProto.Versioned.getDefaultInstance();
    public boolean hasVersioned() { return hasVersioned; }
    public voldemort.client.protocol.pb.VProto.Versioned getVersioned() { return versioned_; }

    @Override
    public final boolean isInitialized() {
      if (!hasKey) return false;
      if (!hasVersioned) return false;
      if (!getVersioned().isInitialized()) return false;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (hasKey()) {
        output.writeBytes(1, getKey());
      }
      if (hasVersioned()) {
        output.writeMessage(2, getVersioned());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (hasKey()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getKey());
      }
      if (hasVersioned()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getVersioned());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static voldemort.client.protocol.pb.VProto.PutRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return new Builder(); }
    public Builder newBuilderForType() { return new Builder(); }
    public static Builder newBuilder(voldemort.client.protocol.pb.VProto.PutRequest prototype) {
      return new Builder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      // Construct using voldemort.client.protocol.pb.VProto.PutRequest.newBuilder()
      private Builder() {}

      voldemort.client.protocol.pb.VProto.PutRequest result = new voldemort.client.protocol.pb.VProto.PutRequest();

      @Override
      protected voldemort.client.protocol.pb.VProto.PutRequest internalGetResult() {
        return result;
      }

      @Override
      public Builder clear() {
        result = new voldemort.client.protocol.pb.VProto.PutRequest();
        return this;
      }

      @Override
      public Builder clone() {
        return new Builder().mergeFrom(result);
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return voldemort.client.protocol.pb.VProto.PutRequest.getDescriptor();
      }

      public voldemort.client.protocol.pb.VProto.PutRequest getDefaultInstanceForType() {
        return voldemort.client.protocol.pb.VProto.PutRequest.getDefaultInstance();
      }

      public voldemort.client.protocol.pb.VProto.PutRequest build() {
        if (result != null && !isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result);
        }
        return buildPartial();
      }

      private voldemort.client.protocol.pb.VProto.PutRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }

      public voldemort.client.protocol.pb.VProto.PutRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");  }
        voldemort.client.protocol.pb.VProto.PutRequest returnMe = result;
        result = null;
        return returnMe;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof voldemort.client.protocol.pb.VProto.PutRequest) {
          return mergeFrom((voldemort.client.protocol.pb.VProto.PutRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(voldemort.client.protocol.pb.VProto.PutRequest other) {
        if (other == voldemort.client.protocol.pb.VProto.PutRequest.getDefaultInstance()) return this;
        if (other.hasKey()) {
          setKey(other.getKey());
        }
        if (other.hasVersioned()) {
          mergeVersioned(other.getVersioned());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return mergeFrom(input,
          com.google.protobuf.ExtensionRegistry.getEmptyRegistry());
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistry extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              setKey(input.readBytes());
              break;
            }
            case 18: {
              voldemort.client.protocol.pb.VProto.Versioned.Builder subBuilder = voldemort.client.protocol.pb.VProto.Versioned.newBuilder();
              if (hasVersioned()) {
                subBuilder.mergeFrom(getVersioned());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setVersioned(subBuilder.buildPartial());
              break;
            }
          }
        }
      }

      // required bytes key = 1;
      public boolean hasKey() {
        return result.hasKey();
      }
      public com.google.protobuf.ByteString getKey() {
        return result.getKey();
      }
      public Builder setKey(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasKey = true;
        result.key_ = value;
        return this;
      }
      public Builder clearKey() {
        result.hasKey = false;
        result.key_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }

      // required .voldemort.Versioned versioned = 2;
      public boolean hasVersioned() {
        return result.hasVersioned();
      }
      public voldemort.client.protocol.pb.VProto.Versioned getVersioned() {
        return result.getVersioned();
      }
      public Builder setVersioned(voldemort.client.protocol.pb.VProto.Versioned value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasVersioned = true;
        result.versioned_ = value;
        return this;
      }
      public Builder setVersioned(voldemort.client.protocol.pb.VProto.Versioned.Builder builderForValue) {
        result.hasVersioned = true;
        result.versioned_ = builderForValue.build();
        return this;
      }
      public Builder mergeVersioned(voldemort.client.protocol.pb.VProto.Versioned value) {
        if (result.hasVersioned() &&
            result.versioned_ != voldemort.client.protocol.pb.VProto.Versioned.getDefaultInstance()) {
          result.versioned_ =
            voldemort.client.protocol.pb.VProto.Versioned.newBuilder(result.versioned_).mergeFrom(value).buildPartial();
        } else {
          result.versioned_ = value;
        }
        result.hasVersioned = true;
        return this;
      }
      public Builder clearVersioned() {
        result.hasVersioned = false;
        result.versioned_ = voldemort.client.protocol.pb.VProto.Versioned.getDefaultInstance();
        return this;
      }
    }

    static {
      voldemort.client.protocol.pb.VProto.getDescriptor();
    }
  }

  public static final class PutResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use PutResponse.newBuilder() to construct.
    private PutResponse() {}

    private static final PutResponse defaultInstance = new PutResponse();
    public static PutResponse getDefaultInstance() {
      return defaultInstance;
    }

    public PutResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_PutResponse_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_PutResponse_fieldAccessorTable;
    }

    // optional .voldemort.Error error = 1;
    public static final int ERROR_FIELD_NUMBER = 1;
    private boolean hasError;
    private voldemort.client.protocol.pb.VProto.Error error_ = voldemort.client.protocol.pb.VProto.Error.getDefaultInstance();
    public boolean hasError() { return hasError; }
    public voldemort.client.protocol.pb.VProto.Error getError() { return error_; }

    @Override
    public final boolean isInitialized() {
      if (hasError()) {
        if (!getError().isInitialized()) return false;
      }
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (hasError()) {
        output.writeMessage(1, getError());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (hasError()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getError());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static voldemort.client.protocol.pb.VProto.PutResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.PutResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return new Builder(); }
    public Builder newBuilderForType() { return new Builder(); }
    public static Builder newBuilder(voldemort.client.protocol.pb.VProto.PutResponse prototype) {
      return new Builder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      // Construct using voldemort.client.protocol.pb.VProto.PutResponse.newBuilder()
      private Builder() {}

      voldemort.client.protocol.pb.VProto.PutResponse result = new voldemort.client.protocol.pb.VProto.PutResponse();

      @Override
      protected voldemort.client.protocol.pb.VProto.PutResponse internalGetResult() {
        return result;
      }

      @Override
      public Builder clear() {
        result = new voldemort.client.protocol.pb.VProto.PutResponse();
        return this;
      }

      @Override
      public Builder clone() {
        return new Builder().mergeFrom(result);
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return voldemort.client.protocol.pb.VProto.PutResponse.getDescriptor();
      }

      public voldemort.client.protocol.pb.VProto.PutResponse getDefaultInstanceForType() {
        return voldemort.client.protocol.pb.VProto.PutResponse.getDefaultInstance();
      }

      public voldemort.client.protocol.pb.VProto.PutResponse build() {
        if (result != null && !isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result);
        }
        return buildPartial();
      }

      private voldemort.client.protocol.pb.VProto.PutResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }

      public voldemort.client.protocol.pb.VProto.PutResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");  }
        voldemort.client.protocol.pb.VProto.PutResponse returnMe = result;
        result = null;
        return returnMe;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof voldemort.client.protocol.pb.VProto.PutResponse) {
          return mergeFrom((voldemort.client.protocol.pb.VProto.PutResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(voldemort.client.protocol.pb.VProto.PutResponse other) {
        if (other == voldemort.client.protocol.pb.VProto.PutResponse.getDefaultInstance()) return this;
        if (other.hasError()) {
          mergeError(other.getError());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return mergeFrom(input,
          com.google.protobuf.ExtensionRegistry.getEmptyRegistry());
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistry extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              voldemort.client.protocol.pb.VProto.Error.Builder subBuilder = voldemort.client.protocol.pb.VProto.Error.newBuilder();
              if (hasError()) {
                subBuilder.mergeFrom(getError());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setError(subBuilder.buildPartial());
              break;
            }
          }
        }
      }

      // optional .voldemort.Error error = 1;
      public boolean hasError() {
        return result.hasError();
      }
      public voldemort.client.protocol.pb.VProto.Error getError() {
        return result.getError();
      }
      public Builder setError(voldemort.client.protocol.pb.VProto.Error value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasError = true;
        result.error_ = value;
        return this;
      }
      public Builder setError(voldemort.client.protocol.pb.VProto.Error.Builder builderForValue) {
        result.hasError = true;
        result.error_ = builderForValue.build();
        return this;
      }
      public Builder mergeError(voldemort.client.protocol.pb.VProto.Error value) {
        if (result.hasError() &&
            result.error_ != voldemort.client.protocol.pb.VProto.Error.getDefaultInstance()) {
          result.error_ =
            voldemort.client.protocol.pb.VProto.Error.newBuilder(result.error_).mergeFrom(value).buildPartial();
        } else {
          result.error_ = value;
        }
        result.hasError = true;
        return this;
      }
      public Builder clearError() {
        result.hasError = false;
        result.error_ = voldemort.client.protocol.pb.VProto.Error.getDefaultInstance();
        return this;
      }
    }

    static {
      voldemort.client.protocol.pb.VProto.getDescriptor();
    }
  }

  public static final class DeleteRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use DeleteRequest.newBuilder() to construct.
    private DeleteRequest() {}

    private static final DeleteRequest defaultInstance = new DeleteRequest();
    public static DeleteRequest getDefaultInstance() {
      return defaultInstance;
    }

    public DeleteRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_DeleteRequest_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_DeleteRequest_fieldAccessorTable;
    }

    // required bytes key = 1;
    public static final int KEY_FIELD_NUMBER = 1;
    private boolean hasKey;
    private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasKey() { return hasKey; }
    public com.google.protobuf.ByteString getKey() { return key_; }

    // required .voldemort.VectorClock version = 2;
    public static final int VERSION_FIELD_NUMBER = 2;
    private boolean hasVersion;
    private voldemort.client.protocol.pb.VProto.VectorClock version_ = voldemort.client.protocol.pb.VProto.VectorClock.getDefaultInstance();
    public boolean hasVersion() { return hasVersion; }
    public voldemort.client.protocol.pb.VProto.VectorClock getVersion() { return version_; }

    @Override
    public final boolean isInitialized() {
      if (!hasKey) return false;
      if (!hasVersion) return false;
      if (!getVersion().isInitialized()) return false;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (hasKey()) {
        output.writeBytes(1, getKey());
      }
      if (hasVersion()) {
        output.writeMessage(2, getVersion());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (hasKey()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getKey());
      }
      if (hasVersion()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getVersion());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static voldemort.client.protocol.pb.VProto.DeleteRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return new Builder(); }
    public Builder newBuilderForType() { return new Builder(); }
    public static Builder newBuilder(voldemort.client.protocol.pb.VProto.DeleteRequest prototype) {
      return new Builder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      // Construct using voldemort.client.protocol.pb.VProto.DeleteRequest.newBuilder()
      private Builder() {}

      voldemort.client.protocol.pb.VProto.DeleteRequest result = new voldemort.client.protocol.pb.VProto.DeleteRequest();

      @Override
      protected voldemort.client.protocol.pb.VProto.DeleteRequest internalGetResult() {
        return result;
      }

      @Override
      public Builder clear() {
        result = new voldemort.client.protocol.pb.VProto.DeleteRequest();
        return this;
      }

      @Override
      public Builder clone() {
        return new Builder().mergeFrom(result);
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return voldemort.client.protocol.pb.VProto.DeleteRequest.getDescriptor();
      }

      public voldemort.client.protocol.pb.VProto.DeleteRequest getDefaultInstanceForType() {
        return voldemort.client.protocol.pb.VProto.DeleteRequest.getDefaultInstance();
      }

      public voldemort.client.protocol.pb.VProto.DeleteRequest build() {
        if (result != null && !isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result);
        }
        return buildPartial();
      }

      private voldemort.client.protocol.pb.VProto.DeleteRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }

      public voldemort.client.protocol.pb.VProto.DeleteRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");  }
        voldemort.client.protocol.pb.VProto.DeleteRequest returnMe = result;
        result = null;
        return returnMe;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof voldemort.client.protocol.pb.VProto.DeleteRequest) {
          return mergeFrom((voldemort.client.protocol.pb.VProto.DeleteRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(voldemort.client.protocol.pb.VProto.DeleteRequest other) {
        if (other == voldemort.client.protocol.pb.VProto.DeleteRequest.getDefaultInstance()) return this;
        if (other.hasKey()) {
          setKey(other.getKey());
        }
        if (other.hasVersion()) {
          mergeVersion(other.getVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return mergeFrom(input,
          com.google.protobuf.ExtensionRegistry.getEmptyRegistry());
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistry extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              setKey(input.readBytes());
              break;
            }
            case 18: {
              voldemort.client.protocol.pb.VProto.VectorClock.Builder subBuilder = voldemort.client.protocol.pb.VProto.VectorClock.newBuilder();
              if (hasVersion()) {
                subBuilder.mergeFrom(getVersion());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setVersion(subBuilder.buildPartial());
              break;
            }
          }
        }
      }

      // required bytes key = 1;
      public boolean hasKey() {
        return result.hasKey();
      }
      public com.google.protobuf.ByteString getKey() {
        return result.getKey();
      }
      public Builder setKey(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasKey = true;
        result.key_ = value;
        return this;
      }
      public Builder clearKey() {
        result.hasKey = false;
        result.key_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }

      // required .voldemort.VectorClock version = 2;
      public boolean hasVersion() {
        return result.hasVersion();
      }
      public voldemort.client.protocol.pb.VProto.VectorClock getVersion() {
        return result.getVersion();
      }
      public Builder setVersion(voldemort.client.protocol.pb.VProto.VectorClock value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasVersion = true;
        result.version_ = value;
        return this;
      }
      public Builder setVersion(voldemort.client.protocol.pb.VProto.VectorClock.Builder builderForValue) {
        result.hasVersion = true;
        result.version_ = builderForValue.build();
        return this;
      }
      public Builder mergeVersion(voldemort.client.protocol.pb.VProto.VectorClock value) {
        if (result.hasVersion() &&
            result.version_ != voldemort.client.protocol.pb.VProto.VectorClock.getDefaultInstance()) {
          result.version_ =
            voldemort.client.protocol.pb.VProto.VectorClock.newBuilder(result.version_).mergeFrom(value).buildPartial();
        } else {
          result.version_ = value;
        }
        result.hasVersion = true;
        return this;
      }
      public Builder clearVersion() {
        result.hasVersion = false;
        result.version_ = voldemort.client.protocol.pb.VProto.VectorClock.getDefaultInstance();
        return this;
      }
    }

    static {
      voldemort.client.protocol.pb.VProto.getDescriptor();
    }
  }

  public static final class DeleteResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use DeleteResponse.newBuilder() to construct.
    private DeleteResponse() {}

    private static final DeleteResponse defaultInstance = new DeleteResponse();
    public static DeleteResponse getDefaultInstance() {
      return defaultInstance;
    }

    public DeleteResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_DeleteResponse_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_DeleteResponse_fieldAccessorTable;
    }

    // required bool success = 1;
    public static final int SUCCESS_FIELD_NUMBER = 1;
    private boolean hasSuccess;
    private boolean success_ = false;
    public boolean hasSuccess() { return hasSuccess; }
    public boolean getSuccess() { return success_; }

    // optional .voldemort.Error error = 2;
    public static final int ERROR_FIELD_NUMBER = 2;
    private boolean hasError;
    private voldemort.client.protocol.pb.VProto.Error error_ = voldemort.client.protocol.pb.VProto.Error.getDefaultInstance();
    public boolean hasError() { return hasError; }
    public voldemort.client.protocol.pb.VProto.Error getError() { return error_; }

    @Override
    public final boolean isInitialized() {
      if (!hasSuccess) return false;
      if (hasError()) {
        if (!getError().isInitialized()) return false;
      }
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (hasSuccess()) {
        output.writeBool(1, getSuccess());
      }
      if (hasError()) {
        output.writeMessage(2, getError());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (hasSuccess()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, getSuccess());
      }
      if (hasError()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getError());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static voldemort.client.protocol.pb.VProto.DeleteResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.DeleteResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return new Builder(); }
    public Builder newBuilderForType() { return new Builder(); }
    public static Builder newBuilder(voldemort.client.protocol.pb.VProto.DeleteResponse prototype) {
      return new Builder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      // Construct using voldemort.client.protocol.pb.VProto.DeleteResponse.newBuilder()
      private Builder() {}

      voldemort.client.protocol.pb.VProto.DeleteResponse result = new voldemort.client.protocol.pb.VProto.DeleteResponse();

      @Override
      protected voldemort.client.protocol.pb.VProto.DeleteResponse internalGetResult() {
        return result;
      }

      @Override
      public Builder clear() {
        result = new voldemort.client.protocol.pb.VProto.DeleteResponse();
        return this;
      }

      @Override
      public Builder clone() {
        return new Builder().mergeFrom(result);
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return voldemort.client.protocol.pb.VProto.DeleteResponse.getDescriptor();
      }

      public voldemort.client.protocol.pb.VProto.DeleteResponse getDefaultInstanceForType() {
        return voldemort.client.protocol.pb.VProto.DeleteResponse.getDefaultInstance();
      }

      public voldemort.client.protocol.pb.VProto.DeleteResponse build() {
        if (result != null && !isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result);
        }
        return buildPartial();
      }

      private voldemort.client.protocol.pb.VProto.DeleteResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }

      public voldemort.client.protocol.pb.VProto.DeleteResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");  }
        voldemort.client.protocol.pb.VProto.DeleteResponse returnMe = result;
        result = null;
        return returnMe;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof voldemort.client.protocol.pb.VProto.DeleteResponse) {
          return mergeFrom((voldemort.client.protocol.pb.VProto.DeleteResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(voldemort.client.protocol.pb.VProto.DeleteResponse other) {
        if (other == voldemort.client.protocol.pb.VProto.DeleteResponse.getDefaultInstance()) return this;
        if (other.hasSuccess()) {
          setSuccess(other.getSuccess());
        }
        if (other.hasError()) {
          mergeError(other.getError());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return mergeFrom(input,
          com.google.protobuf.ExtensionRegistry.getEmptyRegistry());
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistry extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSuccess(input.readBool());
              break;
            }
            case 18: {
              voldemort.client.protocol.pb.VProto.Error.Builder subBuilder = voldemort.client.protocol.pb.VProto.Error.newBuilder();
              if (hasError()) {
                subBuilder.mergeFrom(getError());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setError(subBuilder.buildPartial());
              break;
            }
          }
        }
      }

      // required bool success = 1;
      public boolean hasSuccess() {
        return result.hasSuccess();
      }
      public boolean getSuccess() {
        return result.getSuccess();
      }
      public Builder setSuccess(boolean value) {
        result.hasSuccess = true;
        result.success_ = value;
        return this;
      }
      public Builder clearSuccess() {
        result.hasSuccess = false;
        result.success_ = false;
        return this;
      }

      // optional .voldemort.Error error = 2;
      public boolean hasError() {
        return result.hasError();
      }
      public voldemort.client.protocol.pb.VProto.Error getError() {
        return result.getError();
      }
      public Builder setError(voldemort.client.protocol.pb.VProto.Error value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasError = true;
        result.error_ = value;
        return this;
      }
      public Builder setError(voldemort.client.protocol.pb.VProto.Error.Builder builderForValue) {
        result.hasError = true;
        result.error_ = builderForValue.build();
        return this;
      }
      public Builder mergeError(voldemort.client.protocol.pb.VProto.Error value) {
        if (result.hasError() &&
            result.error_ != voldemort.client.protocol.pb.VProto.Error.getDefaultInstance()) {
          result.error_ =
            voldemort.client.protocol.pb.VProto.Error.newBuilder(result.error_).mergeFrom(value).buildPartial();
        } else {
          result.error_ = value;
        }
        result.hasError = true;
        return this;
      }
      public Builder clearError() {
        result.hasError = false;
        result.error_ = voldemort.client.protocol.pb.VProto.Error.getDefaultInstance();
        return this;
      }
    }

    static {
      voldemort.client.protocol.pb.VProto.getDescriptor();
    }
  }

  public static final class VoldemortRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use VoldemortRequest.newBuilder() to construct.
    private VoldemortRequest() {}

    private static final VoldemortRequest defaultInstance = new VoldemortRequest();
    public static VoldemortRequest getDefaultInstance() {
      return defaultInstance;
    }

    public VoldemortRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_VoldemortRequest_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return voldemort.client.protocol.pb.VProto.internal_static_voldemort_VoldemortRequest_fieldAccessorTable;
    }

    // required .voldemort.RequestType type = 1;
    public static final int TYPE_FIELD_NUMBER = 1;
    private boolean hasType;
    private voldemort.client.protocol.pb.VProto.RequestType type_ = voldemort.client.protocol.pb.VProto.RequestType.GET;
    public boolean hasType() { return hasType; }
    public voldemort.client.protocol.pb.VProto.RequestType getType() { return type_; }

    // required bool should_route = 2 [default = false];
    public static final int SHOULD_ROUTE_FIELD_NUMBER = 2;
    private boolean hasShouldRoute;
    private boolean shouldRoute_ = false;
    public boolean hasShouldRoute() { return hasShouldRoute; }
    public boolean getShouldRoute() { return shouldRoute_; }

    // required string store = 3;
    public static final int STORE_FIELD_NUMBER = 3;
    private boolean hasStore;
    private java.lang.String store_ = "";
    public boolean hasStore() { return hasStore; }
    public java.lang.String getStore() { return store_; }

    // optional .voldemort.GetRequest get = 4;
    public static final int GET_FIELD_NUMBER = 4;
    private boolean hasGet;
    private voldemort.client.protocol.pb.VProto.GetRequest get_ = voldemort.client.protocol.pb.VProto.GetRequest.getDefaultInstance();
    public boolean hasGet() { return hasGet; }
    public voldemort.client.protocol.pb.VProto.GetRequest getGet() { return get_; }

    // optional .voldemort.GetAllRequest getAll = 5;
    public static final int GETALL_FIELD_NUMBER = 5;
    private boolean hasGetAll;
    private voldemort.client.protocol.pb.VProto.GetAllRequest getAll_ = voldemort.client.protocol.pb.VProto.GetAllRequest.getDefaultInstance();
    public boolean hasGetAll() { return hasGetAll; }
    public voldemort.client.protocol.pb.VProto.GetAllRequest getGetAll() { return getAll_; }

    // optional .voldemort.PutRequest put = 6;
    public static final int PUT_FIELD_NUMBER = 6;
    private boolean hasPut;
    private voldemort.client.protocol.pb.VProto.PutRequest put_ = voldemort.client.protocol.pb.VProto.PutRequest.getDefaultInstance();
    public boolean hasPut() { return hasPut; }
    public voldemort.client.protocol.pb.VProto.PutRequest getPut() { return put_; }

    // optional .voldemort.DeleteRequest delete = 7;
    public static final int DELETE_FIELD_NUMBER = 7;
    private boolean hasDelete;
    private voldemort.client.protocol.pb.VProto.DeleteRequest delete_ = voldemort.client.protocol.pb.VProto.DeleteRequest.getDefaultInstance();
    public boolean hasDelete() { return hasDelete; }
    public voldemort.client.protocol.pb.VProto.DeleteRequest getDelete() { return delete_; }

    @Override
    public final boolean isInitialized() {
      if (!hasType) return false;
      if (!hasShouldRoute) return false;
      if (!hasStore) return false;
      if (hasPut()) {
        if (!getPut().isInitialized()) return false;
      }
      if (hasDelete()) {
        if (!getDelete().isInitialized()) return false;
      }
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (hasType()) {
        output.writeEnum(1, getType().getNumber());
      }
      if (hasShouldRoute()) {
        output.writeBool(2, getShouldRoute());
      }
      if (hasStore()) {
        output.writeString(3, getStore());
      }
      if (hasGet()) {
        output.writeMessage(4, getGet());
      }
      if (hasGetAll()) {
        output.writeMessage(5, getGetAll());
      }
      if (hasPut()) {
        output.writeMessage(6, getPut());
      }
      if (hasDelete()) {
        output.writeMessage(7, getDelete());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (hasType()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, getType().getNumber());
      }
      if (hasShouldRoute()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, getShouldRoute());
      }
      if (hasStore()) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(3, getStore());
      }
      if (hasGet()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getGet());
      }
      if (hasGetAll()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getGetAll());
      }
      if (hasPut()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getPut());
      }
      if (hasDelete()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getDelete());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    public static voldemort.client.protocol.pb.VProto.VoldemortRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VoldemortRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VoldemortRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VoldemortRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VoldemortRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VoldemortRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VoldemortRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VoldemortRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VoldemortRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static voldemort.client.protocol.pb.VProto.VoldemortRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistry extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return new Builder(); }
    public Builder newBuilderForType() { return new Builder(); }
    public static Builder newBuilder(voldemort.client.protocol.pb.VProto.VoldemortRequest prototype) {
      return new Builder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      // Construct using voldemort.client.protocol.pb.VProto.VoldemortRequest.newBuilder()
      private Builder() {}

      voldemort.client.protocol.pb.VProto.VoldemortRequest result = new voldemort.client.protocol.pb.VProto.VoldemortRequest();

      @Override
      protected voldemort.client.protocol.pb.VProto.VoldemortRequest internalGetResult() {
        return result;
      }

      @Override
      public Builder clear() {
        result = new voldemort.client.protocol.pb.VProto.VoldemortRequest();
        return this;
      }

      @Override
      public Builder clone() {
        return new Builder().mergeFrom(result);
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return voldemort.client.protocol.pb.VProto.VoldemortRequest.getDescriptor();
      }

      public voldemort.client.protocol.pb.VProto.VoldemortRequest getDefaultInstanceForType() {
        return voldemort.client.protocol.pb.VProto.VoldemortRequest.getDefaultInstance();
      }

      public voldemort.client.protocol.pb.VProto.VoldemortRequest build() {
        if (result != null && !isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result);
        }
        return buildPartial();
      }

      private voldemort.client.protocol.pb.VProto.VoldemortRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw new com.google.protobuf.UninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }

      public voldemort.client.protocol.pb.VProto.VoldemortRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");  }
        voldemort.client.protocol.pb.VProto.VoldemortRequest returnMe = result;
        result = null;
        return returnMe;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof voldemort.client.protocol.pb.VProto.VoldemortRequest) {
          return mergeFrom((voldemort.client.protocol.pb.VProto.VoldemortRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(voldemort.client.protocol.pb.VProto.VoldemortRequest other) {
        if (other == voldemort.client.protocol.pb.VProto.VoldemortRequest.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasShouldRoute()) {
          setShouldRoute(other.getShouldRoute());
        }
        if (other.hasStore()) {
          setStore(other.getStore());
        }
        if (other.hasGet()) {
          mergeGet(other.getGet());
        }
        if (other.hasGetAll()) {
          mergeGetAll(other.getGetAll());
        }
        if (other.hasPut()) {
          mergePut(other.getPut());
        }
        if (other.hasDelete()) {
          mergeDelete(other.getDelete());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return mergeFrom(input,
          com.google.protobuf.ExtensionRegistry.getEmptyRegistry());
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistry extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              voldemort.client.protocol.pb.VProto.RequestType value = voldemort.client.protocol.pb.VProto.RequestType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                setType(value);
              }
              break;
            }
            case 16: {
              setShouldRoute(input.readBool());
              break;
            }
            case 26: {
              setStore(input.readString());
              break;
            }
            case 34: {
              voldemort.client.protocol.pb.VProto.GetRequest.Builder subBuilder = voldemort.client.protocol.pb.VProto.GetRequest.newBuilder();
              if (hasGet()) {
                subBuilder.mergeFrom(getGet());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGet(subBuilder.buildPartial());
              break;
            }
            case 42: {
              voldemort.client.protocol.pb.VProto.GetAllRequest.Builder subBuilder = voldemort.client.protocol.pb.VProto.GetAllRequest.newBuilder();
              if (hasGetAll()) {
                subBuilder.mergeFrom(getGetAll());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGetAll(subBuilder.buildPartial());
              break;
            }
            case 50: {
              voldemort.client.protocol.pb.VProto.PutRequest.Builder subBuilder = voldemort.client.protocol.pb.VProto.PutRequest.newBuilder();
              if (hasPut()) {
                subBuilder.mergeFrom(getPut());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setPut(subBuilder.buildPartial());
              break;
            }
            case 58: {
              voldemort.client.protocol.pb.VProto.DeleteRequest.Builder subBuilder = voldemort.client.protocol.pb.VProto.DeleteRequest.newBuilder();
              if (hasDelete()) {
                subBuilder.mergeFrom(getDelete());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setDelete(subBuilder.buildPartial());
              break;
            }
          }
        }
      }

      // required .voldemort.RequestType type = 1;
      public boolean hasType() {
        return result.hasType();
      }
      public voldemort.client.protocol.pb.VProto.RequestType getType() {
        return result.getType();
      }
      public Builder setType(voldemort.client.protocol.pb.VProto.RequestType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasType = true;
        result.type_ = value;
        return this;
      }
      public Builder clearType() {
        result.hasType = false;
        result.type_ = voldemort.client.protocol.pb.VProto.RequestType.GET;
        return this;
      }

      // required bool should_route = 2 [default = false];
      public boolean hasShouldRoute() {
        return result.hasShouldRoute();
      }
      public boolean getShouldRoute() {
        return result.getShouldRoute();
      }
      public Builder setShouldRoute(boolean value) {
        result.hasShouldRoute = true;
        result.shouldRoute_ = value;
        return this;
      }
      public Builder clearShouldRoute() {
        result.hasShouldRoute = false;
        result.shouldRoute_ = false;
        return this;
      }

      // required string store = 3;
      public boolean hasStore() {
        return result.hasStore();
      }
      public java.lang.String getStore() {
        return result.getStore();
      }
      public Builder setStore(java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasStore = true;
        result.store_ = value;
        return this;
      }
      public Builder clearStore() {
        result.hasStore = false;
        result.store_ = "";
        return this;
      }

      // optional .voldemort.GetRequest get = 4;
      public boolean hasGet() {
        return result.hasGet();
      }
      public voldemort.client.protocol.pb.VProto.GetRequest getGet() {
        return result.getGet();
      }
      public Builder setGet(voldemort.client.protocol.pb.VProto.GetRequest value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasGet = true;
        result.get_ = value;
        return this;
      }
      public Builder setGet(voldemort.client.protocol.pb.VProto.GetRequest.Builder builderForValue) {
        result.hasGet = true;
        result.get_ = builderForValue.build();
        return this;
      }
      public Builder mergeGet(voldemort.client.protocol.pb.VProto.GetRequest value) {
        if (result.hasGet() &&
            result.get_ != voldemort.client.protocol.pb.VProto.GetRequest.getDefaultInstance()) {
          result.get_ =
            voldemort.client.protocol.pb.VProto.GetRequest.newBuilder(result.get_).mergeFrom(value).buildPartial();
        } else {
          result.get_ = value;
        }
        result.hasGet = true;
        return this;
      }
      public Builder clearGet() {
        result.hasGet = false;
        result.get_ = voldemort.client.protocol.pb.VProto.GetRequest.getDefaultInstance();
        return this;
      }

      // optional .voldemort.GetAllRequest getAll = 5;
      public boolean hasGetAll() {
        return result.hasGetAll();
      }
      public voldemort.client.protocol.pb.VProto.GetAllRequest getGetAll() {
        return result.getGetAll();
      }
      public Builder setGetAll(voldemort.client.protocol.pb.VProto.GetAllRequest value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasGetAll = true;
        result.getAll_ = value;
        return this;
      }
      public Builder setGetAll(voldemort.client.protocol.pb.VProto.GetAllRequest.Builder builderForValue) {
        result.hasGetAll = true;
        result.getAll_ = builderForValue.build();
        return this;
      }
      public Builder mergeGetAll(voldemort.client.protocol.pb.VProto.GetAllRequest value) {
        if (result.hasGetAll() &&
            result.getAll_ != voldemort.client.protocol.pb.VProto.GetAllRequest.getDefaultInstance()) {
          result.getAll_ =
            voldemort.client.protocol.pb.VProto.GetAllRequest.newBuilder(result.getAll_).mergeFrom(value).buildPartial();
        } else {
          result.getAll_ = value;
        }
        result.hasGetAll = true;
        return this;
      }
      public Builder clearGetAll() {
        result.hasGetAll = false;
        result.getAll_ = voldemort.client.protocol.pb.VProto.GetAllRequest.getDefaultInstance();
        return this;
      }

      // optional .voldemort.PutRequest put = 6;
      public boolean hasPut() {
        return result.hasPut();
      }
      public voldemort.client.protocol.pb.VProto.PutRequest getPut() {
        return result.getPut();
      }
      public Builder setPut(voldemort.client.protocol.pb.VProto.PutRequest value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasPut = true;
        result.put_ = value;
        return this;
      }
      public Builder setPut(voldemort.client.protocol.pb.VProto.PutRequest.Builder builderForValue) {
        result.hasPut = true;
        result.put_ = builderForValue.build();
        return this;
      }
      public Builder mergePut(voldemort.client.protocol.pb.VProto.PutRequest value) {
        if (result.hasPut() &&
            result.put_ != voldemort.client.protocol.pb.VProto.PutRequest.getDefaultInstance()) {
          result.put_ =
            voldemort.client.protocol.pb.VProto.PutRequest.newBuilder(result.put_).mergeFrom(value).buildPartial();
        } else {
          result.put_ = value;
        }
        result.hasPut = true;
        return this;
      }
      public Builder clearPut() {
        result.hasPut = false;
        result.put_ = voldemort.client.protocol.pb.VProto.PutRequest.getDefaultInstance();
        return this;
      }

      // optional .voldemort.DeleteRequest delete = 7;
      public boolean hasDelete() {
        return result.hasDelete();
      }
      public voldemort.client.protocol.pb.VProto.DeleteRequest getDelete() {
        return result.getDelete();
      }
      public Builder setDelete(voldemort.client.protocol.pb.VProto.DeleteRequest value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasDelete = true;
        result.delete_ = value;
        return this;
      }
      public Builder setDelete(voldemort.client.protocol.pb.VProto.DeleteRequest.Builder builderForValue) {
        result.hasDelete = true;
        result.delete_ = builderForValue.build();
        return this;
      }
      public Builder mergeDelete(voldemort.client.protocol.pb.VProto.DeleteRequest value) {
        if (result.hasDelete() &&
            result.delete_ != voldemort.client.protocol.pb.VProto.DeleteRequest.getDefaultInstance()) {
          result.delete_ =
            voldemort.client.protocol.pb.VProto.DeleteRequest.newBuilder(result.delete_).mergeFrom(value).buildPartial();
        } else {
          result.delete_ = value;
        }
        result.hasDelete = true;
        return this;
      }
      public Builder clearDelete() {
        result.hasDelete = false;
        result.delete_ = voldemort.client.protocol.pb.VProto.DeleteRequest.getDefaultInstance();
        return this;
      }
    }

    static {
      voldemort.client.protocol.pb.VProto.getDescriptor();
    }
  }

  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_voldemort_ClockEntry_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_voldemort_ClockEntry_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_voldemort_VectorClock_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_voldemort_VectorClock_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_voldemort_Versioned_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_voldemort_Versioned_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_voldemort_Error_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_voldemort_Error_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_voldemort_KeyedVersions_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_voldemort_KeyedVersions_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_voldemort_GetRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_voldemort_GetRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_voldemort_GetResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_voldemort_GetResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_voldemort_GetAllRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_voldemort_GetAllRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_voldemort_GetAllResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_voldemort_GetAllResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_voldemort_PutRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_voldemort_PutRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_voldemort_PutResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_voldemort_PutResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_voldemort_DeleteRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_voldemort_DeleteRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_voldemort_DeleteResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_voldemort_DeleteResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_voldemort_VoldemortRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_voldemort_VoldemortRequest_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\026voldemort-client.proto\022\tvoldemort\".\n\nC" +
      "lockEntry\022\017\n\007node_id\030\001 \002(\005\022\017\n\007version\030\002 " +
      "\002(\003\"H\n\013VectorClock\022&\n\007entries\030\001 \003(\0132\025.vo" +
      "ldemort.ClockEntry\022\021\n\ttimestamp\030\002 \001(\003\"C\n" +
      "\tVersioned\022\r\n\005value\030\001 \002(\014\022\'\n\007version\030\002 \002" +
      "(\0132\026.voldemort.VectorClock\"2\n\005Error\022\022\n\ne" +
      "rror_code\030\001 \002(\005\022\025\n\rerror_message\030\002 \002(\t\"D" +
      "\n\rKeyedVersions\022\013\n\003key\030\001 \002(\014\022&\n\010versions" +
      "\030\002 \003(\0132\024.voldemort.Versioned\"\031\n\nGetReque" +
      "st\022\013\n\003key\030\001 \001(\014\"W\n\013GetResponse\022\'\n\tversio" +
      "ned\030\001 \003(\0132\024.voldemort.Versioned\022\037\n\005error" +
      "\030\002 \001(\0132\020.voldemort.Error\"\035\n\rGetAllReques" +
      "t\022\014\n\004keys\030\001 \003(\014\"[\n\016GetAllResponse\022(\n\006val" +
      "ues\030\001 \003(\0132\030.voldemort.KeyedVersions\022\037\n\005e" +
      "rror\030\002 \001(\0132\020.voldemort.Error\"B\n\nPutReque" +
      "st\022\013\n\003key\030\001 \002(\014\022\'\n\tversioned\030\002 \002(\0132\024.vol" +
      "demort.Versioned\".\n\013PutResponse\022\037\n\005error" +
      "\030\001 \001(\0132\020.voldemort.Error\"E\n\rDeleteReques" +
      "t\022\013\n\003key\030\001 \002(\014\022\'\n\007version\030\002 \002(\0132\026.voldem" +
      "ort.VectorClock\"B\n\016DeleteResponse\022\017\n\007suc" +
      "cess\030\001 \002(\010\022\037\n\005error\030\002 \001(\0132\020.voldemort.Er" +
      "ror\"\200\002\n\020VoldemortRequest\022$\n\004type\030\001 \002(\0162\026" +
      ".voldemort.RequestType\022\033\n\014should_route\030\002" +
      " \002(\010:\005false\022\r\n\005store\030\003 \002(\t\022\"\n\003get\030\004 \001(\0132" +
      "\025.voldemort.GetRequest\022(\n\006getAll\030\005 \001(\0132\030" +
      ".voldemort.GetAllRequest\022\"\n\003put\030\006 \001(\0132\025." +
      "voldemort.PutRequest\022(\n\006delete\030\007 \001(\0132\030.v" +
      "oldemort.DeleteRequest*8\n\013RequestType\022\007\n" +
      "\003GET\020\000\022\013\n\007GET_ALL\020\001\022\007\n\003PUT\020\002\022\n\n\006DELETE\020\003" +
      "B(\n\034voldemort.client.protocol.pbB\006VProto" +
      "H\001";
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_voldemort_ClockEntry_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_voldemort_ClockEntry_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_voldemort_ClockEntry_descriptor,
              new java.lang.String[] { "NodeId", "Version", },
              voldemort.client.protocol.pb.VProto.ClockEntry.class,
              voldemort.client.protocol.pb.VProto.ClockEntry.Builder.class);
          internal_static_voldemort_VectorClock_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_voldemort_VectorClock_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_voldemort_VectorClock_descriptor,
              new java.lang.String[] { "Entries", "Timestamp", },
              voldemort.client.protocol.pb.VProto.VectorClock.class,
              voldemort.client.protocol.pb.VProto.VectorClock.Builder.class);
          internal_static_voldemort_Versioned_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_voldemort_Versioned_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_voldemort_Versioned_descriptor,
              new java.lang.String[] { "Value", "Version", },
              voldemort.client.protocol.pb.VProto.Versioned.class,
              voldemort.client.protocol.pb.VProto.Versioned.Builder.class);
          internal_static_voldemort_Error_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_voldemort_Error_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_voldemort_Error_descriptor,
              new java.lang.String[] { "ErrorCode", "ErrorMessage", },
              voldemort.client.protocol.pb.VProto.Error.class,
              voldemort.client.protocol.pb.VProto.Error.Builder.class);
          internal_static_voldemort_KeyedVersions_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_voldemort_KeyedVersions_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_voldemort_KeyedVersions_descriptor,
              new java.lang.String[] { "Key", "Versions", },
              voldemort.client.protocol.pb.VProto.KeyedVersions.class,
              voldemort.client.protocol.pb.VProto.KeyedVersions.Builder.class);
          internal_static_voldemort_GetRequest_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_voldemort_GetRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_voldemort_GetRequest_descriptor,
              new java.lang.String[] { "Key", },
              voldemort.client.protocol.pb.VProto.GetRequest.class,
              voldemort.client.protocol.pb.VProto.GetRequest.Builder.class);
          internal_static_voldemort_GetResponse_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_voldemort_GetResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_voldemort_GetResponse_descriptor,
              new java.lang.String[] { "Versioned", "Error", },
              voldemort.client.protocol.pb.VProto.GetResponse.class,
              voldemort.client.protocol.pb.VProto.GetResponse.Builder.class);
          internal_static_voldemort_GetAllRequest_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_voldemort_GetAllRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_voldemort_GetAllRequest_descriptor,
              new java.lang.String[] { "Keys", },
              voldemort.client.protocol.pb.VProto.GetAllRequest.class,
              voldemort.client.protocol.pb.VProto.GetAllRequest.Builder.class);
          internal_static_voldemort_GetAllResponse_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_voldemort_GetAllResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_voldemort_GetAllResponse_descriptor,
              new java.lang.String[] { "Values", "Error", },
              voldemort.client.protocol.pb.VProto.GetAllResponse.class,
              voldemort.client.protocol.pb.VProto.GetAllResponse.Builder.class);
          internal_static_voldemort_PutRequest_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_voldemort_PutRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_voldemort_PutRequest_descriptor,
              new java.lang.String[] { "Key", "Versioned", },
              voldemort.client.protocol.pb.VProto.PutRequest.class,
              voldemort.client.protocol.pb.VProto.PutRequest.Builder.class);
          internal_static_voldemort_PutResponse_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_voldemort_PutResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_voldemort_PutResponse_descriptor,
              new java.lang.String[] { "Error", },
              voldemort.client.protocol.pb.VProto.PutResponse.class,
              voldemort.client.protocol.pb.VProto.PutResponse.Builder.class);
          internal_static_voldemort_DeleteRequest_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_voldemort_DeleteRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_voldemort_DeleteRequest_descriptor,
              new java.lang.String[] { "Key", "Version", },
              voldemort.client.protocol.pb.VProto.DeleteRequest.class,
              voldemort.client.protocol.pb.VProto.DeleteRequest.Builder.class);
          internal_static_voldemort_DeleteResponse_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_voldemort_DeleteResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_voldemort_DeleteResponse_descriptor,
              new java.lang.String[] { "Success", "Error", },
              voldemort.client.protocol.pb.VProto.DeleteResponse.class,
              voldemort.client.protocol.pb.VProto.DeleteResponse.Builder.class);
          internal_static_voldemort_VoldemortRequest_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_voldemort_VoldemortRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_voldemort_VoldemortRequest_descriptor,
              new java.lang.String[] { "Type", "ShouldRoute", "Store", "Get", "GetAll", "Put", "Delete", },
              voldemort.client.protocol.pb.VProto.VoldemortRequest.class,
              voldemort.client.protocol.pb.VProto.VoldemortRequest.Builder.class);
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }
}