All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.palantir.paxos.persistence.generated.PaxosPersistence Maven / Gradle / Ivy

There is a newer version: 0.1152.0
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: PaxosPersistence.proto

// Protobuf Java Version: 3.25.3
package com.palantir.paxos.persistence.generated;

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

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface PaxosHeaderOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.palantir.paxos.persistence.generated.PaxosHeader)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required bytes checksum = 1;
     * @return Whether the checksum field is set.
     */
    boolean hasChecksum();
    /**
     * required bytes checksum = 1;
     * @return The checksum.
     */
    com.google.protobuf.ByteString getChecksum();
  }
  /**
   * Protobuf type {@code com.palantir.paxos.persistence.generated.PaxosHeader}
   */
  public static final class PaxosHeader extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.palantir.paxos.persistence.generated.PaxosHeader)
      PaxosHeaderOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PaxosHeader.newBuilder() to construct.
    private PaxosHeader(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PaxosHeader() {
      checksum_ = com.google.protobuf.ByteString.EMPTY;
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosHeader_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosHeader_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader.class, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader.Builder.class);
    }

    private int bitField0_;
    public static final int CHECKSUM_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString checksum_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * required bytes checksum = 1;
     * @return Whether the checksum field is set.
     */
    @java.lang.Override
    public boolean hasChecksum() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * required bytes checksum = 1;
     * @return The checksum.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getChecksum() {
      return checksum_;
    }

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

      if (!hasChecksum()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBytes(1, checksum_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, checksum_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader)) {
        return super.equals(obj);
      }
      com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader other = (com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader) obj;

      if (hasChecksum() != other.hasChecksum()) return false;
      if (hasChecksum()) {
        if (!getChecksum()
            .equals(other.getChecksum())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

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

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.palantir.paxos.persistence.generated.PaxosHeader}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:com.palantir.paxos.persistence.generated.PaxosHeader)
        com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeaderOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosHeader_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosHeader_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader.class, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader.Builder.class);
      }

      // Construct using com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        checksum_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosHeader_descriptor;
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader getDefaultInstanceForType() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader.getDefaultInstance();
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader build() {
        com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader buildPartial() {
        com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader result = new com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.checksum_ = checksum_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

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

      public Builder mergeFrom(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader other) {
        if (other == com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader.getDefaultInstance()) return this;
        if (other.hasChecksum()) {
          setChecksum(other.getChecksum());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private com.google.protobuf.ByteString checksum_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * required bytes checksum = 1;
       * @return Whether the checksum field is set.
       */
      @java.lang.Override
      public boolean hasChecksum() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * required bytes checksum = 1;
       * @return The checksum.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getChecksum() {
        return checksum_;
      }
      /**
       * required bytes checksum = 1;
       * @param value The checksum to set.
       * @return This builder for chaining.
       */
      public Builder setChecksum(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checksum_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * required bytes checksum = 1;
       * @return This builder for chaining.
       */
      public Builder clearChecksum() {
        bitField0_ = (bitField0_ & ~0x00000001);
        checksum_ = getDefaultInstance().getChecksum();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:com.palantir.paxos.persistence.generated.PaxosHeader)
    }

    // @@protoc_insertion_point(class_scope:com.palantir.paxos.persistence.generated.PaxosHeader)
    private static final com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader();
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosHeader getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PaxosValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.palantir.paxos.persistence.generated.PaxosValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional bytes bytes = 1;
     * @return Whether the bytes field is set.
     */
    boolean hasBytes();
    /**
     * optional bytes bytes = 1;
     * @return The bytes.
     */
    com.google.protobuf.ByteString getBytes();

    /**
     * optional int64 seq = 2;
     * @return Whether the seq field is set.
     */
    boolean hasSeq();
    /**
     * optional int64 seq = 2;
     * @return The seq.
     */
    long getSeq();

    /**
     * optional string leaderUUID = 3;
     * @return Whether the leaderUUID field is set.
     */
    boolean hasLeaderUUID();
    /**
     * optional string leaderUUID = 3;
     * @return The leaderUUID.
     */
    java.lang.String getLeaderUUID();
    /**
     * optional string leaderUUID = 3;
     * @return The bytes for leaderUUID.
     */
    com.google.protobuf.ByteString
        getLeaderUUIDBytes();
  }
  /**
   * Protobuf type {@code com.palantir.paxos.persistence.generated.PaxosValue}
   */
  public static final class PaxosValue extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.palantir.paxos.persistence.generated.PaxosValue)
      PaxosValueOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PaxosValue.newBuilder() to construct.
    private PaxosValue(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PaxosValue() {
      bytes_ = com.google.protobuf.ByteString.EMPTY;
      leaderUUID_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.class, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.Builder.class);
    }

    private int bitField0_;
    public static final int BYTES_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString bytes_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * optional bytes bytes = 1;
     * @return Whether the bytes field is set.
     */
    @java.lang.Override
    public boolean hasBytes() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional bytes bytes = 1;
     * @return The bytes.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getBytes() {
      return bytes_;
    }

    public static final int SEQ_FIELD_NUMBER = 2;
    private long seq_ = 0L;
    /**
     * optional int64 seq = 2;
     * @return Whether the seq field is set.
     */
    @java.lang.Override
    public boolean hasSeq() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional int64 seq = 2;
     * @return The seq.
     */
    @java.lang.Override
    public long getSeq() {
      return seq_;
    }

    public static final int LEADERUUID_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object leaderUUID_ = "";
    /**
     * optional string leaderUUID = 3;
     * @return Whether the leaderUUID field is set.
     */
    @java.lang.Override
    public boolean hasLeaderUUID() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional string leaderUUID = 3;
     * @return The leaderUUID.
     */
    @java.lang.Override
    public java.lang.String getLeaderUUID() {
      java.lang.Object ref = leaderUUID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          leaderUUID_ = s;
        }
        return s;
      }
    }
    /**
     * optional string leaderUUID = 3;
     * @return The bytes for leaderUUID.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLeaderUUIDBytes() {
      java.lang.Object ref = leaderUUID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        leaderUUID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBytes(1, bytes_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt64(2, seq_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, leaderUUID_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, bytes_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, seq_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, leaderUUID_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue)) {
        return super.equals(obj);
      }
      com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue other = (com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue) obj;

      if (hasBytes() != other.hasBytes()) return false;
      if (hasBytes()) {
        if (!getBytes()
            .equals(other.getBytes())) return false;
      }
      if (hasSeq() != other.hasSeq()) return false;
      if (hasSeq()) {
        if (getSeq()
            != other.getSeq()) return false;
      }
      if (hasLeaderUUID() != other.hasLeaderUUID()) return false;
      if (hasLeaderUUID()) {
        if (!getLeaderUUID()
            .equals(other.getLeaderUUID())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasBytes()) {
        hash = (37 * hash) + BYTES_FIELD_NUMBER;
        hash = (53 * hash) + getBytes().hashCode();
      }
      if (hasSeq()) {
        hash = (37 * hash) + SEQ_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSeq());
      }
      if (hasLeaderUUID()) {
        hash = (37 * hash) + LEADERUUID_FIELD_NUMBER;
        hash = (53 * hash) + getLeaderUUID().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.palantir.paxos.persistence.generated.PaxosValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:com.palantir.paxos.persistence.generated.PaxosValue)
        com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.class, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.Builder.class);
      }

      // Construct using com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        bytes_ = com.google.protobuf.ByteString.EMPTY;
        seq_ = 0L;
        leaderUUID_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosValue_descriptor;
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue getDefaultInstanceForType() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.getDefaultInstance();
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue build() {
        com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue buildPartial() {
        com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue result = new com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.bytes_ = bytes_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.seq_ = seq_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.leaderUUID_ = leaderUUID_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

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

      public Builder mergeFrom(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue other) {
        if (other == com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.getDefaultInstance()) return this;
        if (other.hasBytes()) {
          setBytes(other.getBytes());
        }
        if (other.hasSeq()) {
          setSeq(other.getSeq());
        }
        if (other.hasLeaderUUID()) {
          leaderUUID_ = other.leaderUUID_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                bytes_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                seq_ = input.readInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                leaderUUID_ = input.readBytes();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.ByteString bytes_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes bytes = 1;
       * @return Whether the bytes field is set.
       */
      @java.lang.Override
      public boolean hasBytes() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional bytes bytes = 1;
       * @return The bytes.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getBytes() {
        return bytes_;
      }
      /**
       * optional bytes bytes = 1;
       * @param value The bytes to set.
       * @return This builder for chaining.
       */
      public Builder setBytes(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        bytes_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional bytes bytes = 1;
       * @return This builder for chaining.
       */
      public Builder clearBytes() {
        bitField0_ = (bitField0_ & ~0x00000001);
        bytes_ = getDefaultInstance().getBytes();
        onChanged();
        return this;
      }

      private long seq_ ;
      /**
       * optional int64 seq = 2;
       * @return Whether the seq field is set.
       */
      @java.lang.Override
      public boolean hasSeq() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional int64 seq = 2;
       * @return The seq.
       */
      @java.lang.Override
      public long getSeq() {
        return seq_;
      }
      /**
       * optional int64 seq = 2;
       * @param value The seq to set.
       * @return This builder for chaining.
       */
      public Builder setSeq(long value) {

        seq_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional int64 seq = 2;
       * @return This builder for chaining.
       */
      public Builder clearSeq() {
        bitField0_ = (bitField0_ & ~0x00000002);
        seq_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object leaderUUID_ = "";
      /**
       * optional string leaderUUID = 3;
       * @return Whether the leaderUUID field is set.
       */
      public boolean hasLeaderUUID() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional string leaderUUID = 3;
       * @return The leaderUUID.
       */
      public java.lang.String getLeaderUUID() {
        java.lang.Object ref = leaderUUID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            leaderUUID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string leaderUUID = 3;
       * @return The bytes for leaderUUID.
       */
      public com.google.protobuf.ByteString
          getLeaderUUIDBytes() {
        java.lang.Object ref = leaderUUID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          leaderUUID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string leaderUUID = 3;
       * @param value The leaderUUID to set.
       * @return This builder for chaining.
       */
      public Builder setLeaderUUID(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        leaderUUID_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional string leaderUUID = 3;
       * @return This builder for chaining.
       */
      public Builder clearLeaderUUID() {
        leaderUUID_ = getDefaultInstance().getLeaderUUID();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * optional string leaderUUID = 3;
       * @param value The bytes for leaderUUID to set.
       * @return This builder for chaining.
       */
      public Builder setLeaderUUIDBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        leaderUUID_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:com.palantir.paxos.persistence.generated.PaxosValue)
    }

    // @@protoc_insertion_point(class_scope:com.palantir.paxos.persistence.generated.PaxosValue)
    private static final com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue();
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PaxosAcceptorStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.palantir.paxos.persistence.generated.PaxosAcceptorState)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastPromisedId = 1;
     * @return Whether the lastPromisedId field is set.
     */
    boolean hasLastPromisedId();
    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastPromisedId = 1;
     * @return The lastPromisedId.
     */
    com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId getLastPromisedId();
    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastPromisedId = 1;
     */
    com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalIdOrBuilder getLastPromisedIdOrBuilder();

    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastAcceptedId = 2;
     * @return Whether the lastAcceptedId field is set.
     */
    boolean hasLastAcceptedId();
    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastAcceptedId = 2;
     * @return The lastAcceptedId.
     */
    com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId getLastAcceptedId();
    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastAcceptedId = 2;
     */
    com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalIdOrBuilder getLastAcceptedIdOrBuilder();

    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosValue lastAcceptedValue = 3;
     * @return Whether the lastAcceptedValue field is set.
     */
    boolean hasLastAcceptedValue();
    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosValue lastAcceptedValue = 3;
     * @return The lastAcceptedValue.
     */
    com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue getLastAcceptedValue();
    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosValue lastAcceptedValue = 3;
     */
    com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValueOrBuilder getLastAcceptedValueOrBuilder();
  }
  /**
   * Protobuf type {@code com.palantir.paxos.persistence.generated.PaxosAcceptorState}
   */
  public static final class PaxosAcceptorState extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.palantir.paxos.persistence.generated.PaxosAcceptorState)
      PaxosAcceptorStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PaxosAcceptorState.newBuilder() to construct.
    private PaxosAcceptorState(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PaxosAcceptorState() {
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosAcceptorState_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosAcceptorState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState.class, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState.Builder.class);
    }

    private int bitField0_;
    public static final int LASTPROMISEDID_FIELD_NUMBER = 1;
    private com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId lastPromisedId_;
    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastPromisedId = 1;
     * @return Whether the lastPromisedId field is set.
     */
    @java.lang.Override
    public boolean hasLastPromisedId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastPromisedId = 1;
     * @return The lastPromisedId.
     */
    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId getLastPromisedId() {
      return lastPromisedId_ == null ? com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.getDefaultInstance() : lastPromisedId_;
    }
    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastPromisedId = 1;
     */
    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalIdOrBuilder getLastPromisedIdOrBuilder() {
      return lastPromisedId_ == null ? com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.getDefaultInstance() : lastPromisedId_;
    }

    public static final int LASTACCEPTEDID_FIELD_NUMBER = 2;
    private com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId lastAcceptedId_;
    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastAcceptedId = 2;
     * @return Whether the lastAcceptedId field is set.
     */
    @java.lang.Override
    public boolean hasLastAcceptedId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastAcceptedId = 2;
     * @return The lastAcceptedId.
     */
    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId getLastAcceptedId() {
      return lastAcceptedId_ == null ? com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.getDefaultInstance() : lastAcceptedId_;
    }
    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastAcceptedId = 2;
     */
    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalIdOrBuilder getLastAcceptedIdOrBuilder() {
      return lastAcceptedId_ == null ? com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.getDefaultInstance() : lastAcceptedId_;
    }

    public static final int LASTACCEPTEDVALUE_FIELD_NUMBER = 3;
    private com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue lastAcceptedValue_;
    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosValue lastAcceptedValue = 3;
     * @return Whether the lastAcceptedValue field is set.
     */
    @java.lang.Override
    public boolean hasLastAcceptedValue() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosValue lastAcceptedValue = 3;
     * @return The lastAcceptedValue.
     */
    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue getLastAcceptedValue() {
      return lastAcceptedValue_ == null ? com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.getDefaultInstance() : lastAcceptedValue_;
    }
    /**
     * optional .com.palantir.paxos.persistence.generated.PaxosValue lastAcceptedValue = 3;
     */
    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValueOrBuilder getLastAcceptedValueOrBuilder() {
      return lastAcceptedValue_ == null ? com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.getDefaultInstance() : lastAcceptedValue_;
    }

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

      if (hasLastPromisedId()) {
        if (!getLastPromisedId().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasLastAcceptedId()) {
        if (!getLastAcceptedId().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getLastPromisedId());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getLastAcceptedId());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(3, getLastAcceptedValue());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getLastPromisedId());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getLastAcceptedId());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getLastAcceptedValue());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState)) {
        return super.equals(obj);
      }
      com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState other = (com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState) obj;

      if (hasLastPromisedId() != other.hasLastPromisedId()) return false;
      if (hasLastPromisedId()) {
        if (!getLastPromisedId()
            .equals(other.getLastPromisedId())) return false;
      }
      if (hasLastAcceptedId() != other.hasLastAcceptedId()) return false;
      if (hasLastAcceptedId()) {
        if (!getLastAcceptedId()
            .equals(other.getLastAcceptedId())) return false;
      }
      if (hasLastAcceptedValue() != other.hasLastAcceptedValue()) return false;
      if (hasLastAcceptedValue()) {
        if (!getLastAcceptedValue()
            .equals(other.getLastAcceptedValue())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasLastPromisedId()) {
        hash = (37 * hash) + LASTPROMISEDID_FIELD_NUMBER;
        hash = (53 * hash) + getLastPromisedId().hashCode();
      }
      if (hasLastAcceptedId()) {
        hash = (37 * hash) + LASTACCEPTEDID_FIELD_NUMBER;
        hash = (53 * hash) + getLastAcceptedId().hashCode();
      }
      if (hasLastAcceptedValue()) {
        hash = (37 * hash) + LASTACCEPTEDVALUE_FIELD_NUMBER;
        hash = (53 * hash) + getLastAcceptedValue().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.palantir.paxos.persistence.generated.PaxosAcceptorState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:com.palantir.paxos.persistence.generated.PaxosAcceptorState)
        com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosAcceptorState_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosAcceptorState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState.class, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState.Builder.class);
      }

      // Construct using com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getLastPromisedIdFieldBuilder();
          getLastAcceptedIdFieldBuilder();
          getLastAcceptedValueFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        lastPromisedId_ = null;
        if (lastPromisedIdBuilder_ != null) {
          lastPromisedIdBuilder_.dispose();
          lastPromisedIdBuilder_ = null;
        }
        lastAcceptedId_ = null;
        if (lastAcceptedIdBuilder_ != null) {
          lastAcceptedIdBuilder_.dispose();
          lastAcceptedIdBuilder_ = null;
        }
        lastAcceptedValue_ = null;
        if (lastAcceptedValueBuilder_ != null) {
          lastAcceptedValueBuilder_.dispose();
          lastAcceptedValueBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosAcceptorState_descriptor;
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState getDefaultInstanceForType() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState.getDefaultInstance();
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState build() {
        com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState buildPartial() {
        com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState result = new com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.lastPromisedId_ = lastPromisedIdBuilder_ == null
              ? lastPromisedId_
              : lastPromisedIdBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.lastAcceptedId_ = lastAcceptedIdBuilder_ == null
              ? lastAcceptedId_
              : lastAcceptedIdBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.lastAcceptedValue_ = lastAcceptedValueBuilder_ == null
              ? lastAcceptedValue_
              : lastAcceptedValueBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

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

      public Builder mergeFrom(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState other) {
        if (other == com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState.getDefaultInstance()) return this;
        if (other.hasLastPromisedId()) {
          mergeLastPromisedId(other.getLastPromisedId());
        }
        if (other.hasLastAcceptedId()) {
          mergeLastAcceptedId(other.getLastAcceptedId());
        }
        if (other.hasLastAcceptedValue()) {
          mergeLastAcceptedValue(other.getLastAcceptedValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (hasLastPromisedId()) {
          if (!getLastPromisedId().isInitialized()) {
            return false;
          }
        }
        if (hasLastAcceptedId()) {
          if (!getLastAcceptedId().isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getLastPromisedIdFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getLastAcceptedIdFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getLastAcceptedValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId lastPromisedId_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.Builder, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalIdOrBuilder> lastPromisedIdBuilder_;
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastPromisedId = 1;
       * @return Whether the lastPromisedId field is set.
       */
      public boolean hasLastPromisedId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastPromisedId = 1;
       * @return The lastPromisedId.
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId getLastPromisedId() {
        if (lastPromisedIdBuilder_ == null) {
          return lastPromisedId_ == null ? com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.getDefaultInstance() : lastPromisedId_;
        } else {
          return lastPromisedIdBuilder_.getMessage();
        }
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastPromisedId = 1;
       */
      public Builder setLastPromisedId(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId value) {
        if (lastPromisedIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastPromisedId_ = value;
        } else {
          lastPromisedIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastPromisedId = 1;
       */
      public Builder setLastPromisedId(
          com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.Builder builderForValue) {
        if (lastPromisedIdBuilder_ == null) {
          lastPromisedId_ = builderForValue.build();
        } else {
          lastPromisedIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastPromisedId = 1;
       */
      public Builder mergeLastPromisedId(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId value) {
        if (lastPromisedIdBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            lastPromisedId_ != null &&
            lastPromisedId_ != com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.getDefaultInstance()) {
            getLastPromisedIdBuilder().mergeFrom(value);
          } else {
            lastPromisedId_ = value;
          }
        } else {
          lastPromisedIdBuilder_.mergeFrom(value);
        }
        if (lastPromisedId_ != null) {
          bitField0_ |= 0x00000001;
          onChanged();
        }
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastPromisedId = 1;
       */
      public Builder clearLastPromisedId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        lastPromisedId_ = null;
        if (lastPromisedIdBuilder_ != null) {
          lastPromisedIdBuilder_.dispose();
          lastPromisedIdBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastPromisedId = 1;
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.Builder getLastPromisedIdBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getLastPromisedIdFieldBuilder().getBuilder();
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastPromisedId = 1;
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalIdOrBuilder getLastPromisedIdOrBuilder() {
        if (lastPromisedIdBuilder_ != null) {
          return lastPromisedIdBuilder_.getMessageOrBuilder();
        } else {
          return lastPromisedId_ == null ?
              com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.getDefaultInstance() : lastPromisedId_;
        }
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastPromisedId = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.Builder, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalIdOrBuilder> 
          getLastPromisedIdFieldBuilder() {
        if (lastPromisedIdBuilder_ == null) {
          lastPromisedIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.Builder, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalIdOrBuilder>(
                  getLastPromisedId(),
                  getParentForChildren(),
                  isClean());
          lastPromisedId_ = null;
        }
        return lastPromisedIdBuilder_;
      }

      private com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId lastAcceptedId_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.Builder, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalIdOrBuilder> lastAcceptedIdBuilder_;
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastAcceptedId = 2;
       * @return Whether the lastAcceptedId field is set.
       */
      public boolean hasLastAcceptedId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastAcceptedId = 2;
       * @return The lastAcceptedId.
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId getLastAcceptedId() {
        if (lastAcceptedIdBuilder_ == null) {
          return lastAcceptedId_ == null ? com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.getDefaultInstance() : lastAcceptedId_;
        } else {
          return lastAcceptedIdBuilder_.getMessage();
        }
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastAcceptedId = 2;
       */
      public Builder setLastAcceptedId(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId value) {
        if (lastAcceptedIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastAcceptedId_ = value;
        } else {
          lastAcceptedIdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastAcceptedId = 2;
       */
      public Builder setLastAcceptedId(
          com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.Builder builderForValue) {
        if (lastAcceptedIdBuilder_ == null) {
          lastAcceptedId_ = builderForValue.build();
        } else {
          lastAcceptedIdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastAcceptedId = 2;
       */
      public Builder mergeLastAcceptedId(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId value) {
        if (lastAcceptedIdBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            lastAcceptedId_ != null &&
            lastAcceptedId_ != com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.getDefaultInstance()) {
            getLastAcceptedIdBuilder().mergeFrom(value);
          } else {
            lastAcceptedId_ = value;
          }
        } else {
          lastAcceptedIdBuilder_.mergeFrom(value);
        }
        if (lastAcceptedId_ != null) {
          bitField0_ |= 0x00000002;
          onChanged();
        }
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastAcceptedId = 2;
       */
      public Builder clearLastAcceptedId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        lastAcceptedId_ = null;
        if (lastAcceptedIdBuilder_ != null) {
          lastAcceptedIdBuilder_.dispose();
          lastAcceptedIdBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastAcceptedId = 2;
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.Builder getLastAcceptedIdBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getLastAcceptedIdFieldBuilder().getBuilder();
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastAcceptedId = 2;
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalIdOrBuilder getLastAcceptedIdOrBuilder() {
        if (lastAcceptedIdBuilder_ != null) {
          return lastAcceptedIdBuilder_.getMessageOrBuilder();
        } else {
          return lastAcceptedId_ == null ?
              com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.getDefaultInstance() : lastAcceptedId_;
        }
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosProposalId lastAcceptedId = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.Builder, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalIdOrBuilder> 
          getLastAcceptedIdFieldBuilder() {
        if (lastAcceptedIdBuilder_ == null) {
          lastAcceptedIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.Builder, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalIdOrBuilder>(
                  getLastAcceptedId(),
                  getParentForChildren(),
                  isClean());
          lastAcceptedId_ = null;
        }
        return lastAcceptedIdBuilder_;
      }

      private com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue lastAcceptedValue_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.Builder, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValueOrBuilder> lastAcceptedValueBuilder_;
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosValue lastAcceptedValue = 3;
       * @return Whether the lastAcceptedValue field is set.
       */
      public boolean hasLastAcceptedValue() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosValue lastAcceptedValue = 3;
       * @return The lastAcceptedValue.
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue getLastAcceptedValue() {
        if (lastAcceptedValueBuilder_ == null) {
          return lastAcceptedValue_ == null ? com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.getDefaultInstance() : lastAcceptedValue_;
        } else {
          return lastAcceptedValueBuilder_.getMessage();
        }
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosValue lastAcceptedValue = 3;
       */
      public Builder setLastAcceptedValue(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue value) {
        if (lastAcceptedValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastAcceptedValue_ = value;
        } else {
          lastAcceptedValueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosValue lastAcceptedValue = 3;
       */
      public Builder setLastAcceptedValue(
          com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.Builder builderForValue) {
        if (lastAcceptedValueBuilder_ == null) {
          lastAcceptedValue_ = builderForValue.build();
        } else {
          lastAcceptedValueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosValue lastAcceptedValue = 3;
       */
      public Builder mergeLastAcceptedValue(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue value) {
        if (lastAcceptedValueBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            lastAcceptedValue_ != null &&
            lastAcceptedValue_ != com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.getDefaultInstance()) {
            getLastAcceptedValueBuilder().mergeFrom(value);
          } else {
            lastAcceptedValue_ = value;
          }
        } else {
          lastAcceptedValueBuilder_.mergeFrom(value);
        }
        if (lastAcceptedValue_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosValue lastAcceptedValue = 3;
       */
      public Builder clearLastAcceptedValue() {
        bitField0_ = (bitField0_ & ~0x00000004);
        lastAcceptedValue_ = null;
        if (lastAcceptedValueBuilder_ != null) {
          lastAcceptedValueBuilder_.dispose();
          lastAcceptedValueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosValue lastAcceptedValue = 3;
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.Builder getLastAcceptedValueBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getLastAcceptedValueFieldBuilder().getBuilder();
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosValue lastAcceptedValue = 3;
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValueOrBuilder getLastAcceptedValueOrBuilder() {
        if (lastAcceptedValueBuilder_ != null) {
          return lastAcceptedValueBuilder_.getMessageOrBuilder();
        } else {
          return lastAcceptedValue_ == null ?
              com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.getDefaultInstance() : lastAcceptedValue_;
        }
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.PaxosValue lastAcceptedValue = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.Builder, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValueOrBuilder> 
          getLastAcceptedValueFieldBuilder() {
        if (lastAcceptedValueBuilder_ == null) {
          lastAcceptedValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValue.Builder, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosValueOrBuilder>(
                  getLastAcceptedValue(),
                  getParentForChildren(),
                  isClean());
          lastAcceptedValue_ = null;
        }
        return lastAcceptedValueBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:com.palantir.paxos.persistence.generated.PaxosAcceptorState)
    }

    // @@protoc_insertion_point(class_scope:com.palantir.paxos.persistence.generated.PaxosAcceptorState)
    private static final com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState();
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosAcceptorState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PaxosProposalIdOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.palantir.paxos.persistence.generated.PaxosProposalId)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required int64 number = 1;
     * @return Whether the number field is set.
     */
    boolean hasNumber();
    /**
     * required int64 number = 1;
     * @return The number.
     */
    long getNumber();

    /**
     * optional string proposerUUID = 2;
     * @return Whether the proposerUUID field is set.
     */
    boolean hasProposerUUID();
    /**
     * optional string proposerUUID = 2;
     * @return The proposerUUID.
     */
    java.lang.String getProposerUUID();
    /**
     * optional string proposerUUID = 2;
     * @return The bytes for proposerUUID.
     */
    com.google.protobuf.ByteString
        getProposerUUIDBytes();
  }
  /**
   * Protobuf type {@code com.palantir.paxos.persistence.generated.PaxosProposalId}
   */
  public static final class PaxosProposalId extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.palantir.paxos.persistence.generated.PaxosProposalId)
      PaxosProposalIdOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PaxosProposalId.newBuilder() to construct.
    private PaxosProposalId(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PaxosProposalId() {
      proposerUUID_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosProposalId_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosProposalId_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.class, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.Builder.class);
    }

    private int bitField0_;
    public static final int NUMBER_FIELD_NUMBER = 1;
    private long number_ = 0L;
    /**
     * required int64 number = 1;
     * @return Whether the number field is set.
     */
    @java.lang.Override
    public boolean hasNumber() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * required int64 number = 1;
     * @return The number.
     */
    @java.lang.Override
    public long getNumber() {
      return number_;
    }

    public static final int PROPOSERUUID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object proposerUUID_ = "";
    /**
     * optional string proposerUUID = 2;
     * @return Whether the proposerUUID field is set.
     */
    @java.lang.Override
    public boolean hasProposerUUID() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional string proposerUUID = 2;
     * @return The proposerUUID.
     */
    @java.lang.Override
    public java.lang.String getProposerUUID() {
      java.lang.Object ref = proposerUUID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          proposerUUID_ = s;
        }
        return s;
      }
    }
    /**
     * optional string proposerUUID = 2;
     * @return The bytes for proposerUUID.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getProposerUUIDBytes() {
      java.lang.Object ref = proposerUUID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        proposerUUID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      if (!hasNumber()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt64(1, number_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, proposerUUID_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, number_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, proposerUUID_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId)) {
        return super.equals(obj);
      }
      com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId other = (com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId) obj;

      if (hasNumber() != other.hasNumber()) return false;
      if (hasNumber()) {
        if (getNumber()
            != other.getNumber()) return false;
      }
      if (hasProposerUUID() != other.hasProposerUUID()) return false;
      if (hasProposerUUID()) {
        if (!getProposerUUID()
            .equals(other.getProposerUUID())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasNumber()) {
        hash = (37 * hash) + NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getNumber());
      }
      if (hasProposerUUID()) {
        hash = (37 * hash) + PROPOSERUUID_FIELD_NUMBER;
        hash = (53 * hash) + getProposerUUID().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.palantir.paxos.persistence.generated.PaxosProposalId}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:com.palantir.paxos.persistence.generated.PaxosProposalId)
        com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalIdOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosProposalId_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosProposalId_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.class, com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.Builder.class);
      }

      // Construct using com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        number_ = 0L;
        proposerUUID_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_PaxosProposalId_descriptor;
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId getDefaultInstanceForType() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.getDefaultInstance();
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId build() {
        com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId buildPartial() {
        com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId result = new com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.number_ = number_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.proposerUUID_ = proposerUUID_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

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

      public Builder mergeFrom(com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId other) {
        if (other == com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId.getDefaultInstance()) return this;
        if (other.hasNumber()) {
          setNumber(other.getNumber());
        }
        if (other.hasProposerUUID()) {
          proposerUUID_ = other.proposerUUID_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private long number_ ;
      /**
       * required int64 number = 1;
       * @return Whether the number field is set.
       */
      @java.lang.Override
      public boolean hasNumber() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * required int64 number = 1;
       * @return The number.
       */
      @java.lang.Override
      public long getNumber() {
        return number_;
      }
      /**
       * required int64 number = 1;
       * @param value The number to set.
       * @return This builder for chaining.
       */
      public Builder setNumber(long value) {

        number_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * required int64 number = 1;
       * @return This builder for chaining.
       */
      public Builder clearNumber() {
        bitField0_ = (bitField0_ & ~0x00000001);
        number_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object proposerUUID_ = "";
      /**
       * optional string proposerUUID = 2;
       * @return Whether the proposerUUID field is set.
       */
      public boolean hasProposerUUID() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional string proposerUUID = 2;
       * @return The proposerUUID.
       */
      public java.lang.String getProposerUUID() {
        java.lang.Object ref = proposerUUID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            proposerUUID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string proposerUUID = 2;
       * @return The bytes for proposerUUID.
       */
      public com.google.protobuf.ByteString
          getProposerUUIDBytes() {
        java.lang.Object ref = proposerUUID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          proposerUUID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string proposerUUID = 2;
       * @param value The proposerUUID to set.
       * @return This builder for chaining.
       */
      public Builder setProposerUUID(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        proposerUUID_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional string proposerUUID = 2;
       * @return This builder for chaining.
       */
      public Builder clearProposerUUID() {
        proposerUUID_ = getDefaultInstance().getProposerUUID();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * optional string proposerUUID = 2;
       * @param value The bytes for proposerUUID to set.
       * @return This builder for chaining.
       */
      public Builder setProposerUUIDBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        proposerUUID_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:com.palantir.paxos.persistence.generated.PaxosProposalId)
    }

    // @@protoc_insertion_point(class_scope:com.palantir.paxos.persistence.generated.PaxosProposalId)
    private static final com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId();
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.PaxosProposalId getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ExceptionProtoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.palantir.paxos.persistence.generated.ExceptionProto)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required string type = 1;
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * required string type = 1;
     * @return The type.
     */
    java.lang.String getType();
    /**
     * required string type = 1;
     * @return The bytes for type.
     */
    com.google.protobuf.ByteString
        getTypeBytes();

    /**
     * optional string message = 2;
     * @return Whether the message field is set.
     */
    boolean hasMessage();
    /**
     * optional string message = 2;
     * @return The message.
     */
    java.lang.String getMessage();
    /**
     * optional string message = 2;
     * @return The bytes for message.
     */
    com.google.protobuf.ByteString
        getMessageBytes();

    /**
     * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
     */
    java.util.List 
        getStackTraceList();
    /**
     * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
     */
    com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto getStackTrace(int index);
    /**
     * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
     */
    int getStackTraceCount();
    /**
     * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
     */
    java.util.List 
        getStackTraceOrBuilderList();
    /**
     * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
     */
    com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProtoOrBuilder getStackTraceOrBuilder(
        int index);

    /**
     * optional .com.palantir.paxos.persistence.generated.ExceptionProto cause = 4;
     * @return Whether the cause field is set.
     */
    boolean hasCause();
    /**
     * optional .com.palantir.paxos.persistence.generated.ExceptionProto cause = 4;
     * @return The cause.
     */
    com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto getCause();
    /**
     * optional .com.palantir.paxos.persistence.generated.ExceptionProto cause = 4;
     */
    com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProtoOrBuilder getCauseOrBuilder();
  }
  /**
   * Protobuf type {@code com.palantir.paxos.persistence.generated.ExceptionProto}
   */
  public static final class ExceptionProto extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.palantir.paxos.persistence.generated.ExceptionProto)
      ExceptionProtoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ExceptionProto.newBuilder() to construct.
    private ExceptionProto(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private ExceptionProto() {
      type_ = "";
      message_ = "";
      stackTrace_ = java.util.Collections.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_ExceptionProto_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_ExceptionProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.class, com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.Builder.class);
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object type_ = "";
    /**
     * required string type = 1;
     * @return Whether the type field is set.
     */
    @java.lang.Override
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * required string type = 1;
     * @return The type.
     */
    @java.lang.Override
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     * required string type = 1;
     * @return The bytes for type.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object message_ = "";
    /**
     * optional string message = 2;
     * @return Whether the message field is set.
     */
    @java.lang.Override
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional string message = 2;
     * @return The message.
     */
    @java.lang.Override
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     * optional string message = 2;
     * @return The bytes for message.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STACK_TRACE_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List stackTrace_;
    /**
     * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
     */
    @java.lang.Override
    public java.util.List getStackTraceList() {
      return stackTrace_;
    }
    /**
     * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
     */
    @java.lang.Override
    public java.util.List 
        getStackTraceOrBuilderList() {
      return stackTrace_;
    }
    /**
     * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
     */
    @java.lang.Override
    public int getStackTraceCount() {
      return stackTrace_.size();
    }
    /**
     * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
     */
    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto getStackTrace(int index) {
      return stackTrace_.get(index);
    }
    /**
     * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
     */
    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProtoOrBuilder getStackTraceOrBuilder(
        int index) {
      return stackTrace_.get(index);
    }

    public static final int CAUSE_FIELD_NUMBER = 4;
    private com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto cause_;
    /**
     * optional .com.palantir.paxos.persistence.generated.ExceptionProto cause = 4;
     * @return Whether the cause field is set.
     */
    @java.lang.Override
    public boolean hasCause() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional .com.palantir.paxos.persistence.generated.ExceptionProto cause = 4;
     * @return The cause.
     */
    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto getCause() {
      return cause_ == null ? com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.getDefaultInstance() : cause_;
    }
    /**
     * optional .com.palantir.paxos.persistence.generated.ExceptionProto cause = 4;
     */
    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProtoOrBuilder getCauseOrBuilder() {
      return cause_ == null ? com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.getDefaultInstance() : cause_;
    }

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

      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getStackTraceCount(); i++) {
        if (!getStackTrace(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasCause()) {
        if (!getCause().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, type_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, message_);
      }
      for (int i = 0; i < stackTrace_.size(); i++) {
        output.writeMessage(3, stackTrace_.get(i));
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(4, getCause());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, type_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, message_);
      }
      for (int i = 0; i < stackTrace_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, stackTrace_.get(i));
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getCause());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto)) {
        return super.equals(obj);
      }
      com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto other = (com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto) obj;

      if (hasType() != other.hasType()) return false;
      if (hasType()) {
        if (!getType()
            .equals(other.getType())) return false;
      }
      if (hasMessage() != other.hasMessage()) return false;
      if (hasMessage()) {
        if (!getMessage()
            .equals(other.getMessage())) return false;
      }
      if (!getStackTraceList()
          .equals(other.getStackTraceList())) return false;
      if (hasCause() != other.hasCause()) return false;
      if (hasCause()) {
        if (!getCause()
            .equals(other.getCause())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (hasMessage()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
      }
      if (getStackTraceCount() > 0) {
        hash = (37 * hash) + STACK_TRACE_FIELD_NUMBER;
        hash = (53 * hash) + getStackTraceList().hashCode();
      }
      if (hasCause()) {
        hash = (37 * hash) + CAUSE_FIELD_NUMBER;
        hash = (53 * hash) + getCause().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.palantir.paxos.persistence.generated.ExceptionProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:com.palantir.paxos.persistence.generated.ExceptionProto)
        com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_ExceptionProto_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_ExceptionProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.class, com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.Builder.class);
      }

      // Construct using com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getStackTraceFieldBuilder();
          getCauseFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        type_ = "";
        message_ = "";
        if (stackTraceBuilder_ == null) {
          stackTrace_ = java.util.Collections.emptyList();
        } else {
          stackTrace_ = null;
          stackTraceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        cause_ = null;
        if (causeBuilder_ != null) {
          causeBuilder_.dispose();
          causeBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_ExceptionProto_descriptor;
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto getDefaultInstanceForType() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.getDefaultInstance();
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto build() {
        com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto buildPartial() {
        com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto result = new com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto result) {
        if (stackTraceBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            stackTrace_ = java.util.Collections.unmodifiableList(stackTrace_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.stackTrace_ = stackTrace_;
        } else {
          result.stackTrace_ = stackTraceBuilder_.build();
        }
      }

      private void buildPartial0(com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.type_ = type_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.message_ = message_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.cause_ = causeBuilder_ == null
              ? cause_
              : causeBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

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

      public Builder mergeFrom(com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto other) {
        if (other == com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.getDefaultInstance()) return this;
        if (other.hasType()) {
          type_ = other.type_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasMessage()) {
          message_ = other.message_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (stackTraceBuilder_ == null) {
          if (!other.stackTrace_.isEmpty()) {
            if (stackTrace_.isEmpty()) {
              stackTrace_ = other.stackTrace_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureStackTraceIsMutable();
              stackTrace_.addAll(other.stackTrace_);
            }
            onChanged();
          }
        } else {
          if (!other.stackTrace_.isEmpty()) {
            if (stackTraceBuilder_.isEmpty()) {
              stackTraceBuilder_.dispose();
              stackTraceBuilder_ = null;
              stackTrace_ = other.stackTrace_;
              bitField0_ = (bitField0_ & ~0x00000004);
              stackTraceBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getStackTraceFieldBuilder() : null;
            } else {
              stackTraceBuilder_.addAllMessages(other.stackTrace_);
            }
          }
        }
        if (other.hasCause()) {
          mergeCause(other.getCause());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasType()) {
          return false;
        }
        for (int i = 0; i < getStackTraceCount(); i++) {
          if (!getStackTrace(i).isInitialized()) {
            return false;
          }
        }
        if (hasCause()) {
          if (!getCause().isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                type_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                message_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto m =
                    input.readMessage(
                        com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.PARSER,
                        extensionRegistry);
                if (stackTraceBuilder_ == null) {
                  ensureStackTraceIsMutable();
                  stackTrace_.add(m);
                } else {
                  stackTraceBuilder_.addMessage(m);
                }
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    getCauseFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object type_ = "";
      /**
       * required string type = 1;
       * @return Whether the type field is set.
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * required string type = 1;
       * @return The type.
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string type = 1;
       * @return The bytes for type.
       */
      public com.google.protobuf.ByteString
          getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string type = 1;
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        type_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * required string type = 1;
       * @return This builder for chaining.
       */
      public Builder clearType() {
        type_ = getDefaultInstance().getType();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * required string type = 1;
       * @param value The bytes for type to set.
       * @return This builder for chaining.
       */
      public Builder setTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        type_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       * optional string message = 2;
       * @return Whether the message field is set.
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional string message = 2;
       * @return The message.
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string message = 2;
       * @return The bytes for message.
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string message = 2;
       * @param value The message to set.
       * @return This builder for chaining.
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        message_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional string message = 2;
       * @return This builder for chaining.
       */
      public Builder clearMessage() {
        message_ = getDefaultInstance().getMessage();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * optional string message = 2;
       * @param value The bytes for message to set.
       * @return This builder for chaining.
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        message_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.util.List stackTrace_ =
        java.util.Collections.emptyList();
      private void ensureStackTraceIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          stackTrace_ = new java.util.ArrayList(stackTrace_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto, com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.Builder, com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProtoOrBuilder> stackTraceBuilder_;

      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public java.util.List getStackTraceList() {
        if (stackTraceBuilder_ == null) {
          return java.util.Collections.unmodifiableList(stackTrace_);
        } else {
          return stackTraceBuilder_.getMessageList();
        }
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public int getStackTraceCount() {
        if (stackTraceBuilder_ == null) {
          return stackTrace_.size();
        } else {
          return stackTraceBuilder_.getCount();
        }
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto getStackTrace(int index) {
        if (stackTraceBuilder_ == null) {
          return stackTrace_.get(index);
        } else {
          return stackTraceBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public Builder setStackTrace(
          int index, com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto value) {
        if (stackTraceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStackTraceIsMutable();
          stackTrace_.set(index, value);
          onChanged();
        } else {
          stackTraceBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public Builder setStackTrace(
          int index, com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.Builder builderForValue) {
        if (stackTraceBuilder_ == null) {
          ensureStackTraceIsMutable();
          stackTrace_.set(index, builderForValue.build());
          onChanged();
        } else {
          stackTraceBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public Builder addStackTrace(com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto value) {
        if (stackTraceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStackTraceIsMutable();
          stackTrace_.add(value);
          onChanged();
        } else {
          stackTraceBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public Builder addStackTrace(
          int index, com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto value) {
        if (stackTraceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStackTraceIsMutable();
          stackTrace_.add(index, value);
          onChanged();
        } else {
          stackTraceBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public Builder addStackTrace(
          com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.Builder builderForValue) {
        if (stackTraceBuilder_ == null) {
          ensureStackTraceIsMutable();
          stackTrace_.add(builderForValue.build());
          onChanged();
        } else {
          stackTraceBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public Builder addStackTrace(
          int index, com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.Builder builderForValue) {
        if (stackTraceBuilder_ == null) {
          ensureStackTraceIsMutable();
          stackTrace_.add(index, builderForValue.build());
          onChanged();
        } else {
          stackTraceBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public Builder addAllStackTrace(
          java.lang.Iterable values) {
        if (stackTraceBuilder_ == null) {
          ensureStackTraceIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, stackTrace_);
          onChanged();
        } else {
          stackTraceBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public Builder clearStackTrace() {
        if (stackTraceBuilder_ == null) {
          stackTrace_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          stackTraceBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public Builder removeStackTrace(int index) {
        if (stackTraceBuilder_ == null) {
          ensureStackTraceIsMutable();
          stackTrace_.remove(index);
          onChanged();
        } else {
          stackTraceBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.Builder getStackTraceBuilder(
          int index) {
        return getStackTraceFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProtoOrBuilder getStackTraceOrBuilder(
          int index) {
        if (stackTraceBuilder_ == null) {
          return stackTrace_.get(index);  } else {
          return stackTraceBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public java.util.List 
           getStackTraceOrBuilderList() {
        if (stackTraceBuilder_ != null) {
          return stackTraceBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(stackTrace_);
        }
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.Builder addStackTraceBuilder() {
        return getStackTraceFieldBuilder().addBuilder(
            com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.getDefaultInstance());
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.Builder addStackTraceBuilder(
          int index) {
        return getStackTraceFieldBuilder().addBuilder(
            index, com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.getDefaultInstance());
      }
      /**
       * repeated .com.palantir.paxos.persistence.generated.StackTraceElementProto stack_trace = 3;
       */
      public java.util.List 
           getStackTraceBuilderList() {
        return getStackTraceFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto, com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.Builder, com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProtoOrBuilder> 
          getStackTraceFieldBuilder() {
        if (stackTraceBuilder_ == null) {
          stackTraceBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto, com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.Builder, com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProtoOrBuilder>(
                  stackTrace_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          stackTrace_ = null;
        }
        return stackTraceBuilder_;
      }

      private com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto cause_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto, com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.Builder, com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProtoOrBuilder> causeBuilder_;
      /**
       * optional .com.palantir.paxos.persistence.generated.ExceptionProto cause = 4;
       * @return Whether the cause field is set.
       */
      public boolean hasCause() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.ExceptionProto cause = 4;
       * @return The cause.
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto getCause() {
        if (causeBuilder_ == null) {
          return cause_ == null ? com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.getDefaultInstance() : cause_;
        } else {
          return causeBuilder_.getMessage();
        }
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.ExceptionProto cause = 4;
       */
      public Builder setCause(com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto value) {
        if (causeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          cause_ = value;
        } else {
          causeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.ExceptionProto cause = 4;
       */
      public Builder setCause(
          com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.Builder builderForValue) {
        if (causeBuilder_ == null) {
          cause_ = builderForValue.build();
        } else {
          causeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.ExceptionProto cause = 4;
       */
      public Builder mergeCause(com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto value) {
        if (causeBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            cause_ != null &&
            cause_ != com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.getDefaultInstance()) {
            getCauseBuilder().mergeFrom(value);
          } else {
            cause_ = value;
          }
        } else {
          causeBuilder_.mergeFrom(value);
        }
        if (cause_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.ExceptionProto cause = 4;
       */
      public Builder clearCause() {
        bitField0_ = (bitField0_ & ~0x00000008);
        cause_ = null;
        if (causeBuilder_ != null) {
          causeBuilder_.dispose();
          causeBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.ExceptionProto cause = 4;
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.Builder getCauseBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getCauseFieldBuilder().getBuilder();
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.ExceptionProto cause = 4;
       */
      public com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProtoOrBuilder getCauseOrBuilder() {
        if (causeBuilder_ != null) {
          return causeBuilder_.getMessageOrBuilder();
        } else {
          return cause_ == null ?
              com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.getDefaultInstance() : cause_;
        }
      }
      /**
       * optional .com.palantir.paxos.persistence.generated.ExceptionProto cause = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto, com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.Builder, com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProtoOrBuilder> 
          getCauseFieldBuilder() {
        if (causeBuilder_ == null) {
          causeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto, com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto.Builder, com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProtoOrBuilder>(
                  getCause(),
                  getParentForChildren(),
                  isClean());
          cause_ = null;
        }
        return causeBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:com.palantir.paxos.persistence.generated.ExceptionProto)
    }

    // @@protoc_insertion_point(class_scope:com.palantir.paxos.persistence.generated.ExceptionProto)
    private static final com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto();
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.ExceptionProto getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StackTraceElementProtoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.palantir.paxos.persistence.generated.StackTraceElementProto)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required string declaring_class = 1;
     * @return Whether the declaringClass field is set.
     */
    boolean hasDeclaringClass();
    /**
     * required string declaring_class = 1;
     * @return The declaringClass.
     */
    java.lang.String getDeclaringClass();
    /**
     * required string declaring_class = 1;
     * @return The bytes for declaringClass.
     */
    com.google.protobuf.ByteString
        getDeclaringClassBytes();

    /**
     * required string method_name = 2;
     * @return Whether the methodName field is set.
     */
    boolean hasMethodName();
    /**
     * required string method_name = 2;
     * @return The methodName.
     */
    java.lang.String getMethodName();
    /**
     * required string method_name = 2;
     * @return The bytes for methodName.
     */
    com.google.protobuf.ByteString
        getMethodNameBytes();

    /**
     * optional string file_name = 3;
     * @return Whether the fileName field is set.
     */
    boolean hasFileName();
    /**
     * optional string file_name = 3;
     * @return The fileName.
     */
    java.lang.String getFileName();
    /**
     * optional string file_name = 3;
     * @return The bytes for fileName.
     */
    com.google.protobuf.ByteString
        getFileNameBytes();

    /**
     * optional sint32 line_number = 4;
     * @return Whether the lineNumber field is set.
     */
    boolean hasLineNumber();
    /**
     * optional sint32 line_number = 4;
     * @return The lineNumber.
     */
    int getLineNumber();
  }
  /**
   * Protobuf type {@code com.palantir.paxos.persistence.generated.StackTraceElementProto}
   */
  public static final class StackTraceElementProto extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.palantir.paxos.persistence.generated.StackTraceElementProto)
      StackTraceElementProtoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StackTraceElementProto.newBuilder() to construct.
    private StackTraceElementProto(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private StackTraceElementProto() {
      declaringClass_ = "";
      methodName_ = "";
      fileName_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_StackTraceElementProto_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_StackTraceElementProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.class, com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.Builder.class);
    }

    private int bitField0_;
    public static final int DECLARING_CLASS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object declaringClass_ = "";
    /**
     * required string declaring_class = 1;
     * @return Whether the declaringClass field is set.
     */
    @java.lang.Override
    public boolean hasDeclaringClass() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * required string declaring_class = 1;
     * @return The declaringClass.
     */
    @java.lang.Override
    public java.lang.String getDeclaringClass() {
      java.lang.Object ref = declaringClass_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          declaringClass_ = s;
        }
        return s;
      }
    }
    /**
     * required string declaring_class = 1;
     * @return The bytes for declaringClass.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDeclaringClassBytes() {
      java.lang.Object ref = declaringClass_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        declaringClass_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int METHOD_NAME_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object methodName_ = "";
    /**
     * required string method_name = 2;
     * @return Whether the methodName field is set.
     */
    @java.lang.Override
    public boolean hasMethodName() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * required string method_name = 2;
     * @return The methodName.
     */
    @java.lang.Override
    public java.lang.String getMethodName() {
      java.lang.Object ref = methodName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          methodName_ = s;
        }
        return s;
      }
    }
    /**
     * required string method_name = 2;
     * @return The bytes for methodName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMethodNameBytes() {
      java.lang.Object ref = methodName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        methodName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FILE_NAME_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object fileName_ = "";
    /**
     * optional string file_name = 3;
     * @return Whether the fileName field is set.
     */
    @java.lang.Override
    public boolean hasFileName() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional string file_name = 3;
     * @return The fileName.
     */
    @java.lang.Override
    public java.lang.String getFileName() {
      java.lang.Object ref = fileName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fileName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string file_name = 3;
     * @return The bytes for fileName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFileNameBytes() {
      java.lang.Object ref = fileName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        fileName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LINE_NUMBER_FIELD_NUMBER = 4;
    private int lineNumber_ = 0;
    /**
     * optional sint32 line_number = 4;
     * @return Whether the lineNumber field is set.
     */
    @java.lang.Override
    public boolean hasLineNumber() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * optional sint32 line_number = 4;
     * @return The lineNumber.
     */
    @java.lang.Override
    public int getLineNumber() {
      return lineNumber_;
    }

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

      if (!hasDeclaringClass()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMethodName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, declaringClass_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, methodName_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, fileName_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeSInt32(4, lineNumber_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, declaringClass_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, methodName_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, fileName_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(4, lineNumber_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto)) {
        return super.equals(obj);
      }
      com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto other = (com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto) obj;

      if (hasDeclaringClass() != other.hasDeclaringClass()) return false;
      if (hasDeclaringClass()) {
        if (!getDeclaringClass()
            .equals(other.getDeclaringClass())) return false;
      }
      if (hasMethodName() != other.hasMethodName()) return false;
      if (hasMethodName()) {
        if (!getMethodName()
            .equals(other.getMethodName())) return false;
      }
      if (hasFileName() != other.hasFileName()) return false;
      if (hasFileName()) {
        if (!getFileName()
            .equals(other.getFileName())) return false;
      }
      if (hasLineNumber() != other.hasLineNumber()) return false;
      if (hasLineNumber()) {
        if (getLineNumber()
            != other.getLineNumber()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasDeclaringClass()) {
        hash = (37 * hash) + DECLARING_CLASS_FIELD_NUMBER;
        hash = (53 * hash) + getDeclaringClass().hashCode();
      }
      if (hasMethodName()) {
        hash = (37 * hash) + METHOD_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getMethodName().hashCode();
      }
      if (hasFileName()) {
        hash = (37 * hash) + FILE_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getFileName().hashCode();
      }
      if (hasLineNumber()) {
        hash = (37 * hash) + LINE_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + getLineNumber();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.palantir.paxos.persistence.generated.StackTraceElementProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:com.palantir.paxos.persistence.generated.StackTraceElementProto)
        com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_StackTraceElementProto_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_StackTraceElementProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.class, com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.Builder.class);
      }

      // Construct using com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        declaringClass_ = "";
        methodName_ = "";
        fileName_ = "";
        lineNumber_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.internal_static_com_palantir_paxos_persistence_generated_StackTraceElementProto_descriptor;
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto getDefaultInstanceForType() {
        return com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.getDefaultInstance();
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto build() {
        com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto buildPartial() {
        com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto result = new com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.declaringClass_ = declaringClass_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.methodName_ = methodName_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.fileName_ = fileName_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.lineNumber_ = lineNumber_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ |= to_bitField0_;
      }

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

      public Builder mergeFrom(com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto other) {
        if (other == com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto.getDefaultInstance()) return this;
        if (other.hasDeclaringClass()) {
          declaringClass_ = other.declaringClass_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasMethodName()) {
          methodName_ = other.methodName_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasFileName()) {
          fileName_ = other.fileName_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.hasLineNumber()) {
          setLineNumber(other.getLineNumber());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasDeclaringClass()) {
          return false;
        }
        if (!hasMethodName()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                declaringClass_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                methodName_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                fileName_ = input.readBytes();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                lineNumber_ = input.readSInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object declaringClass_ = "";
      /**
       * required string declaring_class = 1;
       * @return Whether the declaringClass field is set.
       */
      public boolean hasDeclaringClass() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * required string declaring_class = 1;
       * @return The declaringClass.
       */
      public java.lang.String getDeclaringClass() {
        java.lang.Object ref = declaringClass_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            declaringClass_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string declaring_class = 1;
       * @return The bytes for declaringClass.
       */
      public com.google.protobuf.ByteString
          getDeclaringClassBytes() {
        java.lang.Object ref = declaringClass_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          declaringClass_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string declaring_class = 1;
       * @param value The declaringClass to set.
       * @return This builder for chaining.
       */
      public Builder setDeclaringClass(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        declaringClass_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * required string declaring_class = 1;
       * @return This builder for chaining.
       */
      public Builder clearDeclaringClass() {
        declaringClass_ = getDefaultInstance().getDeclaringClass();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * required string declaring_class = 1;
       * @param value The bytes for declaringClass to set.
       * @return This builder for chaining.
       */
      public Builder setDeclaringClassBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        declaringClass_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object methodName_ = "";
      /**
       * required string method_name = 2;
       * @return Whether the methodName field is set.
       */
      public boolean hasMethodName() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * required string method_name = 2;
       * @return The methodName.
       */
      public java.lang.String getMethodName() {
        java.lang.Object ref = methodName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            methodName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string method_name = 2;
       * @return The bytes for methodName.
       */
      public com.google.protobuf.ByteString
          getMethodNameBytes() {
        java.lang.Object ref = methodName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          methodName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string method_name = 2;
       * @param value The methodName to set.
       * @return This builder for chaining.
       */
      public Builder setMethodName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        methodName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * required string method_name = 2;
       * @return This builder for chaining.
       */
      public Builder clearMethodName() {
        methodName_ = getDefaultInstance().getMethodName();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * required string method_name = 2;
       * @param value The bytes for methodName to set.
       * @return This builder for chaining.
       */
      public Builder setMethodNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        methodName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object fileName_ = "";
      /**
       * optional string file_name = 3;
       * @return Whether the fileName field is set.
       */
      public boolean hasFileName() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional string file_name = 3;
       * @return The fileName.
       */
      public java.lang.String getFileName() {
        java.lang.Object ref = fileName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fileName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string file_name = 3;
       * @return The bytes for fileName.
       */
      public com.google.protobuf.ByteString
          getFileNameBytes() {
        java.lang.Object ref = fileName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          fileName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string file_name = 3;
       * @param value The fileName to set.
       * @return This builder for chaining.
       */
      public Builder setFileName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        fileName_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional string file_name = 3;
       * @return This builder for chaining.
       */
      public Builder clearFileName() {
        fileName_ = getDefaultInstance().getFileName();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * optional string file_name = 3;
       * @param value The bytes for fileName to set.
       * @return This builder for chaining.
       */
      public Builder setFileNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        fileName_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private int lineNumber_ ;
      /**
       * optional sint32 line_number = 4;
       * @return Whether the lineNumber field is set.
       */
      @java.lang.Override
      public boolean hasLineNumber() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * optional sint32 line_number = 4;
       * @return The lineNumber.
       */
      @java.lang.Override
      public int getLineNumber() {
        return lineNumber_;
      }
      /**
       * optional sint32 line_number = 4;
       * @param value The lineNumber to set.
       * @return This builder for chaining.
       */
      public Builder setLineNumber(int value) {

        lineNumber_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * optional sint32 line_number = 4;
       * @return This builder for chaining.
       */
      public Builder clearLineNumber() {
        bitField0_ = (bitField0_ & ~0x00000008);
        lineNumber_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:com.palantir.paxos.persistence.generated.StackTraceElementProto)
    }

    // @@protoc_insertion_point(class_scope:com.palantir.paxos.persistence.generated.StackTraceElementProto)
    private static final com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto();
    }

    public static com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public com.palantir.paxos.persistence.generated.PaxosPersistence.StackTraceElementProto getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_palantir_paxos_persistence_generated_PaxosHeader_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_palantir_paxos_persistence_generated_PaxosHeader_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_palantir_paxos_persistence_generated_PaxosValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_palantir_paxos_persistence_generated_PaxosValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_palantir_paxos_persistence_generated_PaxosAcceptorState_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_palantir_paxos_persistence_generated_PaxosAcceptorState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_palantir_paxos_persistence_generated_PaxosProposalId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_palantir_paxos_persistence_generated_PaxosProposalId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_palantir_paxos_persistence_generated_ExceptionProto_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_palantir_paxos_persistence_generated_ExceptionProto_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_palantir_paxos_persistence_generated_StackTraceElementProto_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_palantir_paxos_persistence_generated_StackTraceElementProto_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\026PaxosPersistence.proto\022(com.palantir.p" +
      "axos.persistence.generated\"\037\n\013PaxosHeade" +
      "r\022\020\n\010checksum\030\001 \002(\014\"<\n\nPaxosValue\022\r\n\005byt" +
      "es\030\001 \001(\014\022\013\n\003seq\030\002 \001(\003\022\022\n\nleaderUUID\030\003 \001(" +
      "\t\"\213\002\n\022PaxosAcceptorState\022Q\n\016lastPromised" +
      "Id\030\001 \001(\01329.com.palantir.paxos.persistenc" +
      "e.generated.PaxosProposalId\022Q\n\016lastAccep" +
      "tedId\030\002 \001(\01329.com.palantir.paxos.persist" +
      "ence.generated.PaxosProposalId\022O\n\021lastAc" +
      "ceptedValue\030\003 \001(\01324.com.palantir.paxos.p" +
      "ersistence.generated.PaxosValue\"7\n\017Paxos" +
      "ProposalId\022\016\n\006number\030\001 \002(\003\022\024\n\014proposerUU" +
      "ID\030\002 \001(\t\"\317\001\n\016ExceptionProto\022\014\n\004type\030\001 \002(" +
      "\t\022\017\n\007message\030\002 \001(\t\022U\n\013stack_trace\030\003 \003(\0132" +
      "@.com.palantir.paxos.persistence.generat" +
      "ed.StackTraceElementProto\022G\n\005cause\030\004 \001(\013" +
      "28.com.palantir.paxos.persistence.genera" +
      "ted.ExceptionProto\"n\n\026StackTraceElementP" +
      "roto\022\027\n\017declaring_class\030\001 \002(\t\022\023\n\013method_" +
      "name\030\002 \002(\t\022\021\n\tfile_name\030\003 \001(\t\022\023\n\013line_nu" +
      "mber\030\004 \001(\021"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_com_palantir_paxos_persistence_generated_PaxosHeader_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_com_palantir_paxos_persistence_generated_PaxosHeader_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_palantir_paxos_persistence_generated_PaxosHeader_descriptor,
        new java.lang.String[] { "Checksum", });
    internal_static_com_palantir_paxos_persistence_generated_PaxosValue_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_com_palantir_paxos_persistence_generated_PaxosValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_palantir_paxos_persistence_generated_PaxosValue_descriptor,
        new java.lang.String[] { "Bytes", "Seq", "LeaderUUID", });
    internal_static_com_palantir_paxos_persistence_generated_PaxosAcceptorState_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_com_palantir_paxos_persistence_generated_PaxosAcceptorState_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_palantir_paxos_persistence_generated_PaxosAcceptorState_descriptor,
        new java.lang.String[] { "LastPromisedId", "LastAcceptedId", "LastAcceptedValue", });
    internal_static_com_palantir_paxos_persistence_generated_PaxosProposalId_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_com_palantir_paxos_persistence_generated_PaxosProposalId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_palantir_paxos_persistence_generated_PaxosProposalId_descriptor,
        new java.lang.String[] { "Number", "ProposerUUID", });
    internal_static_com_palantir_paxos_persistence_generated_ExceptionProto_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_com_palantir_paxos_persistence_generated_ExceptionProto_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_palantir_paxos_persistence_generated_ExceptionProto_descriptor,
        new java.lang.String[] { "Type", "Message", "StackTrace", "Cause", });
    internal_static_com_palantir_paxos_persistence_generated_StackTraceElementProto_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_com_palantir_paxos_persistence_generated_StackTraceElementProto_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_palantir_paxos_persistence_generated_StackTraceElementProto_descriptor,
        new java.lang.String[] { "DeclaringClass", "MethodName", "FileName", "LineNumber", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy