/*
 * Copyright (C) 2018 Lightbend Inc. <https://www.lightbend.com>
 */

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

package akka.remote;

public final class ArteryControlFormats {
  private ArteryControlFormats() {}
  public static void registerAllExtensions(
      akka.protobuf.ExtensionRegistry registry) {
  }
  public interface QuarantinedOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .UniqueAddress from = 1;
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    boolean hasFrom();
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddress getFrom();
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getFromOrBuilder();

    // required .UniqueAddress to = 2;
    /**
     * <code>required .UniqueAddress to = 2;</code>
     */
    boolean hasTo();
    /**
     * <code>required .UniqueAddress to = 2;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddress getTo();
    /**
     * <code>required .UniqueAddress to = 2;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getToOrBuilder();
  }
  /**
   * Protobuf type {@code Quarantined}
   */
  public static final class Quarantined extends
      akka.protobuf.GeneratedMessage
      implements QuarantinedOrBuilder {
    // Use Quarantined.newBuilder() to construct.
    private Quarantined(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Quarantined(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Quarantined defaultInstance;
    public static Quarantined getDefaultInstance() {
      return defaultInstance;
    }

    public Quarantined getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Quarantined(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              akka.remote.ArteryControlFormats.UniqueAddress.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = from_.toBuilder();
              }
              from_ = input.readMessage(akka.remote.ArteryControlFormats.UniqueAddress.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(from_);
                from_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              akka.remote.ArteryControlFormats.UniqueAddress.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = to_.toBuilder();
              }
              to_ = input.readMessage(akka.remote.ArteryControlFormats.UniqueAddress.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(to_);
                to_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.ArteryControlFormats.internal_static_Quarantined_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.ArteryControlFormats.internal_static_Quarantined_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.ArteryControlFormats.Quarantined.class, akka.remote.ArteryControlFormats.Quarantined.Builder.class);
    }

    public static akka.protobuf.Parser<Quarantined> PARSER =
        new akka.protobuf.AbstractParser<Quarantined>() {
      public Quarantined parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Quarantined(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<Quarantined> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required .UniqueAddress from = 1;
    public static final int FROM_FIELD_NUMBER = 1;
    private akka.remote.ArteryControlFormats.UniqueAddress from_;
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    public boolean hasFrom() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddress getFrom() {
      return from_;
    }
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getFromOrBuilder() {
      return from_;
    }

    // required .UniqueAddress to = 2;
    public static final int TO_FIELD_NUMBER = 2;
    private akka.remote.ArteryControlFormats.UniqueAddress to_;
    /**
     * <code>required .UniqueAddress to = 2;</code>
     */
    public boolean hasTo() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .UniqueAddress to = 2;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddress getTo() {
      return to_;
    }
    /**
     * <code>required .UniqueAddress to = 2;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getToOrBuilder() {
      return to_;
    }

    private void initFields() {
      from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
      to_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasFrom()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTo()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getFrom().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getTo().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, from_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, to_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, from_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, to_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.ArteryControlFormats.Quarantined parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.Quarantined parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.Quarantined parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.Quarantined parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.Quarantined parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.Quarantined parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.Quarantined parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.ArteryControlFormats.Quarantined parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.Quarantined parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.Quarantined parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.ArteryControlFormats.Quarantined prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Quarantined}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.ArteryControlFormats.QuarantinedOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.ArteryControlFormats.internal_static_Quarantined_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.ArteryControlFormats.internal_static_Quarantined_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.ArteryControlFormats.Quarantined.class, akka.remote.ArteryControlFormats.Quarantined.Builder.class);
      }

      // Construct using akka.remote.ArteryControlFormats.Quarantined.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getFromFieldBuilder();
          getToFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (fromBuilder_ == null) {
          from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
        } else {
          fromBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (toBuilder_ == null) {
          to_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
        } else {
          toBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.ArteryControlFormats.internal_static_Quarantined_descriptor;
      }

      public akka.remote.ArteryControlFormats.Quarantined getDefaultInstanceForType() {
        return akka.remote.ArteryControlFormats.Quarantined.getDefaultInstance();
      }

      public akka.remote.ArteryControlFormats.Quarantined build() {
        akka.remote.ArteryControlFormats.Quarantined result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.ArteryControlFormats.Quarantined buildPartial() {
        akka.remote.ArteryControlFormats.Quarantined result = new akka.remote.ArteryControlFormats.Quarantined(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (fromBuilder_ == null) {
          result.from_ = from_;
        } else {
          result.from_ = fromBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (toBuilder_ == null) {
          result.to_ = to_;
        } else {
          result.to_ = toBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.ArteryControlFormats.Quarantined) {
          return mergeFrom((akka.remote.ArteryControlFormats.Quarantined)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.ArteryControlFormats.Quarantined other) {
        if (other == akka.remote.ArteryControlFormats.Quarantined.getDefaultInstance()) return this;
        if (other.hasFrom()) {
          mergeFrom(other.getFrom());
        }
        if (other.hasTo()) {
          mergeTo(other.getTo());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasFrom()) {
          
          return false;
        }
        if (!hasTo()) {
          
          return false;
        }
        if (!getFrom().isInitialized()) {
          
          return false;
        }
        if (!getTo().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.ArteryControlFormats.Quarantined parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.ArteryControlFormats.Quarantined) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .UniqueAddress from = 1;
      private akka.remote.ArteryControlFormats.UniqueAddress from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> fromBuilder_;
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public boolean hasFrom() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress getFrom() {
        if (fromBuilder_ == null) {
          return from_;
        } else {
          return fromBuilder_.getMessage();
        }
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder setFrom(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (fromBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          from_ = value;
          onChanged();
        } else {
          fromBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder setFrom(
          akka.remote.ArteryControlFormats.UniqueAddress.Builder builderForValue) {
        if (fromBuilder_ == null) {
          from_ = builderForValue.build();
          onChanged();
        } else {
          fromBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder mergeFrom(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (fromBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              from_ != akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance()) {
            from_ =
              akka.remote.ArteryControlFormats.UniqueAddress.newBuilder(from_).mergeFrom(value).buildPartial();
          } else {
            from_ = value;
          }
          onChanged();
        } else {
          fromBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder clearFrom() {
        if (fromBuilder_ == null) {
          from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
          onChanged();
        } else {
          fromBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress.Builder getFromBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getFromFieldBuilder().getBuilder();
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getFromOrBuilder() {
        if (fromBuilder_ != null) {
          return fromBuilder_.getMessageOrBuilder();
        } else {
          return from_;
        }
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> 
          getFromFieldBuilder() {
        if (fromBuilder_ == null) {
          fromBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder>(
                  from_,
                  getParentForChildren(),
                  isClean());
          from_ = null;
        }
        return fromBuilder_;
      }

      // required .UniqueAddress to = 2;
      private akka.remote.ArteryControlFormats.UniqueAddress to_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> toBuilder_;
      /**
       * <code>required .UniqueAddress to = 2;</code>
       */
      public boolean hasTo() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .UniqueAddress to = 2;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress getTo() {
        if (toBuilder_ == null) {
          return to_;
        } else {
          return toBuilder_.getMessage();
        }
      }
      /**
       * <code>required .UniqueAddress to = 2;</code>
       */
      public Builder setTo(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (toBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          to_ = value;
          onChanged();
        } else {
          toBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .UniqueAddress to = 2;</code>
       */
      public Builder setTo(
          akka.remote.ArteryControlFormats.UniqueAddress.Builder builderForValue) {
        if (toBuilder_ == null) {
          to_ = builderForValue.build();
          onChanged();
        } else {
          toBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .UniqueAddress to = 2;</code>
       */
      public Builder mergeTo(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (toBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              to_ != akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance()) {
            to_ =
              akka.remote.ArteryControlFormats.UniqueAddress.newBuilder(to_).mergeFrom(value).buildPartial();
          } else {
            to_ = value;
          }
          onChanged();
        } else {
          toBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .UniqueAddress to = 2;</code>
       */
      public Builder clearTo() {
        if (toBuilder_ == null) {
          to_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
          onChanged();
        } else {
          toBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>required .UniqueAddress to = 2;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress.Builder getToBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getToFieldBuilder().getBuilder();
      }
      /**
       * <code>required .UniqueAddress to = 2;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getToOrBuilder() {
        if (toBuilder_ != null) {
          return toBuilder_.getMessageOrBuilder();
        } else {
          return to_;
        }
      }
      /**
       * <code>required .UniqueAddress to = 2;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> 
          getToFieldBuilder() {
        if (toBuilder_ == null) {
          toBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder>(
                  to_,
                  getParentForChildren(),
                  isClean());
          to_ = null;
        }
        return toBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:Quarantined)
    }

    static {
      defaultInstance = new Quarantined(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Quarantined)
  }

  public interface MessageWithAddressOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .UniqueAddress address = 1;
    /**
     * <code>required .UniqueAddress address = 1;</code>
     */
    boolean hasAddress();
    /**
     * <code>required .UniqueAddress address = 1;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddress getAddress();
    /**
     * <code>required .UniqueAddress address = 1;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getAddressOrBuilder();
  }
  /**
   * Protobuf type {@code MessageWithAddress}
   *
   * <pre>
   * Generic message declaration that is used for all types of message that (currently) have a single
   * address field. A message that needs to changed later can be cloned from this one and then adapted.
   * ActorSystemTerminating
   * ActorSystemTerminating.Ack
   * OutboundHandshake.HandshakeRsp
   * </pre>
   */
  public static final class MessageWithAddress extends
      akka.protobuf.GeneratedMessage
      implements MessageWithAddressOrBuilder {
    // Use MessageWithAddress.newBuilder() to construct.
    private MessageWithAddress(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MessageWithAddress(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final MessageWithAddress defaultInstance;
    public static MessageWithAddress getDefaultInstance() {
      return defaultInstance;
    }

    public MessageWithAddress getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MessageWithAddress(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              akka.remote.ArteryControlFormats.UniqueAddress.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = address_.toBuilder();
              }
              address_ = input.readMessage(akka.remote.ArteryControlFormats.UniqueAddress.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(address_);
                address_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.ArteryControlFormats.internal_static_MessageWithAddress_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.ArteryControlFormats.internal_static_MessageWithAddress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.ArteryControlFormats.MessageWithAddress.class, akka.remote.ArteryControlFormats.MessageWithAddress.Builder.class);
    }

    public static akka.protobuf.Parser<MessageWithAddress> PARSER =
        new akka.protobuf.AbstractParser<MessageWithAddress>() {
      public MessageWithAddress parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new MessageWithAddress(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<MessageWithAddress> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required .UniqueAddress address = 1;
    public static final int ADDRESS_FIELD_NUMBER = 1;
    private akka.remote.ArteryControlFormats.UniqueAddress address_;
    /**
     * <code>required .UniqueAddress address = 1;</code>
     */
    public boolean hasAddress() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .UniqueAddress address = 1;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddress getAddress() {
      return address_;
    }
    /**
     * <code>required .UniqueAddress address = 1;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getAddressOrBuilder() {
      return address_;
    }

    private void initFields() {
      address_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasAddress()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getAddress().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, address_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, address_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.ArteryControlFormats.MessageWithAddress parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.MessageWithAddress parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.MessageWithAddress parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.MessageWithAddress parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.MessageWithAddress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.MessageWithAddress parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.MessageWithAddress parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.ArteryControlFormats.MessageWithAddress parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.MessageWithAddress parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.MessageWithAddress parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.ArteryControlFormats.MessageWithAddress prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code MessageWithAddress}
     *
     * <pre>
     * Generic message declaration that is used for all types of message that (currently) have a single
     * address field. A message that needs to changed later can be cloned from this one and then adapted.
     * ActorSystemTerminating
     * ActorSystemTerminating.Ack
     * OutboundHandshake.HandshakeRsp
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.ArteryControlFormats.MessageWithAddressOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.ArteryControlFormats.internal_static_MessageWithAddress_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.ArteryControlFormats.internal_static_MessageWithAddress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.ArteryControlFormats.MessageWithAddress.class, akka.remote.ArteryControlFormats.MessageWithAddress.Builder.class);
      }

      // Construct using akka.remote.ArteryControlFormats.MessageWithAddress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getAddressFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (addressBuilder_ == null) {
          address_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
        } else {
          addressBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.ArteryControlFormats.internal_static_MessageWithAddress_descriptor;
      }

      public akka.remote.ArteryControlFormats.MessageWithAddress getDefaultInstanceForType() {
        return akka.remote.ArteryControlFormats.MessageWithAddress.getDefaultInstance();
      }

      public akka.remote.ArteryControlFormats.MessageWithAddress build() {
        akka.remote.ArteryControlFormats.MessageWithAddress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.ArteryControlFormats.MessageWithAddress buildPartial() {
        akka.remote.ArteryControlFormats.MessageWithAddress result = new akka.remote.ArteryControlFormats.MessageWithAddress(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (addressBuilder_ == null) {
          result.address_ = address_;
        } else {
          result.address_ = addressBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.ArteryControlFormats.MessageWithAddress) {
          return mergeFrom((akka.remote.ArteryControlFormats.MessageWithAddress)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.ArteryControlFormats.MessageWithAddress other) {
        if (other == akka.remote.ArteryControlFormats.MessageWithAddress.getDefaultInstance()) return this;
        if (other.hasAddress()) {
          mergeAddress(other.getAddress());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasAddress()) {
          
          return false;
        }
        if (!getAddress().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.ArteryControlFormats.MessageWithAddress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.ArteryControlFormats.MessageWithAddress) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .UniqueAddress address = 1;
      private akka.remote.ArteryControlFormats.UniqueAddress address_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> addressBuilder_;
      /**
       * <code>required .UniqueAddress address = 1;</code>
       */
      public boolean hasAddress() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .UniqueAddress address = 1;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress getAddress() {
        if (addressBuilder_ == null) {
          return address_;
        } else {
          return addressBuilder_.getMessage();
        }
      }
      /**
       * <code>required .UniqueAddress address = 1;</code>
       */
      public Builder setAddress(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (addressBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          address_ = value;
          onChanged();
        } else {
          addressBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .UniqueAddress address = 1;</code>
       */
      public Builder setAddress(
          akka.remote.ArteryControlFormats.UniqueAddress.Builder builderForValue) {
        if (addressBuilder_ == null) {
          address_ = builderForValue.build();
          onChanged();
        } else {
          addressBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .UniqueAddress address = 1;</code>
       */
      public Builder mergeAddress(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (addressBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              address_ != akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance()) {
            address_ =
              akka.remote.ArteryControlFormats.UniqueAddress.newBuilder(address_).mergeFrom(value).buildPartial();
          } else {
            address_ = value;
          }
          onChanged();
        } else {
          addressBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .UniqueAddress address = 1;</code>
       */
      public Builder clearAddress() {
        if (addressBuilder_ == null) {
          address_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
          onChanged();
        } else {
          addressBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .UniqueAddress address = 1;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress.Builder getAddressBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getAddressFieldBuilder().getBuilder();
      }
      /**
       * <code>required .UniqueAddress address = 1;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getAddressOrBuilder() {
        if (addressBuilder_ != null) {
          return addressBuilder_.getMessageOrBuilder();
        } else {
          return address_;
        }
      }
      /**
       * <code>required .UniqueAddress address = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> 
          getAddressFieldBuilder() {
        if (addressBuilder_ == null) {
          addressBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder>(
                  address_,
                  getParentForChildren(),
                  isClean());
          address_ = null;
        }
        return addressBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:MessageWithAddress)
    }

    static {
      defaultInstance = new MessageWithAddress(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:MessageWithAddress)
  }

  public interface HandshakeReqOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .UniqueAddress from = 1;
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    boolean hasFrom();
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddress getFrom();
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getFromOrBuilder();

    // required .Address to = 2;
    /**
     * <code>required .Address to = 2;</code>
     */
    boolean hasTo();
    /**
     * <code>required .Address to = 2;</code>
     */
    akka.remote.ArteryControlFormats.Address getTo();
    /**
     * <code>required .Address to = 2;</code>
     */
    akka.remote.ArteryControlFormats.AddressOrBuilder getToOrBuilder();
  }
  /**
   * Protobuf type {@code HandshakeReq}
   */
  public static final class HandshakeReq extends
      akka.protobuf.GeneratedMessage
      implements HandshakeReqOrBuilder {
    // Use HandshakeReq.newBuilder() to construct.
    private HandshakeReq(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private HandshakeReq(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final HandshakeReq defaultInstance;
    public static HandshakeReq getDefaultInstance() {
      return defaultInstance;
    }

    public HandshakeReq getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private HandshakeReq(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              akka.remote.ArteryControlFormats.UniqueAddress.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = from_.toBuilder();
              }
              from_ = input.readMessage(akka.remote.ArteryControlFormats.UniqueAddress.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(from_);
                from_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              akka.remote.ArteryControlFormats.Address.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = to_.toBuilder();
              }
              to_ = input.readMessage(akka.remote.ArteryControlFormats.Address.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(to_);
                to_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.ArteryControlFormats.internal_static_HandshakeReq_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.ArteryControlFormats.internal_static_HandshakeReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.ArteryControlFormats.HandshakeReq.class, akka.remote.ArteryControlFormats.HandshakeReq.Builder.class);
    }

    public static akka.protobuf.Parser<HandshakeReq> PARSER =
        new akka.protobuf.AbstractParser<HandshakeReq>() {
      public HandshakeReq parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new HandshakeReq(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<HandshakeReq> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required .UniqueAddress from = 1;
    public static final int FROM_FIELD_NUMBER = 1;
    private akka.remote.ArteryControlFormats.UniqueAddress from_;
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    public boolean hasFrom() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddress getFrom() {
      return from_;
    }
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getFromOrBuilder() {
      return from_;
    }

    // required .Address to = 2;
    public static final int TO_FIELD_NUMBER = 2;
    private akka.remote.ArteryControlFormats.Address to_;
    /**
     * <code>required .Address to = 2;</code>
     */
    public boolean hasTo() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .Address to = 2;</code>
     */
    public akka.remote.ArteryControlFormats.Address getTo() {
      return to_;
    }
    /**
     * <code>required .Address to = 2;</code>
     */
    public akka.remote.ArteryControlFormats.AddressOrBuilder getToOrBuilder() {
      return to_;
    }

    private void initFields() {
      from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
      to_ = akka.remote.ArteryControlFormats.Address.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasFrom()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTo()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getFrom().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getTo().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, from_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, to_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, from_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, to_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.ArteryControlFormats.HandshakeReq parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.HandshakeReq parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.HandshakeReq parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.HandshakeReq parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.HandshakeReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.HandshakeReq parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.HandshakeReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.ArteryControlFormats.HandshakeReq parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.HandshakeReq parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.HandshakeReq parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.ArteryControlFormats.HandshakeReq prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HandshakeReq}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.ArteryControlFormats.HandshakeReqOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.ArteryControlFormats.internal_static_HandshakeReq_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.ArteryControlFormats.internal_static_HandshakeReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.ArteryControlFormats.HandshakeReq.class, akka.remote.ArteryControlFormats.HandshakeReq.Builder.class);
      }

      // Construct using akka.remote.ArteryControlFormats.HandshakeReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getFromFieldBuilder();
          getToFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (fromBuilder_ == null) {
          from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
        } else {
          fromBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (toBuilder_ == null) {
          to_ = akka.remote.ArteryControlFormats.Address.getDefaultInstance();
        } else {
          toBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.ArteryControlFormats.internal_static_HandshakeReq_descriptor;
      }

      public akka.remote.ArteryControlFormats.HandshakeReq getDefaultInstanceForType() {
        return akka.remote.ArteryControlFormats.HandshakeReq.getDefaultInstance();
      }

      public akka.remote.ArteryControlFormats.HandshakeReq build() {
        akka.remote.ArteryControlFormats.HandshakeReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.ArteryControlFormats.HandshakeReq buildPartial() {
        akka.remote.ArteryControlFormats.HandshakeReq result = new akka.remote.ArteryControlFormats.HandshakeReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (fromBuilder_ == null) {
          result.from_ = from_;
        } else {
          result.from_ = fromBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (toBuilder_ == null) {
          result.to_ = to_;
        } else {
          result.to_ = toBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.ArteryControlFormats.HandshakeReq) {
          return mergeFrom((akka.remote.ArteryControlFormats.HandshakeReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.ArteryControlFormats.HandshakeReq other) {
        if (other == akka.remote.ArteryControlFormats.HandshakeReq.getDefaultInstance()) return this;
        if (other.hasFrom()) {
          mergeFrom(other.getFrom());
        }
        if (other.hasTo()) {
          mergeTo(other.getTo());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasFrom()) {
          
          return false;
        }
        if (!hasTo()) {
          
          return false;
        }
        if (!getFrom().isInitialized()) {
          
          return false;
        }
        if (!getTo().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.ArteryControlFormats.HandshakeReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.ArteryControlFormats.HandshakeReq) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .UniqueAddress from = 1;
      private akka.remote.ArteryControlFormats.UniqueAddress from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> fromBuilder_;
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public boolean hasFrom() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress getFrom() {
        if (fromBuilder_ == null) {
          return from_;
        } else {
          return fromBuilder_.getMessage();
        }
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder setFrom(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (fromBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          from_ = value;
          onChanged();
        } else {
          fromBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder setFrom(
          akka.remote.ArteryControlFormats.UniqueAddress.Builder builderForValue) {
        if (fromBuilder_ == null) {
          from_ = builderForValue.build();
          onChanged();
        } else {
          fromBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder mergeFrom(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (fromBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              from_ != akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance()) {
            from_ =
              akka.remote.ArteryControlFormats.UniqueAddress.newBuilder(from_).mergeFrom(value).buildPartial();
          } else {
            from_ = value;
          }
          onChanged();
        } else {
          fromBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder clearFrom() {
        if (fromBuilder_ == null) {
          from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
          onChanged();
        } else {
          fromBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress.Builder getFromBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getFromFieldBuilder().getBuilder();
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getFromOrBuilder() {
        if (fromBuilder_ != null) {
          return fromBuilder_.getMessageOrBuilder();
        } else {
          return from_;
        }
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> 
          getFromFieldBuilder() {
        if (fromBuilder_ == null) {
          fromBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder>(
                  from_,
                  getParentForChildren(),
                  isClean());
          from_ = null;
        }
        return fromBuilder_;
      }

      // required .Address to = 2;
      private akka.remote.ArteryControlFormats.Address to_ = akka.remote.ArteryControlFormats.Address.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.Address, akka.remote.ArteryControlFormats.Address.Builder, akka.remote.ArteryControlFormats.AddressOrBuilder> toBuilder_;
      /**
       * <code>required .Address to = 2;</code>
       */
      public boolean hasTo() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .Address to = 2;</code>
       */
      public akka.remote.ArteryControlFormats.Address getTo() {
        if (toBuilder_ == null) {
          return to_;
        } else {
          return toBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Address to = 2;</code>
       */
      public Builder setTo(akka.remote.ArteryControlFormats.Address value) {
        if (toBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          to_ = value;
          onChanged();
        } else {
          toBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .Address to = 2;</code>
       */
      public Builder setTo(
          akka.remote.ArteryControlFormats.Address.Builder builderForValue) {
        if (toBuilder_ == null) {
          to_ = builderForValue.build();
          onChanged();
        } else {
          toBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .Address to = 2;</code>
       */
      public Builder mergeTo(akka.remote.ArteryControlFormats.Address value) {
        if (toBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              to_ != akka.remote.ArteryControlFormats.Address.getDefaultInstance()) {
            to_ =
              akka.remote.ArteryControlFormats.Address.newBuilder(to_).mergeFrom(value).buildPartial();
          } else {
            to_ = value;
          }
          onChanged();
        } else {
          toBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .Address to = 2;</code>
       */
      public Builder clearTo() {
        if (toBuilder_ == null) {
          to_ = akka.remote.ArteryControlFormats.Address.getDefaultInstance();
          onChanged();
        } else {
          toBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>required .Address to = 2;</code>
       */
      public akka.remote.ArteryControlFormats.Address.Builder getToBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getToFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Address to = 2;</code>
       */
      public akka.remote.ArteryControlFormats.AddressOrBuilder getToOrBuilder() {
        if (toBuilder_ != null) {
          return toBuilder_.getMessageOrBuilder();
        } else {
          return to_;
        }
      }
      /**
       * <code>required .Address to = 2;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.Address, akka.remote.ArteryControlFormats.Address.Builder, akka.remote.ArteryControlFormats.AddressOrBuilder> 
          getToFieldBuilder() {
        if (toBuilder_ == null) {
          toBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.ArteryControlFormats.Address, akka.remote.ArteryControlFormats.Address.Builder, akka.remote.ArteryControlFormats.AddressOrBuilder>(
                  to_,
                  getParentForChildren(),
                  isClean());
          to_ = null;
        }
        return toBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:HandshakeReq)
    }

    static {
      defaultInstance = new HandshakeReq(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:HandshakeReq)
  }

  public interface CompressionTableAdvertisementOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .UniqueAddress from = 1;
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    boolean hasFrom();
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddress getFrom();
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getFromOrBuilder();

    // required uint64 originUid = 2;
    /**
     * <code>required uint64 originUid = 2;</code>
     */
    boolean hasOriginUid();
    /**
     * <code>required uint64 originUid = 2;</code>
     */
    long getOriginUid();

    // required uint32 tableVersion = 3;
    /**
     * <code>required uint32 tableVersion = 3;</code>
     */
    boolean hasTableVersion();
    /**
     * <code>required uint32 tableVersion = 3;</code>
     */
    int getTableVersion();

    // repeated string keys = 4;
    /**
     * <code>repeated string keys = 4;</code>
     *
     * <pre>
     * actual Map is represented by separate sequences of keys and values,
     * relies on both sequences using the same order so that corresponding entries can be
     * associated again when deserializing
     * </pre>
     */
    java.util.List<java.lang.String>
    getKeysList();
    /**
     * <code>repeated string keys = 4;</code>
     *
     * <pre>
     * actual Map is represented by separate sequences of keys and values,
     * relies on both sequences using the same order so that corresponding entries can be
     * associated again when deserializing
     * </pre>
     */
    int getKeysCount();
    /**
     * <code>repeated string keys = 4;</code>
     *
     * <pre>
     * actual Map is represented by separate sequences of keys and values,
     * relies on both sequences using the same order so that corresponding entries can be
     * associated again when deserializing
     * </pre>
     */
    java.lang.String getKeys(int index);
    /**
     * <code>repeated string keys = 4;</code>
     *
     * <pre>
     * actual Map is represented by separate sequences of keys and values,
     * relies on both sequences using the same order so that corresponding entries can be
     * associated again when deserializing
     * </pre>
     */
    akka.protobuf.ByteString
        getKeysBytes(int index);

    // repeated uint32 values = 5;
    /**
     * <code>repeated uint32 values = 5;</code>
     */
    java.util.List<java.lang.Integer> getValuesList();
    /**
     * <code>repeated uint32 values = 5;</code>
     */
    int getValuesCount();
    /**
     * <code>repeated uint32 values = 5;</code>
     */
    int getValues(int index);
  }
  /**
   * Protobuf type {@code CompressionTableAdvertisement}
   *
   * <pre>
   * CompressionProtocol.ActorRefCompressionAdvertisement
   * CompressionProtocol.ClassManifestCompressionAdvertisement
   * </pre>
   */
  public static final class CompressionTableAdvertisement extends
      akka.protobuf.GeneratedMessage
      implements CompressionTableAdvertisementOrBuilder {
    // Use CompressionTableAdvertisement.newBuilder() to construct.
    private CompressionTableAdvertisement(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CompressionTableAdvertisement(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CompressionTableAdvertisement defaultInstance;
    public static CompressionTableAdvertisement getDefaultInstance() {
      return defaultInstance;
    }

    public CompressionTableAdvertisement getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CompressionTableAdvertisement(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              akka.remote.ArteryControlFormats.UniqueAddress.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = from_.toBuilder();
              }
              from_ = input.readMessage(akka.remote.ArteryControlFormats.UniqueAddress.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(from_);
                from_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              originUid_ = input.readUInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              tableVersion_ = input.readUInt32();
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                keys_ = new akka.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              keys_.add(input.readBytes());
              break;
            }
            case 40: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                values_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000010;
              }
              values_.add(input.readUInt32());
              break;
            }
            case 42: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010) && input.getBytesUntilLimit() > 0) {
                values_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000010;
              }
              while (input.getBytesUntilLimit() > 0) {
                values_.add(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          keys_ = new akka.protobuf.UnmodifiableLazyStringList(keys_);
        }
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          values_ = java.util.Collections.unmodifiableList(values_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.ArteryControlFormats.internal_static_CompressionTableAdvertisement_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.ArteryControlFormats.internal_static_CompressionTableAdvertisement_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.ArteryControlFormats.CompressionTableAdvertisement.class, akka.remote.ArteryControlFormats.CompressionTableAdvertisement.Builder.class);
    }

    public static akka.protobuf.Parser<CompressionTableAdvertisement> PARSER =
        new akka.protobuf.AbstractParser<CompressionTableAdvertisement>() {
      public CompressionTableAdvertisement parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new CompressionTableAdvertisement(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<CompressionTableAdvertisement> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required .UniqueAddress from = 1;
    public static final int FROM_FIELD_NUMBER = 1;
    private akka.remote.ArteryControlFormats.UniqueAddress from_;
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    public boolean hasFrom() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddress getFrom() {
      return from_;
    }
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getFromOrBuilder() {
      return from_;
    }

    // required uint64 originUid = 2;
    public static final int ORIGINUID_FIELD_NUMBER = 2;
    private long originUid_;
    /**
     * <code>required uint64 originUid = 2;</code>
     */
    public boolean hasOriginUid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint64 originUid = 2;</code>
     */
    public long getOriginUid() {
      return originUid_;
    }

    // required uint32 tableVersion = 3;
    public static final int TABLEVERSION_FIELD_NUMBER = 3;
    private int tableVersion_;
    /**
     * <code>required uint32 tableVersion = 3;</code>
     */
    public boolean hasTableVersion() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 tableVersion = 3;</code>
     */
    public int getTableVersion() {
      return tableVersion_;
    }

    // repeated string keys = 4;
    public static final int KEYS_FIELD_NUMBER = 4;
    private akka.protobuf.LazyStringList keys_;
    /**
     * <code>repeated string keys = 4;</code>
     *
     * <pre>
     * actual Map is represented by separate sequences of keys and values,
     * relies on both sequences using the same order so that corresponding entries can be
     * associated again when deserializing
     * </pre>
     */
    public java.util.List<java.lang.String>
        getKeysList() {
      return keys_;
    }
    /**
     * <code>repeated string keys = 4;</code>
     *
     * <pre>
     * actual Map is represented by separate sequences of keys and values,
     * relies on both sequences using the same order so that corresponding entries can be
     * associated again when deserializing
     * </pre>
     */
    public int getKeysCount() {
      return keys_.size();
    }
    /**
     * <code>repeated string keys = 4;</code>
     *
     * <pre>
     * actual Map is represented by separate sequences of keys and values,
     * relies on both sequences using the same order so that corresponding entries can be
     * associated again when deserializing
     * </pre>
     */
    public java.lang.String getKeys(int index) {
      return keys_.get(index);
    }
    /**
     * <code>repeated string keys = 4;</code>
     *
     * <pre>
     * actual Map is represented by separate sequences of keys and values,
     * relies on both sequences using the same order so that corresponding entries can be
     * associated again when deserializing
     * </pre>
     */
    public akka.protobuf.ByteString
        getKeysBytes(int index) {
      return keys_.getByteString(index);
    }

    // repeated uint32 values = 5;
    public static final int VALUES_FIELD_NUMBER = 5;
    private java.util.List<java.lang.Integer> values_;
    /**
     * <code>repeated uint32 values = 5;</code>
     */
    public java.util.List<java.lang.Integer>
        getValuesList() {
      return values_;
    }
    /**
     * <code>repeated uint32 values = 5;</code>
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * <code>repeated uint32 values = 5;</code>
     */
    public int getValues(int index) {
      return values_.get(index);
    }

    private void initFields() {
      from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
      originUid_ = 0L;
      tableVersion_ = 0;
      keys_ = akka.protobuf.LazyStringArrayList.EMPTY;
      values_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasFrom()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasOriginUid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTableVersion()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getFrom().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, from_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt64(2, originUid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, tableVersion_);
      }
      for (int i = 0; i < keys_.size(); i++) {
        output.writeBytes(4, keys_.getByteString(i));
      }
      for (int i = 0; i < values_.size(); i++) {
        output.writeUInt32(5, values_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, from_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeUInt64Size(2, originUid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeUInt32Size(3, tableVersion_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < keys_.size(); i++) {
          dataSize += akka.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(keys_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getKeysList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < values_.size(); i++) {
          dataSize += akka.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(values_.get(i));
        }
        size += dataSize;
        size += 1 * getValuesList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisement parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisement parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisement parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisement parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisement parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisement parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisement parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisement parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisement parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisement parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.ArteryControlFormats.CompressionTableAdvertisement prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CompressionTableAdvertisement}
     *
     * <pre>
     * CompressionProtocol.ActorRefCompressionAdvertisement
     * CompressionProtocol.ClassManifestCompressionAdvertisement
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.ArteryControlFormats.CompressionTableAdvertisementOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.ArteryControlFormats.internal_static_CompressionTableAdvertisement_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.ArteryControlFormats.internal_static_CompressionTableAdvertisement_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.ArteryControlFormats.CompressionTableAdvertisement.class, akka.remote.ArteryControlFormats.CompressionTableAdvertisement.Builder.class);
      }

      // Construct using akka.remote.ArteryControlFormats.CompressionTableAdvertisement.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getFromFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (fromBuilder_ == null) {
          from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
        } else {
          fromBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        originUid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        tableVersion_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        keys_ = akka.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        values_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.ArteryControlFormats.internal_static_CompressionTableAdvertisement_descriptor;
      }

      public akka.remote.ArteryControlFormats.CompressionTableAdvertisement getDefaultInstanceForType() {
        return akka.remote.ArteryControlFormats.CompressionTableAdvertisement.getDefaultInstance();
      }

      public akka.remote.ArteryControlFormats.CompressionTableAdvertisement build() {
        akka.remote.ArteryControlFormats.CompressionTableAdvertisement result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.ArteryControlFormats.CompressionTableAdvertisement buildPartial() {
        akka.remote.ArteryControlFormats.CompressionTableAdvertisement result = new akka.remote.ArteryControlFormats.CompressionTableAdvertisement(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (fromBuilder_ == null) {
          result.from_ = from_;
        } else {
          result.from_ = fromBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.originUid_ = originUid_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.tableVersion_ = tableVersion_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          keys_ = new akka.protobuf.UnmodifiableLazyStringList(
              keys_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.keys_ = keys_;
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          values_ = java.util.Collections.unmodifiableList(values_);
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.values_ = values_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.ArteryControlFormats.CompressionTableAdvertisement) {
          return mergeFrom((akka.remote.ArteryControlFormats.CompressionTableAdvertisement)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.ArteryControlFormats.CompressionTableAdvertisement other) {
        if (other == akka.remote.ArteryControlFormats.CompressionTableAdvertisement.getDefaultInstance()) return this;
        if (other.hasFrom()) {
          mergeFrom(other.getFrom());
        }
        if (other.hasOriginUid()) {
          setOriginUid(other.getOriginUid());
        }
        if (other.hasTableVersion()) {
          setTableVersion(other.getTableVersion());
        }
        if (!other.keys_.isEmpty()) {
          if (keys_.isEmpty()) {
            keys_ = other.keys_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureKeysIsMutable();
            keys_.addAll(other.keys_);
          }
          onChanged();
        }
        if (!other.values_.isEmpty()) {
          if (values_.isEmpty()) {
            values_ = other.values_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensureValuesIsMutable();
            values_.addAll(other.values_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasFrom()) {
          
          return false;
        }
        if (!hasOriginUid()) {
          
          return false;
        }
        if (!hasTableVersion()) {
          
          return false;
        }
        if (!getFrom().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.ArteryControlFormats.CompressionTableAdvertisement parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.ArteryControlFormats.CompressionTableAdvertisement) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .UniqueAddress from = 1;
      private akka.remote.ArteryControlFormats.UniqueAddress from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> fromBuilder_;
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public boolean hasFrom() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress getFrom() {
        if (fromBuilder_ == null) {
          return from_;
        } else {
          return fromBuilder_.getMessage();
        }
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder setFrom(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (fromBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          from_ = value;
          onChanged();
        } else {
          fromBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder setFrom(
          akka.remote.ArteryControlFormats.UniqueAddress.Builder builderForValue) {
        if (fromBuilder_ == null) {
          from_ = builderForValue.build();
          onChanged();
        } else {
          fromBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder mergeFrom(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (fromBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              from_ != akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance()) {
            from_ =
              akka.remote.ArteryControlFormats.UniqueAddress.newBuilder(from_).mergeFrom(value).buildPartial();
          } else {
            from_ = value;
          }
          onChanged();
        } else {
          fromBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder clearFrom() {
        if (fromBuilder_ == null) {
          from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
          onChanged();
        } else {
          fromBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress.Builder getFromBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getFromFieldBuilder().getBuilder();
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getFromOrBuilder() {
        if (fromBuilder_ != null) {
          return fromBuilder_.getMessageOrBuilder();
        } else {
          return from_;
        }
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> 
          getFromFieldBuilder() {
        if (fromBuilder_ == null) {
          fromBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder>(
                  from_,
                  getParentForChildren(),
                  isClean());
          from_ = null;
        }
        return fromBuilder_;
      }

      // required uint64 originUid = 2;
      private long originUid_ ;
      /**
       * <code>required uint64 originUid = 2;</code>
       */
      public boolean hasOriginUid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint64 originUid = 2;</code>
       */
      public long getOriginUid() {
        return originUid_;
      }
      /**
       * <code>required uint64 originUid = 2;</code>
       */
      public Builder setOriginUid(long value) {
        bitField0_ |= 0x00000002;
        originUid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint64 originUid = 2;</code>
       */
      public Builder clearOriginUid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        originUid_ = 0L;
        onChanged();
        return this;
      }

      // required uint32 tableVersion = 3;
      private int tableVersion_ ;
      /**
       * <code>required uint32 tableVersion = 3;</code>
       */
      public boolean hasTableVersion() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 tableVersion = 3;</code>
       */
      public int getTableVersion() {
        return tableVersion_;
      }
      /**
       * <code>required uint32 tableVersion = 3;</code>
       */
      public Builder setTableVersion(int value) {
        bitField0_ |= 0x00000004;
        tableVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 tableVersion = 3;</code>
       */
      public Builder clearTableVersion() {
        bitField0_ = (bitField0_ & ~0x00000004);
        tableVersion_ = 0;
        onChanged();
        return this;
      }

      // repeated string keys = 4;
      private akka.protobuf.LazyStringList keys_ = akka.protobuf.LazyStringArrayList.EMPTY;
      private void ensureKeysIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          keys_ = new akka.protobuf.LazyStringArrayList(keys_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * <code>repeated string keys = 4;</code>
       *
       * <pre>
       * actual Map is represented by separate sequences of keys and values,
       * relies on both sequences using the same order so that corresponding entries can be
       * associated again when deserializing
       * </pre>
       */
      public java.util.List<java.lang.String>
          getKeysList() {
        return java.util.Collections.unmodifiableList(keys_);
      }
      /**
       * <code>repeated string keys = 4;</code>
       *
       * <pre>
       * actual Map is represented by separate sequences of keys and values,
       * relies on both sequences using the same order so that corresponding entries can be
       * associated again when deserializing
       * </pre>
       */
      public int getKeysCount() {
        return keys_.size();
      }
      /**
       * <code>repeated string keys = 4;</code>
       *
       * <pre>
       * actual Map is represented by separate sequences of keys and values,
       * relies on both sequences using the same order so that corresponding entries can be
       * associated again when deserializing
       * </pre>
       */
      public java.lang.String getKeys(int index) {
        return keys_.get(index);
      }
      /**
       * <code>repeated string keys = 4;</code>
       *
       * <pre>
       * actual Map is represented by separate sequences of keys and values,
       * relies on both sequences using the same order so that corresponding entries can be
       * associated again when deserializing
       * </pre>
       */
      public akka.protobuf.ByteString
          getKeysBytes(int index) {
        return keys_.getByteString(index);
      }
      /**
       * <code>repeated string keys = 4;</code>
       *
       * <pre>
       * actual Map is represented by separate sequences of keys and values,
       * relies on both sequences using the same order so that corresponding entries can be
       * associated again when deserializing
       * </pre>
       */
      public Builder setKeys(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureKeysIsMutable();
        keys_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string keys = 4;</code>
       *
       * <pre>
       * actual Map is represented by separate sequences of keys and values,
       * relies on both sequences using the same order so that corresponding entries can be
       * associated again when deserializing
       * </pre>
       */
      public Builder addKeys(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureKeysIsMutable();
        keys_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string keys = 4;</code>
       *
       * <pre>
       * actual Map is represented by separate sequences of keys and values,
       * relies on both sequences using the same order so that corresponding entries can be
       * associated again when deserializing
       * </pre>
       */
      public Builder addAllKeys(
          java.lang.Iterable<java.lang.String> values) {
        ensureKeysIsMutable();
        super.addAll(values, keys_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string keys = 4;</code>
       *
       * <pre>
       * actual Map is represented by separate sequences of keys and values,
       * relies on both sequences using the same order so that corresponding entries can be
       * associated again when deserializing
       * </pre>
       */
      public Builder clearKeys() {
        keys_ = akka.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string keys = 4;</code>
       *
       * <pre>
       * actual Map is represented by separate sequences of keys and values,
       * relies on both sequences using the same order so that corresponding entries can be
       * associated again when deserializing
       * </pre>
       */
      public Builder addKeysBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureKeysIsMutable();
        keys_.add(value);
        onChanged();
        return this;
      }

      // repeated uint32 values = 5;
      private java.util.List<java.lang.Integer> values_ = java.util.Collections.emptyList();
      private void ensureValuesIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          values_ = new java.util.ArrayList<java.lang.Integer>(values_);
          bitField0_ |= 0x00000010;
         }
      }
      /**
       * <code>repeated uint32 values = 5;</code>
       */
      public java.util.List<java.lang.Integer>
          getValuesList() {
        return java.util.Collections.unmodifiableList(values_);
      }
      /**
       * <code>repeated uint32 values = 5;</code>
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <code>repeated uint32 values = 5;</code>
       */
      public int getValues(int index) {
        return values_.get(index);
      }
      /**
       * <code>repeated uint32 values = 5;</code>
       */
      public Builder setValues(
          int index, int value) {
        ensureValuesIsMutable();
        values_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 values = 5;</code>
       */
      public Builder addValues(int value) {
        ensureValuesIsMutable();
        values_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 values = 5;</code>
       */
      public Builder addAllValues(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureValuesIsMutable();
        super.addAll(values, values_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 values = 5;</code>
       */
      public Builder clearValues() {
        values_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CompressionTableAdvertisement)
    }

    static {
      defaultInstance = new CompressionTableAdvertisement(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CompressionTableAdvertisement)
  }

  public interface CompressionTableAdvertisementAckOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .UniqueAddress from = 1;
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    boolean hasFrom();
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddress getFrom();
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getFromOrBuilder();

    // required uint32 version = 2;
    /**
     * <code>required uint32 version = 2;</code>
     */
    boolean hasVersion();
    /**
     * <code>required uint32 version = 2;</code>
     */
    int getVersion();
  }
  /**
   * Protobuf type {@code CompressionTableAdvertisementAck}
   *
   * <pre>
   * CompressionProtocol.ActorRefCompressionAdvertisementAck
   * CompressionProtocol.ClassManifestCompressionAdvertisementAck
   * </pre>
   */
  public static final class CompressionTableAdvertisementAck extends
      akka.protobuf.GeneratedMessage
      implements CompressionTableAdvertisementAckOrBuilder {
    // Use CompressionTableAdvertisementAck.newBuilder() to construct.
    private CompressionTableAdvertisementAck(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CompressionTableAdvertisementAck(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CompressionTableAdvertisementAck defaultInstance;
    public static CompressionTableAdvertisementAck getDefaultInstance() {
      return defaultInstance;
    }

    public CompressionTableAdvertisementAck getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CompressionTableAdvertisementAck(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              akka.remote.ArteryControlFormats.UniqueAddress.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = from_.toBuilder();
              }
              from_ = input.readMessage(akka.remote.ArteryControlFormats.UniqueAddress.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(from_);
                from_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              version_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.ArteryControlFormats.internal_static_CompressionTableAdvertisementAck_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.ArteryControlFormats.internal_static_CompressionTableAdvertisementAck_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck.class, akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck.Builder.class);
    }

    public static akka.protobuf.Parser<CompressionTableAdvertisementAck> PARSER =
        new akka.protobuf.AbstractParser<CompressionTableAdvertisementAck>() {
      public CompressionTableAdvertisementAck parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new CompressionTableAdvertisementAck(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<CompressionTableAdvertisementAck> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required .UniqueAddress from = 1;
    public static final int FROM_FIELD_NUMBER = 1;
    private akka.remote.ArteryControlFormats.UniqueAddress from_;
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    public boolean hasFrom() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddress getFrom() {
      return from_;
    }
    /**
     * <code>required .UniqueAddress from = 1;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getFromOrBuilder() {
      return from_;
    }

    // required uint32 version = 2;
    public static final int VERSION_FIELD_NUMBER = 2;
    private int version_;
    /**
     * <code>required uint32 version = 2;</code>
     */
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 version = 2;</code>
     */
    public int getVersion() {
      return version_;
    }

    private void initFields() {
      from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
      version_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasFrom()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVersion()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getFrom().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, from_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, version_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, from_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeUInt32Size(2, version_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CompressionTableAdvertisementAck}
     *
     * <pre>
     * CompressionProtocol.ActorRefCompressionAdvertisementAck
     * CompressionProtocol.ClassManifestCompressionAdvertisementAck
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.ArteryControlFormats.CompressionTableAdvertisementAckOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.ArteryControlFormats.internal_static_CompressionTableAdvertisementAck_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.ArteryControlFormats.internal_static_CompressionTableAdvertisementAck_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck.class, akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck.Builder.class);
      }

      // Construct using akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getFromFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (fromBuilder_ == null) {
          from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
        } else {
          fromBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        version_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.ArteryControlFormats.internal_static_CompressionTableAdvertisementAck_descriptor;
      }

      public akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck getDefaultInstanceForType() {
        return akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck.getDefaultInstance();
      }

      public akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck build() {
        akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck buildPartial() {
        akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck result = new akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (fromBuilder_ == null) {
          result.from_ = from_;
        } else {
          result.from_ = fromBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.version_ = version_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck) {
          return mergeFrom((akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck other) {
        if (other == akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck.getDefaultInstance()) return this;
        if (other.hasFrom()) {
          mergeFrom(other.getFrom());
        }
        if (other.hasVersion()) {
          setVersion(other.getVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasFrom()) {
          
          return false;
        }
        if (!hasVersion()) {
          
          return false;
        }
        if (!getFrom().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.ArteryControlFormats.CompressionTableAdvertisementAck) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .UniqueAddress from = 1;
      private akka.remote.ArteryControlFormats.UniqueAddress from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> fromBuilder_;
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public boolean hasFrom() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress getFrom() {
        if (fromBuilder_ == null) {
          return from_;
        } else {
          return fromBuilder_.getMessage();
        }
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder setFrom(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (fromBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          from_ = value;
          onChanged();
        } else {
          fromBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder setFrom(
          akka.remote.ArteryControlFormats.UniqueAddress.Builder builderForValue) {
        if (fromBuilder_ == null) {
          from_ = builderForValue.build();
          onChanged();
        } else {
          fromBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder mergeFrom(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (fromBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              from_ != akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance()) {
            from_ =
              akka.remote.ArteryControlFormats.UniqueAddress.newBuilder(from_).mergeFrom(value).buildPartial();
          } else {
            from_ = value;
          }
          onChanged();
        } else {
          fromBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public Builder clearFrom() {
        if (fromBuilder_ == null) {
          from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
          onChanged();
        } else {
          fromBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress.Builder getFromBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getFromFieldBuilder().getBuilder();
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getFromOrBuilder() {
        if (fromBuilder_ != null) {
          return fromBuilder_.getMessageOrBuilder();
        } else {
          return from_;
        }
      }
      /**
       * <code>required .UniqueAddress from = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> 
          getFromFieldBuilder() {
        if (fromBuilder_ == null) {
          fromBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder>(
                  from_,
                  getParentForChildren(),
                  isClean());
          from_ = null;
        }
        return fromBuilder_;
      }

      // required uint32 version = 2;
      private int version_ ;
      /**
       * <code>required uint32 version = 2;</code>
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 version = 2;</code>
       */
      public int getVersion() {
        return version_;
      }
      /**
       * <code>required uint32 version = 2;</code>
       */
      public Builder setVersion(int value) {
        bitField0_ |= 0x00000002;
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 version = 2;</code>
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        version_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CompressionTableAdvertisementAck)
    }

    static {
      defaultInstance = new CompressionTableAdvertisementAck(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CompressionTableAdvertisementAck)
  }

  public interface SystemMessageEnvelopeOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required bytes message = 1;
    /**
     * <code>required bytes message = 1;</code>
     */
    boolean hasMessage();
    /**
     * <code>required bytes message = 1;</code>
     */
    akka.protobuf.ByteString getMessage();

    // required int32 serializerId = 2;
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    boolean hasSerializerId();
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    int getSerializerId();

    // optional bytes messageManifest = 3;
    /**
     * <code>optional bytes messageManifest = 3;</code>
     */
    boolean hasMessageManifest();
    /**
     * <code>optional bytes messageManifest = 3;</code>
     */
    akka.protobuf.ByteString getMessageManifest();

    // required uint64 seqNo = 4;
    /**
     * <code>required uint64 seqNo = 4;</code>
     */
    boolean hasSeqNo();
    /**
     * <code>required uint64 seqNo = 4;</code>
     */
    long getSeqNo();

    // required .UniqueAddress ackReplyTo = 5;
    /**
     * <code>required .UniqueAddress ackReplyTo = 5;</code>
     */
    boolean hasAckReplyTo();
    /**
     * <code>required .UniqueAddress ackReplyTo = 5;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddress getAckReplyTo();
    /**
     * <code>required .UniqueAddress ackReplyTo = 5;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getAckReplyToOrBuilder();
  }
  /**
   * Protobuf type {@code SystemMessageEnvelope}
   *
   * <pre>
   * SystemMessageDelivery.SystemMessageEnvelope
   * </pre>
   */
  public static final class SystemMessageEnvelope extends
      akka.protobuf.GeneratedMessage
      implements SystemMessageEnvelopeOrBuilder {
    // Use SystemMessageEnvelope.newBuilder() to construct.
    private SystemMessageEnvelope(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private SystemMessageEnvelope(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final SystemMessageEnvelope defaultInstance;
    public static SystemMessageEnvelope getDefaultInstance() {
      return defaultInstance;
    }

    public SystemMessageEnvelope getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private SystemMessageEnvelope(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              message_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              serializerId_ = input.readInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              messageManifest_ = input.readBytes();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              seqNo_ = input.readUInt64();
              break;
            }
            case 42: {
              akka.remote.ArteryControlFormats.UniqueAddress.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = ackReplyTo_.toBuilder();
              }
              ackReplyTo_ = input.readMessage(akka.remote.ArteryControlFormats.UniqueAddress.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(ackReplyTo_);
                ackReplyTo_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.ArteryControlFormats.internal_static_SystemMessageEnvelope_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.ArteryControlFormats.internal_static_SystemMessageEnvelope_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.ArteryControlFormats.SystemMessageEnvelope.class, akka.remote.ArteryControlFormats.SystemMessageEnvelope.Builder.class);
    }

    public static akka.protobuf.Parser<SystemMessageEnvelope> PARSER =
        new akka.protobuf.AbstractParser<SystemMessageEnvelope>() {
      public SystemMessageEnvelope parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new SystemMessageEnvelope(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<SystemMessageEnvelope> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required bytes message = 1;
    public static final int MESSAGE_FIELD_NUMBER = 1;
    private akka.protobuf.ByteString message_;
    /**
     * <code>required bytes message = 1;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required bytes message = 1;</code>
     */
    public akka.protobuf.ByteString getMessage() {
      return message_;
    }

    // required int32 serializerId = 2;
    public static final int SERIALIZERID_FIELD_NUMBER = 2;
    private int serializerId_;
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    public boolean hasSerializerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    public int getSerializerId() {
      return serializerId_;
    }

    // optional bytes messageManifest = 3;
    public static final int MESSAGEMANIFEST_FIELD_NUMBER = 3;
    private akka.protobuf.ByteString messageManifest_;
    /**
     * <code>optional bytes messageManifest = 3;</code>
     */
    public boolean hasMessageManifest() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bytes messageManifest = 3;</code>
     */
    public akka.protobuf.ByteString getMessageManifest() {
      return messageManifest_;
    }

    // required uint64 seqNo = 4;
    public static final int SEQNO_FIELD_NUMBER = 4;
    private long seqNo_;
    /**
     * <code>required uint64 seqNo = 4;</code>
     */
    public boolean hasSeqNo() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required uint64 seqNo = 4;</code>
     */
    public long getSeqNo() {
      return seqNo_;
    }

    // required .UniqueAddress ackReplyTo = 5;
    public static final int ACKREPLYTO_FIELD_NUMBER = 5;
    private akka.remote.ArteryControlFormats.UniqueAddress ackReplyTo_;
    /**
     * <code>required .UniqueAddress ackReplyTo = 5;</code>
     */
    public boolean hasAckReplyTo() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required .UniqueAddress ackReplyTo = 5;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddress getAckReplyTo() {
      return ackReplyTo_;
    }
    /**
     * <code>required .UniqueAddress ackReplyTo = 5;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getAckReplyToOrBuilder() {
      return ackReplyTo_;
    }

    private void initFields() {
      message_ = akka.protobuf.ByteString.EMPTY;
      serializerId_ = 0;
      messageManifest_ = akka.protobuf.ByteString.EMPTY;
      seqNo_ = 0L;
      ackReplyTo_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasMessage()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSerializerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSeqNo()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAckReplyTo()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getAckReplyTo().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, message_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, serializerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, messageManifest_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt64(4, seqNo_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, ackReplyTo_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, message_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeInt32Size(2, serializerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(3, messageManifest_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += akka.protobuf.CodedOutputStream
          .computeUInt64Size(4, seqNo_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(5, ackReplyTo_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.ArteryControlFormats.SystemMessageEnvelope parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageEnvelope parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageEnvelope parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageEnvelope parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageEnvelope parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageEnvelope parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageEnvelope parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageEnvelope parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageEnvelope parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageEnvelope parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.ArteryControlFormats.SystemMessageEnvelope prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code SystemMessageEnvelope}
     *
     * <pre>
     * SystemMessageDelivery.SystemMessageEnvelope
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.ArteryControlFormats.SystemMessageEnvelopeOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.ArteryControlFormats.internal_static_SystemMessageEnvelope_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.ArteryControlFormats.internal_static_SystemMessageEnvelope_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.ArteryControlFormats.SystemMessageEnvelope.class, akka.remote.ArteryControlFormats.SystemMessageEnvelope.Builder.class);
      }

      // Construct using akka.remote.ArteryControlFormats.SystemMessageEnvelope.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getAckReplyToFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        message_ = akka.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        serializerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        messageManifest_ = akka.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        seqNo_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (ackReplyToBuilder_ == null) {
          ackReplyTo_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
        } else {
          ackReplyToBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.ArteryControlFormats.internal_static_SystemMessageEnvelope_descriptor;
      }

      public akka.remote.ArteryControlFormats.SystemMessageEnvelope getDefaultInstanceForType() {
        return akka.remote.ArteryControlFormats.SystemMessageEnvelope.getDefaultInstance();
      }

      public akka.remote.ArteryControlFormats.SystemMessageEnvelope build() {
        akka.remote.ArteryControlFormats.SystemMessageEnvelope result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.ArteryControlFormats.SystemMessageEnvelope buildPartial() {
        akka.remote.ArteryControlFormats.SystemMessageEnvelope result = new akka.remote.ArteryControlFormats.SystemMessageEnvelope(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.message_ = message_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.serializerId_ = serializerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.messageManifest_ = messageManifest_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.seqNo_ = seqNo_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (ackReplyToBuilder_ == null) {
          result.ackReplyTo_ = ackReplyTo_;
        } else {
          result.ackReplyTo_ = ackReplyToBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.ArteryControlFormats.SystemMessageEnvelope) {
          return mergeFrom((akka.remote.ArteryControlFormats.SystemMessageEnvelope)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.ArteryControlFormats.SystemMessageEnvelope other) {
        if (other == akka.remote.ArteryControlFormats.SystemMessageEnvelope.getDefaultInstance()) return this;
        if (other.hasMessage()) {
          setMessage(other.getMessage());
        }
        if (other.hasSerializerId()) {
          setSerializerId(other.getSerializerId());
        }
        if (other.hasMessageManifest()) {
          setMessageManifest(other.getMessageManifest());
        }
        if (other.hasSeqNo()) {
          setSeqNo(other.getSeqNo());
        }
        if (other.hasAckReplyTo()) {
          mergeAckReplyTo(other.getAckReplyTo());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasMessage()) {
          
          return false;
        }
        if (!hasSerializerId()) {
          
          return false;
        }
        if (!hasSeqNo()) {
          
          return false;
        }
        if (!hasAckReplyTo()) {
          
          return false;
        }
        if (!getAckReplyTo().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.ArteryControlFormats.SystemMessageEnvelope parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.ArteryControlFormats.SystemMessageEnvelope) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required bytes message = 1;
      private akka.protobuf.ByteString message_ = akka.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes message = 1;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required bytes message = 1;</code>
       */
      public akka.protobuf.ByteString getMessage() {
        return message_;
      }
      /**
       * <code>required bytes message = 1;</code>
       */
      public Builder setMessage(akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes message = 1;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000001);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }

      // required int32 serializerId = 2;
      private int serializerId_ ;
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public boolean hasSerializerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public int getSerializerId() {
        return serializerId_;
      }
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public Builder setSerializerId(int value) {
        bitField0_ |= 0x00000002;
        serializerId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public Builder clearSerializerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        serializerId_ = 0;
        onChanged();
        return this;
      }

      // optional bytes messageManifest = 3;
      private akka.protobuf.ByteString messageManifest_ = akka.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes messageManifest = 3;</code>
       */
      public boolean hasMessageManifest() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bytes messageManifest = 3;</code>
       */
      public akka.protobuf.ByteString getMessageManifest() {
        return messageManifest_;
      }
      /**
       * <code>optional bytes messageManifest = 3;</code>
       */
      public Builder setMessageManifest(akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        messageManifest_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes messageManifest = 3;</code>
       */
      public Builder clearMessageManifest() {
        bitField0_ = (bitField0_ & ~0x00000004);
        messageManifest_ = getDefaultInstance().getMessageManifest();
        onChanged();
        return this;
      }

      // required uint64 seqNo = 4;
      private long seqNo_ ;
      /**
       * <code>required uint64 seqNo = 4;</code>
       */
      public boolean hasSeqNo() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required uint64 seqNo = 4;</code>
       */
      public long getSeqNo() {
        return seqNo_;
      }
      /**
       * <code>required uint64 seqNo = 4;</code>
       */
      public Builder setSeqNo(long value) {
        bitField0_ |= 0x00000008;
        seqNo_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint64 seqNo = 4;</code>
       */
      public Builder clearSeqNo() {
        bitField0_ = (bitField0_ & ~0x00000008);
        seqNo_ = 0L;
        onChanged();
        return this;
      }

      // required .UniqueAddress ackReplyTo = 5;
      private akka.remote.ArteryControlFormats.UniqueAddress ackReplyTo_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> ackReplyToBuilder_;
      /**
       * <code>required .UniqueAddress ackReplyTo = 5;</code>
       */
      public boolean hasAckReplyTo() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required .UniqueAddress ackReplyTo = 5;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress getAckReplyTo() {
        if (ackReplyToBuilder_ == null) {
          return ackReplyTo_;
        } else {
          return ackReplyToBuilder_.getMessage();
        }
      }
      /**
       * <code>required .UniqueAddress ackReplyTo = 5;</code>
       */
      public Builder setAckReplyTo(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (ackReplyToBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ackReplyTo_ = value;
          onChanged();
        } else {
          ackReplyToBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>required .UniqueAddress ackReplyTo = 5;</code>
       */
      public Builder setAckReplyTo(
          akka.remote.ArteryControlFormats.UniqueAddress.Builder builderForValue) {
        if (ackReplyToBuilder_ == null) {
          ackReplyTo_ = builderForValue.build();
          onChanged();
        } else {
          ackReplyToBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>required .UniqueAddress ackReplyTo = 5;</code>
       */
      public Builder mergeAckReplyTo(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (ackReplyToBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              ackReplyTo_ != akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance()) {
            ackReplyTo_ =
              akka.remote.ArteryControlFormats.UniqueAddress.newBuilder(ackReplyTo_).mergeFrom(value).buildPartial();
          } else {
            ackReplyTo_ = value;
          }
          onChanged();
        } else {
          ackReplyToBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>required .UniqueAddress ackReplyTo = 5;</code>
       */
      public Builder clearAckReplyTo() {
        if (ackReplyToBuilder_ == null) {
          ackReplyTo_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
          onChanged();
        } else {
          ackReplyToBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <code>required .UniqueAddress ackReplyTo = 5;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress.Builder getAckReplyToBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getAckReplyToFieldBuilder().getBuilder();
      }
      /**
       * <code>required .UniqueAddress ackReplyTo = 5;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getAckReplyToOrBuilder() {
        if (ackReplyToBuilder_ != null) {
          return ackReplyToBuilder_.getMessageOrBuilder();
        } else {
          return ackReplyTo_;
        }
      }
      /**
       * <code>required .UniqueAddress ackReplyTo = 5;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> 
          getAckReplyToFieldBuilder() {
        if (ackReplyToBuilder_ == null) {
          ackReplyToBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder>(
                  ackReplyTo_,
                  getParentForChildren(),
                  isClean());
          ackReplyTo_ = null;
        }
        return ackReplyToBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:SystemMessageEnvelope)
    }

    static {
      defaultInstance = new SystemMessageEnvelope(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:SystemMessageEnvelope)
  }

  public interface SystemMessageDeliveryAckOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required uint64 seqNo = 1;
    /**
     * <code>required uint64 seqNo = 1;</code>
     */
    boolean hasSeqNo();
    /**
     * <code>required uint64 seqNo = 1;</code>
     */
    long getSeqNo();

    // required .UniqueAddress from = 2;
    /**
     * <code>required .UniqueAddress from = 2;</code>
     */
    boolean hasFrom();
    /**
     * <code>required .UniqueAddress from = 2;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddress getFrom();
    /**
     * <code>required .UniqueAddress from = 2;</code>
     */
    akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getFromOrBuilder();
  }
  /**
   * Protobuf type {@code SystemMessageDeliveryAck}
   *
   * <pre>
   * SystemMessageDelivery.Ack
   * SystemMessageDelivery.Nack
   * </pre>
   */
  public static final class SystemMessageDeliveryAck extends
      akka.protobuf.GeneratedMessage
      implements SystemMessageDeliveryAckOrBuilder {
    // Use SystemMessageDeliveryAck.newBuilder() to construct.
    private SystemMessageDeliveryAck(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private SystemMessageDeliveryAck(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final SystemMessageDeliveryAck defaultInstance;
    public static SystemMessageDeliveryAck getDefaultInstance() {
      return defaultInstance;
    }

    public SystemMessageDeliveryAck getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private SystemMessageDeliveryAck(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              seqNo_ = input.readUInt64();
              break;
            }
            case 18: {
              akka.remote.ArteryControlFormats.UniqueAddress.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = from_.toBuilder();
              }
              from_ = input.readMessage(akka.remote.ArteryControlFormats.UniqueAddress.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(from_);
                from_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.ArteryControlFormats.internal_static_SystemMessageDeliveryAck_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.ArteryControlFormats.internal_static_SystemMessageDeliveryAck_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.ArteryControlFormats.SystemMessageDeliveryAck.class, akka.remote.ArteryControlFormats.SystemMessageDeliveryAck.Builder.class);
    }

    public static akka.protobuf.Parser<SystemMessageDeliveryAck> PARSER =
        new akka.protobuf.AbstractParser<SystemMessageDeliveryAck>() {
      public SystemMessageDeliveryAck parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new SystemMessageDeliveryAck(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<SystemMessageDeliveryAck> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required uint64 seqNo = 1;
    public static final int SEQNO_FIELD_NUMBER = 1;
    private long seqNo_;
    /**
     * <code>required uint64 seqNo = 1;</code>
     */
    public boolean hasSeqNo() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint64 seqNo = 1;</code>
     */
    public long getSeqNo() {
      return seqNo_;
    }

    // required .UniqueAddress from = 2;
    public static final int FROM_FIELD_NUMBER = 2;
    private akka.remote.ArteryControlFormats.UniqueAddress from_;
    /**
     * <code>required .UniqueAddress from = 2;</code>
     */
    public boolean hasFrom() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .UniqueAddress from = 2;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddress getFrom() {
      return from_;
    }
    /**
     * <code>required .UniqueAddress from = 2;</code>
     */
    public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getFromOrBuilder() {
      return from_;
    }

    private void initFields() {
      seqNo_ = 0L;
      from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasSeqNo()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFrom()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getFrom().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, seqNo_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, from_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeUInt64Size(1, seqNo_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, from_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.ArteryControlFormats.SystemMessageDeliveryAck parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageDeliveryAck parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageDeliveryAck parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageDeliveryAck parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageDeliveryAck parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageDeliveryAck parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageDeliveryAck parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageDeliveryAck parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageDeliveryAck parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.SystemMessageDeliveryAck parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.ArteryControlFormats.SystemMessageDeliveryAck prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code SystemMessageDeliveryAck}
     *
     * <pre>
     * SystemMessageDelivery.Ack
     * SystemMessageDelivery.Nack
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.ArteryControlFormats.SystemMessageDeliveryAckOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.ArteryControlFormats.internal_static_SystemMessageDeliveryAck_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.ArteryControlFormats.internal_static_SystemMessageDeliveryAck_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.ArteryControlFormats.SystemMessageDeliveryAck.class, akka.remote.ArteryControlFormats.SystemMessageDeliveryAck.Builder.class);
      }

      // Construct using akka.remote.ArteryControlFormats.SystemMessageDeliveryAck.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getFromFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        seqNo_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (fromBuilder_ == null) {
          from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
        } else {
          fromBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.ArteryControlFormats.internal_static_SystemMessageDeliveryAck_descriptor;
      }

      public akka.remote.ArteryControlFormats.SystemMessageDeliveryAck getDefaultInstanceForType() {
        return akka.remote.ArteryControlFormats.SystemMessageDeliveryAck.getDefaultInstance();
      }

      public akka.remote.ArteryControlFormats.SystemMessageDeliveryAck build() {
        akka.remote.ArteryControlFormats.SystemMessageDeliveryAck result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.ArteryControlFormats.SystemMessageDeliveryAck buildPartial() {
        akka.remote.ArteryControlFormats.SystemMessageDeliveryAck result = new akka.remote.ArteryControlFormats.SystemMessageDeliveryAck(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.seqNo_ = seqNo_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (fromBuilder_ == null) {
          result.from_ = from_;
        } else {
          result.from_ = fromBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.ArteryControlFormats.SystemMessageDeliveryAck) {
          return mergeFrom((akka.remote.ArteryControlFormats.SystemMessageDeliveryAck)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.ArteryControlFormats.SystemMessageDeliveryAck other) {
        if (other == akka.remote.ArteryControlFormats.SystemMessageDeliveryAck.getDefaultInstance()) return this;
        if (other.hasSeqNo()) {
          setSeqNo(other.getSeqNo());
        }
        if (other.hasFrom()) {
          mergeFrom(other.getFrom());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasSeqNo()) {
          
          return false;
        }
        if (!hasFrom()) {
          
          return false;
        }
        if (!getFrom().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.ArteryControlFormats.SystemMessageDeliveryAck parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.ArteryControlFormats.SystemMessageDeliveryAck) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required uint64 seqNo = 1;
      private long seqNo_ ;
      /**
       * <code>required uint64 seqNo = 1;</code>
       */
      public boolean hasSeqNo() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint64 seqNo = 1;</code>
       */
      public long getSeqNo() {
        return seqNo_;
      }
      /**
       * <code>required uint64 seqNo = 1;</code>
       */
      public Builder setSeqNo(long value) {
        bitField0_ |= 0x00000001;
        seqNo_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint64 seqNo = 1;</code>
       */
      public Builder clearSeqNo() {
        bitField0_ = (bitField0_ & ~0x00000001);
        seqNo_ = 0L;
        onChanged();
        return this;
      }

      // required .UniqueAddress from = 2;
      private akka.remote.ArteryControlFormats.UniqueAddress from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> fromBuilder_;
      /**
       * <code>required .UniqueAddress from = 2;</code>
       */
      public boolean hasFrom() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .UniqueAddress from = 2;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress getFrom() {
        if (fromBuilder_ == null) {
          return from_;
        } else {
          return fromBuilder_.getMessage();
        }
      }
      /**
       * <code>required .UniqueAddress from = 2;</code>
       */
      public Builder setFrom(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (fromBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          from_ = value;
          onChanged();
        } else {
          fromBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 2;</code>
       */
      public Builder setFrom(
          akka.remote.ArteryControlFormats.UniqueAddress.Builder builderForValue) {
        if (fromBuilder_ == null) {
          from_ = builderForValue.build();
          onChanged();
        } else {
          fromBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 2;</code>
       */
      public Builder mergeFrom(akka.remote.ArteryControlFormats.UniqueAddress value) {
        if (fromBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              from_ != akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance()) {
            from_ =
              akka.remote.ArteryControlFormats.UniqueAddress.newBuilder(from_).mergeFrom(value).buildPartial();
          } else {
            from_ = value;
          }
          onChanged();
        } else {
          fromBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 2;</code>
       */
      public Builder clearFrom() {
        if (fromBuilder_ == null) {
          from_ = akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
          onChanged();
        } else {
          fromBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>required .UniqueAddress from = 2;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddress.Builder getFromBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getFromFieldBuilder().getBuilder();
      }
      /**
       * <code>required .UniqueAddress from = 2;</code>
       */
      public akka.remote.ArteryControlFormats.UniqueAddressOrBuilder getFromOrBuilder() {
        if (fromBuilder_ != null) {
          return fromBuilder_.getMessageOrBuilder();
        } else {
          return from_;
        }
      }
      /**
       * <code>required .UniqueAddress from = 2;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder> 
          getFromFieldBuilder() {
        if (fromBuilder_ == null) {
          fromBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.ArteryControlFormats.UniqueAddress, akka.remote.ArteryControlFormats.UniqueAddress.Builder, akka.remote.ArteryControlFormats.UniqueAddressOrBuilder>(
                  from_,
                  getParentForChildren(),
                  isClean());
          from_ = null;
        }
        return fromBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:SystemMessageDeliveryAck)
    }

    static {
      defaultInstance = new SystemMessageDeliveryAck(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:SystemMessageDeliveryAck)
  }

  public interface AddressOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string protocol = 1;
    /**
     * <code>required string protocol = 1;</code>
     */
    boolean hasProtocol();
    /**
     * <code>required string protocol = 1;</code>
     */
    java.lang.String getProtocol();
    /**
     * <code>required string protocol = 1;</code>
     */
    akka.protobuf.ByteString
        getProtocolBytes();

    // required string system = 2;
    /**
     * <code>required string system = 2;</code>
     */
    boolean hasSystem();
    /**
     * <code>required string system = 2;</code>
     */
    java.lang.String getSystem();
    /**
     * <code>required string system = 2;</code>
     */
    akka.protobuf.ByteString
        getSystemBytes();

    // required string hostname = 3;
    /**
     * <code>required string hostname = 3;</code>
     */
    boolean hasHostname();
    /**
     * <code>required string hostname = 3;</code>
     */
    java.lang.String getHostname();
    /**
     * <code>required string hostname = 3;</code>
     */
    akka.protobuf.ByteString
        getHostnameBytes();

    // required uint32 port = 4;
    /**
     * <code>required uint32 port = 4;</code>
     */
    boolean hasPort();
    /**
     * <code>required uint32 port = 4;</code>
     */
    int getPort();
  }
  /**
   * Protobuf type {@code Address}
   *
   * <pre>
   **
   * Defines a remote address.
   * </pre>
   */
  public static final class Address extends
      akka.protobuf.GeneratedMessage
      implements AddressOrBuilder {
    // Use Address.newBuilder() to construct.
    private Address(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Address(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Address defaultInstance;
    public static Address getDefaultInstance() {
      return defaultInstance;
    }

    public Address getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Address(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              protocol_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              system_ = input.readBytes();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              hostname_ = input.readBytes();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              port_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.ArteryControlFormats.internal_static_Address_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.ArteryControlFormats.internal_static_Address_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.ArteryControlFormats.Address.class, akka.remote.ArteryControlFormats.Address.Builder.class);
    }

    public static akka.protobuf.Parser<Address> PARSER =
        new akka.protobuf.AbstractParser<Address>() {
      public Address parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Address(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<Address> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required string protocol = 1;
    public static final int PROTOCOL_FIELD_NUMBER = 1;
    private java.lang.Object protocol_;
    /**
     * <code>required string protocol = 1;</code>
     */
    public boolean hasProtocol() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string protocol = 1;</code>
     */
    public java.lang.String getProtocol() {
      java.lang.Object ref = protocol_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          protocol_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string protocol = 1;</code>
     */
    public akka.protobuf.ByteString
        getProtocolBytes() {
      java.lang.Object ref = protocol_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        protocol_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required string system = 2;
    public static final int SYSTEM_FIELD_NUMBER = 2;
    private java.lang.Object system_;
    /**
     * <code>required string system = 2;</code>
     */
    public boolean hasSystem() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required string system = 2;</code>
     */
    public java.lang.String getSystem() {
      java.lang.Object ref = system_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          system_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string system = 2;</code>
     */
    public akka.protobuf.ByteString
        getSystemBytes() {
      java.lang.Object ref = system_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        system_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required string hostname = 3;
    public static final int HOSTNAME_FIELD_NUMBER = 3;
    private java.lang.Object hostname_;
    /**
     * <code>required string hostname = 3;</code>
     */
    public boolean hasHostname() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required string hostname = 3;</code>
     */
    public java.lang.String getHostname() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          hostname_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string hostname = 3;</code>
     */
    public akka.protobuf.ByteString
        getHostnameBytes() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hostname_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required uint32 port = 4;
    public static final int PORT_FIELD_NUMBER = 4;
    private int port_;
    /**
     * <code>required uint32 port = 4;</code>
     */
    public boolean hasPort() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required uint32 port = 4;</code>
     */
    public int getPort() {
      return port_;
    }

    private void initFields() {
      protocol_ = "";
      system_ = "";
      hostname_ = "";
      port_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasProtocol()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSystem()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasHostname()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPort()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getProtocolBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getSystemBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getHostnameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, port_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, getProtocolBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(2, getSystemBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(3, getHostnameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += akka.protobuf.CodedOutputStream
          .computeUInt32Size(4, port_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.ArteryControlFormats.Address parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.Address parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.Address parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.Address parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.Address parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.Address parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.Address parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.ArteryControlFormats.Address parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.Address parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.Address parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.ArteryControlFormats.Address prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Address}
     *
     * <pre>
     **
     * Defines a remote address.
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.ArteryControlFormats.AddressOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.ArteryControlFormats.internal_static_Address_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.ArteryControlFormats.internal_static_Address_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.ArteryControlFormats.Address.class, akka.remote.ArteryControlFormats.Address.Builder.class);
      }

      // Construct using akka.remote.ArteryControlFormats.Address.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        protocol_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        system_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        hostname_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        port_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.ArteryControlFormats.internal_static_Address_descriptor;
      }

      public akka.remote.ArteryControlFormats.Address getDefaultInstanceForType() {
        return akka.remote.ArteryControlFormats.Address.getDefaultInstance();
      }

      public akka.remote.ArteryControlFormats.Address build() {
        akka.remote.ArteryControlFormats.Address result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.ArteryControlFormats.Address buildPartial() {
        akka.remote.ArteryControlFormats.Address result = new akka.remote.ArteryControlFormats.Address(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.protocol_ = protocol_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.system_ = system_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.hostname_ = hostname_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.port_ = port_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.ArteryControlFormats.Address) {
          return mergeFrom((akka.remote.ArteryControlFormats.Address)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.ArteryControlFormats.Address other) {
        if (other == akka.remote.ArteryControlFormats.Address.getDefaultInstance()) return this;
        if (other.hasProtocol()) {
          bitField0_ |= 0x00000001;
          protocol_ = other.protocol_;
          onChanged();
        }
        if (other.hasSystem()) {
          bitField0_ |= 0x00000002;
          system_ = other.system_;
          onChanged();
        }
        if (other.hasHostname()) {
          bitField0_ |= 0x00000004;
          hostname_ = other.hostname_;
          onChanged();
        }
        if (other.hasPort()) {
          setPort(other.getPort());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasProtocol()) {
          
          return false;
        }
        if (!hasSystem()) {
          
          return false;
        }
        if (!hasHostname()) {
          
          return false;
        }
        if (!hasPort()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.ArteryControlFormats.Address parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.ArteryControlFormats.Address) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string protocol = 1;
      private java.lang.Object protocol_ = "";
      /**
       * <code>required string protocol = 1;</code>
       */
      public boolean hasProtocol() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string protocol = 1;</code>
       */
      public java.lang.String getProtocol() {
        java.lang.Object ref = protocol_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          protocol_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string protocol = 1;</code>
       */
      public akka.protobuf.ByteString
          getProtocolBytes() {
        java.lang.Object ref = protocol_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          protocol_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string protocol = 1;</code>
       */
      public Builder setProtocol(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        protocol_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string protocol = 1;</code>
       */
      public Builder clearProtocol() {
        bitField0_ = (bitField0_ & ~0x00000001);
        protocol_ = getDefaultInstance().getProtocol();
        onChanged();
        return this;
      }
      /**
       * <code>required string protocol = 1;</code>
       */
      public Builder setProtocolBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        protocol_ = value;
        onChanged();
        return this;
      }

      // required string system = 2;
      private java.lang.Object system_ = "";
      /**
       * <code>required string system = 2;</code>
       */
      public boolean hasSystem() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required string system = 2;</code>
       */
      public java.lang.String getSystem() {
        java.lang.Object ref = system_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          system_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string system = 2;</code>
       */
      public akka.protobuf.ByteString
          getSystemBytes() {
        java.lang.Object ref = system_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          system_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string system = 2;</code>
       */
      public Builder setSystem(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        system_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string system = 2;</code>
       */
      public Builder clearSystem() {
        bitField0_ = (bitField0_ & ~0x00000002);
        system_ = getDefaultInstance().getSystem();
        onChanged();
        return this;
      }
      /**
       * <code>required string system = 2;</code>
       */
      public Builder setSystemBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        system_ = value;
        onChanged();
        return this;
      }

      // required string hostname = 3;
      private java.lang.Object hostname_ = "";
      /**
       * <code>required string hostname = 3;</code>
       */
      public boolean hasHostname() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required string hostname = 3;</code>
       */
      public java.lang.String getHostname() {
        java.lang.Object ref = hostname_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          hostname_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string hostname = 3;</code>
       */
      public akka.protobuf.ByteString
          getHostnameBytes() {
        java.lang.Object ref = hostname_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hostname_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string hostname = 3;</code>
       */
      public Builder setHostname(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        hostname_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string hostname = 3;</code>
       */
      public Builder clearHostname() {
        bitField0_ = (bitField0_ & ~0x00000004);
        hostname_ = getDefaultInstance().getHostname();
        onChanged();
        return this;
      }
      /**
       * <code>required string hostname = 3;</code>
       */
      public Builder setHostnameBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        hostname_ = value;
        onChanged();
        return this;
      }

      // required uint32 port = 4;
      private int port_ ;
      /**
       * <code>required uint32 port = 4;</code>
       */
      public boolean hasPort() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required uint32 port = 4;</code>
       */
      public int getPort() {
        return port_;
      }
      /**
       * <code>required uint32 port = 4;</code>
       */
      public Builder setPort(int value) {
        bitField0_ |= 0x00000008;
        port_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 port = 4;</code>
       */
      public Builder clearPort() {
        bitField0_ = (bitField0_ & ~0x00000008);
        port_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:Address)
    }

    static {
      defaultInstance = new Address(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Address)
  }

  public interface UniqueAddressOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .Address address = 1;
    /**
     * <code>required .Address address = 1;</code>
     */
    boolean hasAddress();
    /**
     * <code>required .Address address = 1;</code>
     */
    akka.remote.ArteryControlFormats.Address getAddress();
    /**
     * <code>required .Address address = 1;</code>
     */
    akka.remote.ArteryControlFormats.AddressOrBuilder getAddressOrBuilder();

    // required uint64 uid = 2;
    /**
     * <code>required uint64 uid = 2;</code>
     */
    boolean hasUid();
    /**
     * <code>required uint64 uid = 2;</code>
     */
    long getUid();
  }
  /**
   * Protobuf type {@code UniqueAddress}
   *
   * <pre>
   **
   * Defines a remote address with uid.
   * </pre>
   */
  public static final class UniqueAddress extends
      akka.protobuf.GeneratedMessage
      implements UniqueAddressOrBuilder {
    // Use UniqueAddress.newBuilder() to construct.
    private UniqueAddress(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private UniqueAddress(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final UniqueAddress defaultInstance;
    public static UniqueAddress getDefaultInstance() {
      return defaultInstance;
    }

    public UniqueAddress getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private UniqueAddress(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              akka.remote.ArteryControlFormats.Address.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = address_.toBuilder();
              }
              address_ = input.readMessage(akka.remote.ArteryControlFormats.Address.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(address_);
                address_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              uid_ = input.readUInt64();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.ArteryControlFormats.internal_static_UniqueAddress_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.ArteryControlFormats.internal_static_UniqueAddress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.ArteryControlFormats.UniqueAddress.class, akka.remote.ArteryControlFormats.UniqueAddress.Builder.class);
    }

    public static akka.protobuf.Parser<UniqueAddress> PARSER =
        new akka.protobuf.AbstractParser<UniqueAddress>() {
      public UniqueAddress parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new UniqueAddress(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<UniqueAddress> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required .Address address = 1;
    public static final int ADDRESS_FIELD_NUMBER = 1;
    private akka.remote.ArteryControlFormats.Address address_;
    /**
     * <code>required .Address address = 1;</code>
     */
    public boolean hasAddress() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .Address address = 1;</code>
     */
    public akka.remote.ArteryControlFormats.Address getAddress() {
      return address_;
    }
    /**
     * <code>required .Address address = 1;</code>
     */
    public akka.remote.ArteryControlFormats.AddressOrBuilder getAddressOrBuilder() {
      return address_;
    }

    // required uint64 uid = 2;
    public static final int UID_FIELD_NUMBER = 2;
    private long uid_;
    /**
     * <code>required uint64 uid = 2;</code>
     */
    public boolean hasUid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint64 uid = 2;</code>
     */
    public long getUid() {
      return uid_;
    }

    private void initFields() {
      address_ = akka.remote.ArteryControlFormats.Address.getDefaultInstance();
      uid_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasAddress()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasUid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getAddress().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, address_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt64(2, uid_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, address_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeUInt64Size(2, uid_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.ArteryControlFormats.UniqueAddress parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.UniqueAddress parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.UniqueAddress parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.UniqueAddress parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.UniqueAddress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.UniqueAddress parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.UniqueAddress parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.ArteryControlFormats.UniqueAddress parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.UniqueAddress parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.UniqueAddress parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.ArteryControlFormats.UniqueAddress prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code UniqueAddress}
     *
     * <pre>
     **
     * Defines a remote address with uid.
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.ArteryControlFormats.UniqueAddressOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.ArteryControlFormats.internal_static_UniqueAddress_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.ArteryControlFormats.internal_static_UniqueAddress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.ArteryControlFormats.UniqueAddress.class, akka.remote.ArteryControlFormats.UniqueAddress.Builder.class);
      }

      // Construct using akka.remote.ArteryControlFormats.UniqueAddress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getAddressFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (addressBuilder_ == null) {
          address_ = akka.remote.ArteryControlFormats.Address.getDefaultInstance();
        } else {
          addressBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        uid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.ArteryControlFormats.internal_static_UniqueAddress_descriptor;
      }

      public akka.remote.ArteryControlFormats.UniqueAddress getDefaultInstanceForType() {
        return akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance();
      }

      public akka.remote.ArteryControlFormats.UniqueAddress build() {
        akka.remote.ArteryControlFormats.UniqueAddress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.ArteryControlFormats.UniqueAddress buildPartial() {
        akka.remote.ArteryControlFormats.UniqueAddress result = new akka.remote.ArteryControlFormats.UniqueAddress(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (addressBuilder_ == null) {
          result.address_ = address_;
        } else {
          result.address_ = addressBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.uid_ = uid_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.ArteryControlFormats.UniqueAddress) {
          return mergeFrom((akka.remote.ArteryControlFormats.UniqueAddress)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.ArteryControlFormats.UniqueAddress other) {
        if (other == akka.remote.ArteryControlFormats.UniqueAddress.getDefaultInstance()) return this;
        if (other.hasAddress()) {
          mergeAddress(other.getAddress());
        }
        if (other.hasUid()) {
          setUid(other.getUid());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasAddress()) {
          
          return false;
        }
        if (!hasUid()) {
          
          return false;
        }
        if (!getAddress().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.ArteryControlFormats.UniqueAddress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.ArteryControlFormats.UniqueAddress) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .Address address = 1;
      private akka.remote.ArteryControlFormats.Address address_ = akka.remote.ArteryControlFormats.Address.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.Address, akka.remote.ArteryControlFormats.Address.Builder, akka.remote.ArteryControlFormats.AddressOrBuilder> addressBuilder_;
      /**
       * <code>required .Address address = 1;</code>
       */
      public boolean hasAddress() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .Address address = 1;</code>
       */
      public akka.remote.ArteryControlFormats.Address getAddress() {
        if (addressBuilder_ == null) {
          return address_;
        } else {
          return addressBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Address address = 1;</code>
       */
      public Builder setAddress(akka.remote.ArteryControlFormats.Address value) {
        if (addressBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          address_ = value;
          onChanged();
        } else {
          addressBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Address address = 1;</code>
       */
      public Builder setAddress(
          akka.remote.ArteryControlFormats.Address.Builder builderForValue) {
        if (addressBuilder_ == null) {
          address_ = builderForValue.build();
          onChanged();
        } else {
          addressBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Address address = 1;</code>
       */
      public Builder mergeAddress(akka.remote.ArteryControlFormats.Address value) {
        if (addressBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              address_ != akka.remote.ArteryControlFormats.Address.getDefaultInstance()) {
            address_ =
              akka.remote.ArteryControlFormats.Address.newBuilder(address_).mergeFrom(value).buildPartial();
          } else {
            address_ = value;
          }
          onChanged();
        } else {
          addressBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Address address = 1;</code>
       */
      public Builder clearAddress() {
        if (addressBuilder_ == null) {
          address_ = akka.remote.ArteryControlFormats.Address.getDefaultInstance();
          onChanged();
        } else {
          addressBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .Address address = 1;</code>
       */
      public akka.remote.ArteryControlFormats.Address.Builder getAddressBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getAddressFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Address address = 1;</code>
       */
      public akka.remote.ArteryControlFormats.AddressOrBuilder getAddressOrBuilder() {
        if (addressBuilder_ != null) {
          return addressBuilder_.getMessageOrBuilder();
        } else {
          return address_;
        }
      }
      /**
       * <code>required .Address address = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.remote.ArteryControlFormats.Address, akka.remote.ArteryControlFormats.Address.Builder, akka.remote.ArteryControlFormats.AddressOrBuilder> 
          getAddressFieldBuilder() {
        if (addressBuilder_ == null) {
          addressBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.remote.ArteryControlFormats.Address, akka.remote.ArteryControlFormats.Address.Builder, akka.remote.ArteryControlFormats.AddressOrBuilder>(
                  address_,
                  getParentForChildren(),
                  isClean());
          address_ = null;
        }
        return addressBuilder_;
      }

      // required uint64 uid = 2;
      private long uid_ ;
      /**
       * <code>required uint64 uid = 2;</code>
       */
      public boolean hasUid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint64 uid = 2;</code>
       */
      public long getUid() {
        return uid_;
      }
      /**
       * <code>required uint64 uid = 2;</code>
       */
      public Builder setUid(long value) {
        bitField0_ |= 0x00000002;
        uid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint64 uid = 2;</code>
       */
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        uid_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:UniqueAddress)
    }

    static {
      defaultInstance = new UniqueAddress(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:UniqueAddress)
  }

  public interface ArteryHeartbeatRspOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required uint64 uid = 1;
    /**
     * <code>required uint64 uid = 1;</code>
     */
    boolean hasUid();
    /**
     * <code>required uint64 uid = 1;</code>
     */
    long getUid();
  }
  /**
   * Protobuf type {@code ArteryHeartbeatRsp}
   *
   * <pre>
   * RemoteWatcher.ArteryHeartbeat is empty array
   * RemoteWatcher.ArteryHeartbeatRsp
   * </pre>
   */
  public static final class ArteryHeartbeatRsp extends
      akka.protobuf.GeneratedMessage
      implements ArteryHeartbeatRspOrBuilder {
    // Use ArteryHeartbeatRsp.newBuilder() to construct.
    private ArteryHeartbeatRsp(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ArteryHeartbeatRsp(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final ArteryHeartbeatRsp defaultInstance;
    public static ArteryHeartbeatRsp getDefaultInstance() {
      return defaultInstance;
    }

    public ArteryHeartbeatRsp getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private ArteryHeartbeatRsp(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              uid_ = input.readUInt64();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.remote.ArteryControlFormats.internal_static_ArteryHeartbeatRsp_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.remote.ArteryControlFormats.internal_static_ArteryHeartbeatRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.remote.ArteryControlFormats.ArteryHeartbeatRsp.class, akka.remote.ArteryControlFormats.ArteryHeartbeatRsp.Builder.class);
    }

    public static akka.protobuf.Parser<ArteryHeartbeatRsp> PARSER =
        new akka.protobuf.AbstractParser<ArteryHeartbeatRsp>() {
      public ArteryHeartbeatRsp parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new ArteryHeartbeatRsp(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<ArteryHeartbeatRsp> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required uint64 uid = 1;
    public static final int UID_FIELD_NUMBER = 1;
    private long uid_;
    /**
     * <code>required uint64 uid = 1;</code>
     */
    public boolean hasUid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint64 uid = 1;</code>
     */
    public long getUid() {
      return uid_;
    }

    private void initFields() {
      uid_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, uid_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeUInt64Size(1, uid_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.remote.ArteryControlFormats.ArteryHeartbeatRsp parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.ArteryHeartbeatRsp parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.ArteryHeartbeatRsp parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.remote.ArteryControlFormats.ArteryHeartbeatRsp parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.ArteryHeartbeatRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.ArteryHeartbeatRsp parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.ArteryHeartbeatRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.remote.ArteryControlFormats.ArteryHeartbeatRsp parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.remote.ArteryControlFormats.ArteryHeartbeatRsp parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.remote.ArteryControlFormats.ArteryHeartbeatRsp parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.remote.ArteryControlFormats.ArteryHeartbeatRsp prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ArteryHeartbeatRsp}
     *
     * <pre>
     * RemoteWatcher.ArteryHeartbeat is empty array
     * RemoteWatcher.ArteryHeartbeatRsp
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.remote.ArteryControlFormats.ArteryHeartbeatRspOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.remote.ArteryControlFormats.internal_static_ArteryHeartbeatRsp_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.remote.ArteryControlFormats.internal_static_ArteryHeartbeatRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.remote.ArteryControlFormats.ArteryHeartbeatRsp.class, akka.remote.ArteryControlFormats.ArteryHeartbeatRsp.Builder.class);
      }

      // Construct using akka.remote.ArteryControlFormats.ArteryHeartbeatRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        uid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.remote.ArteryControlFormats.internal_static_ArteryHeartbeatRsp_descriptor;
      }

      public akka.remote.ArteryControlFormats.ArteryHeartbeatRsp getDefaultInstanceForType() {
        return akka.remote.ArteryControlFormats.ArteryHeartbeatRsp.getDefaultInstance();
      }

      public akka.remote.ArteryControlFormats.ArteryHeartbeatRsp build() {
        akka.remote.ArteryControlFormats.ArteryHeartbeatRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.remote.ArteryControlFormats.ArteryHeartbeatRsp buildPartial() {
        akka.remote.ArteryControlFormats.ArteryHeartbeatRsp result = new akka.remote.ArteryControlFormats.ArteryHeartbeatRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.uid_ = uid_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.remote.ArteryControlFormats.ArteryHeartbeatRsp) {
          return mergeFrom((akka.remote.ArteryControlFormats.ArteryHeartbeatRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.remote.ArteryControlFormats.ArteryHeartbeatRsp other) {
        if (other == akka.remote.ArteryControlFormats.ArteryHeartbeatRsp.getDefaultInstance()) return this;
        if (other.hasUid()) {
          setUid(other.getUid());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasUid()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.remote.ArteryControlFormats.ArteryHeartbeatRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.remote.ArteryControlFormats.ArteryHeartbeatRsp) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required uint64 uid = 1;
      private long uid_ ;
      /**
       * <code>required uint64 uid = 1;</code>
       */
      public boolean hasUid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint64 uid = 1;</code>
       */
      public long getUid() {
        return uid_;
      }
      /**
       * <code>required uint64 uid = 1;</code>
       */
      public Builder setUid(long value) {
        bitField0_ |= 0x00000001;
        uid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint64 uid = 1;</code>
       */
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        uid_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ArteryHeartbeatRsp)
    }

    static {
      defaultInstance = new ArteryHeartbeatRsp(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:ArteryHeartbeatRsp)
  }

  private static akka.protobuf.Descriptors.Descriptor
    internal_static_Quarantined_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Quarantined_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_MessageWithAddress_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_MessageWithAddress_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_HandshakeReq_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_HandshakeReq_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_CompressionTableAdvertisement_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CompressionTableAdvertisement_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_CompressionTableAdvertisementAck_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CompressionTableAdvertisementAck_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_SystemMessageEnvelope_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_SystemMessageEnvelope_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_SystemMessageDeliveryAck_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_SystemMessageDeliveryAck_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_Address_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Address_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_UniqueAddress_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_UniqueAddress_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_ArteryHeartbeatRsp_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ArteryHeartbeatRsp_fieldAccessorTable;

  public static akka.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static akka.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\032ArteryControlFormats.proto\"G\n\013Quaranti" +
      "ned\022\034\n\004from\030\001 \002(\0132\016.UniqueAddress\022\032\n\002to\030" +
      "\002 \002(\0132\016.UniqueAddress\"5\n\022MessageWithAddr" +
      "ess\022\037\n\007address\030\001 \002(\0132\016.UniqueAddress\"B\n\014" +
      "HandshakeReq\022\034\n\004from\030\001 \002(\0132\016.UniqueAddre" +
      "ss\022\024\n\002to\030\002 \002(\0132\010.Address\"\204\001\n\035Compression" +
      "TableAdvertisement\022\034\n\004from\030\001 \002(\0132\016.Uniqu" +
      "eAddress\022\021\n\toriginUid\030\002 \002(\004\022\024\n\014tableVers" +
      "ion\030\003 \002(\r\022\014\n\004keys\030\004 \003(\t\022\016\n\006values\030\005 \003(\r\"" +
      "Q\n CompressionTableAdvertisementAck\022\034\n\004f",
      "rom\030\001 \002(\0132\016.UniqueAddress\022\017\n\007version\030\002 \002" +
      "(\r\"\212\001\n\025SystemMessageEnvelope\022\017\n\007message\030" +
      "\001 \002(\014\022\024\n\014serializerId\030\002 \002(\005\022\027\n\017messageMa" +
      "nifest\030\003 \001(\014\022\r\n\005seqNo\030\004 \002(\004\022\"\n\nackReplyT" +
      "o\030\005 \002(\0132\016.UniqueAddress\"G\n\030SystemMessage" +
      "DeliveryAck\022\r\n\005seqNo\030\001 \002(\004\022\034\n\004from\030\002 \002(\013" +
      "2\016.UniqueAddress\"K\n\007Address\022\020\n\010protocol\030" +
      "\001 \002(\t\022\016\n\006system\030\002 \002(\t\022\020\n\010hostname\030\003 \002(\t\022" +
      "\014\n\004port\030\004 \002(\r\"7\n\rUniqueAddress\022\031\n\007addres" +
      "s\030\001 \002(\0132\010.Address\022\013\n\003uid\030\002 \002(\004\"!\n\022Artery",
      "HeartbeatRsp\022\013\n\003uid\030\001 \002(\004B\017\n\013akka.remote" +
      "H\001"
    };
    akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public akka.protobuf.ExtensionRegistry assignDescriptors(
            akka.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_Quarantined_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_Quarantined_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Quarantined_descriptor,
              new java.lang.String[] { "From", "To", });
          internal_static_MessageWithAddress_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_MessageWithAddress_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_MessageWithAddress_descriptor,
              new java.lang.String[] { "Address", });
          internal_static_HandshakeReq_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_HandshakeReq_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_HandshakeReq_descriptor,
              new java.lang.String[] { "From", "To", });
          internal_static_CompressionTableAdvertisement_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_CompressionTableAdvertisement_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CompressionTableAdvertisement_descriptor,
              new java.lang.String[] { "From", "OriginUid", "TableVersion", "Keys", "Values", });
          internal_static_CompressionTableAdvertisementAck_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_CompressionTableAdvertisementAck_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CompressionTableAdvertisementAck_descriptor,
              new java.lang.String[] { "From", "Version", });
          internal_static_SystemMessageEnvelope_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_SystemMessageEnvelope_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_SystemMessageEnvelope_descriptor,
              new java.lang.String[] { "Message", "SerializerId", "MessageManifest", "SeqNo", "AckReplyTo", });
          internal_static_SystemMessageDeliveryAck_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_SystemMessageDeliveryAck_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_SystemMessageDeliveryAck_descriptor,
              new java.lang.String[] { "SeqNo", "From", });
          internal_static_Address_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_Address_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Address_descriptor,
              new java.lang.String[] { "Protocol", "System", "Hostname", "Port", });
          internal_static_UniqueAddress_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_UniqueAddress_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_UniqueAddress_descriptor,
              new java.lang.String[] { "Address", "Uid", });
          internal_static_ArteryHeartbeatRsp_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_ArteryHeartbeatRsp_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ArteryHeartbeatRsp_descriptor,
              new java.lang.String[] { "Uid", });
          return null;
        }
      };
    akka.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new akka.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }

  // @@protoc_insertion_point(outer_class_scope)
}
