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

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

package akka.cluster.sharding.protobuf.msg;

public final class ClusterShardingMessages {
  private ClusterShardingMessages() {}
  public static void registerAllExtensions(
      akka.protobufv3.internal.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      akka.protobufv3.internal.ExtensionRegistry registry) {
    registerAllExtensions(
        (akka.protobufv3.internal.ExtensionRegistryLite) registry);
  }
  public interface CoordinatorStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CoordinatorState)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
     */
    java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry> 
        getShardsList();
    /**
     * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
     */
    akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry getShards(int index);
    /**
     * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
     */
    int getShardsCount();
    /**
     * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
     */
    java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntryOrBuilder> 
        getShardsOrBuilderList();
    /**
     * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
     */
    akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntryOrBuilder getShardsOrBuilder(
        int index);

    /**
     * <code>repeated string regions = 2;</code>
     * @return A list containing the regions.
     */
    java.util.List<java.lang.String>
        getRegionsList();
    /**
     * <code>repeated string regions = 2;</code>
     * @return The count of regions.
     */
    int getRegionsCount();
    /**
     * <code>repeated string regions = 2;</code>
     * @param index The index of the element to return.
     * @return The regions at the given index.
     */
    java.lang.String getRegions(int index);
    /**
     * <code>repeated string regions = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the regions at the given index.
     */
    akka.protobufv3.internal.ByteString
        getRegionsBytes(int index);

    /**
     * <code>repeated string regionProxies = 3;</code>
     * @return A list containing the regionProxies.
     */
    java.util.List<java.lang.String>
        getRegionProxiesList();
    /**
     * <code>repeated string regionProxies = 3;</code>
     * @return The count of regionProxies.
     */
    int getRegionProxiesCount();
    /**
     * <code>repeated string regionProxies = 3;</code>
     * @param index The index of the element to return.
     * @return The regionProxies at the given index.
     */
    java.lang.String getRegionProxies(int index);
    /**
     * <code>repeated string regionProxies = 3;</code>
     * @param index The index of the value to return.
     * @return The bytes of the regionProxies at the given index.
     */
    akka.protobufv3.internal.ByteString
        getRegionProxiesBytes(int index);

    /**
     * <code>repeated string unallocatedShards = 4;</code>
     * @return A list containing the unallocatedShards.
     */
    java.util.List<java.lang.String>
        getUnallocatedShardsList();
    /**
     * <code>repeated string unallocatedShards = 4;</code>
     * @return The count of unallocatedShards.
     */
    int getUnallocatedShardsCount();
    /**
     * <code>repeated string unallocatedShards = 4;</code>
     * @param index The index of the element to return.
     * @return The unallocatedShards at the given index.
     */
    java.lang.String getUnallocatedShards(int index);
    /**
     * <code>repeated string unallocatedShards = 4;</code>
     * @param index The index of the value to return.
     * @return The bytes of the unallocatedShards at the given index.
     */
    akka.protobufv3.internal.ByteString
        getUnallocatedShardsBytes(int index);
  }
  /**
   * Protobuf type {@code CoordinatorState}
   */
  public  static final class CoordinatorState extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:CoordinatorState)
      CoordinatorStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CoordinatorState.newBuilder() to construct.
    private CoordinatorState(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CoordinatorState() {
      shards_ = java.util.Collections.emptyList();
      regions_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
      regionProxies_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
      unallocatedShards_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new CoordinatorState();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private CoordinatorState(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                shards_ = new java.util.ArrayList<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry>();
                mutable_bitField0_ |= 0x00000001;
              }
              shards_.add(
                  input.readMessage(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.PARSER, extensionRegistry));
              break;
            }
            case 18: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                regions_ = new akka.protobufv3.internal.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              regions_.add(bs);
              break;
            }
            case 26: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                regionProxies_ = new akka.protobufv3.internal.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              regionProxies_.add(bs);
              break;
            }
            case 34: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                unallocatedShards_ = new akka.protobufv3.internal.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              unallocatedShards_.add(bs);
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          shards_ = java.util.Collections.unmodifiableList(shards_);
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          regions_ = regions_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          regionProxies_ = regionProxies_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000008) != 0)) {
          unallocatedShards_ = unallocatedShards_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CoordinatorState_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CoordinatorState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.Builder.class);
    }

    public interface ShardEntryOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CoordinatorState.ShardEntry)
        akka.protobufv3.internal.MessageOrBuilder {

      /**
       * <code>required string shardId = 1;</code>
       * @return Whether the shardId field is set.
       */
      boolean hasShardId();
      /**
       * <code>required string shardId = 1;</code>
       * @return The shardId.
       */
      java.lang.String getShardId();
      /**
       * <code>required string shardId = 1;</code>
       * @return The bytes for shardId.
       */
      akka.protobufv3.internal.ByteString
          getShardIdBytes();

      /**
       * <code>required string regionRef = 2;</code>
       * @return Whether the regionRef field is set.
       */
      boolean hasRegionRef();
      /**
       * <code>required string regionRef = 2;</code>
       * @return The regionRef.
       */
      java.lang.String getRegionRef();
      /**
       * <code>required string regionRef = 2;</code>
       * @return The bytes for regionRef.
       */
      akka.protobufv3.internal.ByteString
          getRegionRefBytes();
    }
    /**
     * Protobuf type {@code CoordinatorState.ShardEntry}
     */
    public  static final class ShardEntry extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:CoordinatorState.ShardEntry)
        ShardEntryOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ShardEntry.newBuilder() to construct.
      private ShardEntry(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ShardEntry() {
        shardId_ = "";
        regionRef_ = "";
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new ShardEntry();
      }

      @java.lang.Override
      public final akka.protobufv3.internal.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private ShardEntry(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
            akka.protobufv3.internal.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                akka.protobufv3.internal.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                shardId_ = bs;
                break;
              }
              case 18: {
                akka.protobufv3.internal.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                regionRef_ = bs;
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new akka.protobufv3.internal.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CoordinatorState_ShardEntry_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CoordinatorState_ShardEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.Builder.class);
      }

      private int bitField0_;
      public static final int SHARDID_FIELD_NUMBER = 1;
      private volatile java.lang.Object shardId_;
      /**
       * <code>required string shardId = 1;</code>
       * @return Whether the shardId field is set.
       */
      public boolean hasShardId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string shardId = 1;</code>
       * @return The shardId.
       */
      public java.lang.String getShardId() {
        java.lang.Object ref = shardId_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobufv3.internal.ByteString bs = 
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            shardId_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string shardId = 1;</code>
       * @return The bytes for shardId.
       */
      public akka.protobufv3.internal.ByteString
          getShardIdBytes() {
        java.lang.Object ref = shardId_;
        if (ref instanceof java.lang.String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shardId_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }

      public static final int REGIONREF_FIELD_NUMBER = 2;
      private volatile java.lang.Object regionRef_;
      /**
       * <code>required string regionRef = 2;</code>
       * @return Whether the regionRef field is set.
       */
      public boolean hasRegionRef() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required string regionRef = 2;</code>
       * @return The regionRef.
       */
      public java.lang.String getRegionRef() {
        java.lang.Object ref = regionRef_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobufv3.internal.ByteString bs = 
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            regionRef_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string regionRef = 2;</code>
       * @return The bytes for regionRef.
       */
      public akka.protobufv3.internal.ByteString
          getRegionRefBytes() {
        java.lang.Object ref = regionRef_;
        if (ref instanceof java.lang.String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          regionRef_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }

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

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

      @java.lang.Override
      public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, shardId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, regionRef_);
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, shardId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(2, regionRef_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry)) {
          return super.equals(obj);
        }
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry) obj;

        if (hasShardId() != other.hasShardId()) return false;
        if (hasShardId()) {
          if (!getShardId()
              .equals(other.getShardId())) return false;
        }
        if (hasRegionRef() != other.hasRegionRef()) return false;
        if (hasRegionRef()) {
          if (!getRegionRef()
              .equals(other.getRegionRef())) return false;
        }
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasShardId()) {
          hash = (37 * hash) + SHARDID_FIELD_NUMBER;
          hash = (53 * hash) + getShardId().hashCode();
        }
        if (hasRegionRef()) {
          hash = (37 * hash) + REGIONREF_FIELD_NUMBER;
          hash = (53 * hash) + getRegionRef().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(
          java.nio.ByteBuffer data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(
          akka.protobufv3.internal.ByteString data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(
          byte[] data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(
          akka.protobufv3.internal.CodedInputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CoordinatorState.ShardEntry}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:CoordinatorState.ShardEntry)
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntryOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CoordinatorState_ShardEntry_descriptor;
        }

        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CoordinatorState_ShardEntry_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.Builder.class);
        }

        // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobufv3.internal.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          shardId_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          regionRef_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CoordinatorState_ShardEntry_descriptor;
        }

        @java.lang.Override
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry getDefaultInstanceForType() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.getDefaultInstance();
        }

        @java.lang.Override
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry build() {
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry buildPartial() {
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            to_bitField0_ |= 0x00000001;
          }
          result.shardId_ = shardId_;
          if (((from_bitField0_ & 0x00000002) != 0)) {
            to_bitField0_ |= 0x00000002;
          }
          result.regionRef_ = regionRef_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(akka.protobufv3.internal.Message other) {
          if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry) {
            return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry other) {
          if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.getDefaultInstance()) return this;
          if (other.hasShardId()) {
            bitField0_ |= 0x00000001;
            shardId_ = other.shardId_;
            onChanged();
          }
          if (other.hasRegionRef()) {
            bitField0_ |= 0x00000002;
            regionRef_ = other.regionRef_;
            onChanged();
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

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

        @java.lang.Override
        public Builder mergeFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.lang.Object shardId_ = "";
        /**
         * <code>required string shardId = 1;</code>
         * @return Whether the shardId field is set.
         */
        public boolean hasShardId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required string shardId = 1;</code>
         * @return The shardId.
         */
        public java.lang.String getShardId() {
          java.lang.Object ref = shardId_;
          if (!(ref instanceof java.lang.String)) {
            akka.protobufv3.internal.ByteString bs =
                (akka.protobufv3.internal.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              shardId_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string shardId = 1;</code>
         * @return The bytes for shardId.
         */
        public akka.protobufv3.internal.ByteString
            getShardIdBytes() {
          java.lang.Object ref = shardId_;
          if (ref instanceof String) {
            akka.protobufv3.internal.ByteString b = 
                akka.protobufv3.internal.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            shardId_ = b;
            return b;
          } else {
            return (akka.protobufv3.internal.ByteString) ref;
          }
        }
        /**
         * <code>required string shardId = 1;</code>
         * @param value The shardId to set.
         * @return This builder for chaining.
         */
        public Builder setShardId(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          shardId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required string shardId = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearShardId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          shardId_ = getDefaultInstance().getShardId();
          onChanged();
          return this;
        }
        /**
         * <code>required string shardId = 1;</code>
         * @param value The bytes for shardId to set.
         * @return This builder for chaining.
         */
        public Builder setShardIdBytes(
            akka.protobufv3.internal.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          shardId_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object regionRef_ = "";
        /**
         * <code>required string regionRef = 2;</code>
         * @return Whether the regionRef field is set.
         */
        public boolean hasRegionRef() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required string regionRef = 2;</code>
         * @return The regionRef.
         */
        public java.lang.String getRegionRef() {
          java.lang.Object ref = regionRef_;
          if (!(ref instanceof java.lang.String)) {
            akka.protobufv3.internal.ByteString bs =
                (akka.protobufv3.internal.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              regionRef_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string regionRef = 2;</code>
         * @return The bytes for regionRef.
         */
        public akka.protobufv3.internal.ByteString
            getRegionRefBytes() {
          java.lang.Object ref = regionRef_;
          if (ref instanceof String) {
            akka.protobufv3.internal.ByteString b = 
                akka.protobufv3.internal.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            regionRef_ = b;
            return b;
          } else {
            return (akka.protobufv3.internal.ByteString) ref;
          }
        }
        /**
         * <code>required string regionRef = 2;</code>
         * @param value The regionRef to set.
         * @return This builder for chaining.
         */
        public Builder setRegionRef(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          regionRef_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required string regionRef = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearRegionRef() {
          bitField0_ = (bitField0_ & ~0x00000002);
          regionRef_ = getDefaultInstance().getRegionRef();
          onChanged();
          return this;
        }
        /**
         * <code>required string regionRef = 2;</code>
         * @param value The bytes for regionRef to set.
         * @return This builder for chaining.
         */
        public Builder setRegionRefBytes(
            akka.protobufv3.internal.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          regionRef_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:CoordinatorState.ShardEntry)
      }

      // @@protoc_insertion_point(class_scope:CoordinatorState.ShardEntry)
      private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry();
      }

      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<ShardEntry>
          PARSER = new akka.protobufv3.internal.AbstractParser<ShardEntry>() {
        @java.lang.Override
        public ShardEntry parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          return new ShardEntry(input, extensionRegistry);
        }
      };

      public static akka.protobufv3.internal.Parser<ShardEntry> parser() {
        return PARSER;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Parser<ShardEntry> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int SHARDS_FIELD_NUMBER = 1;
    private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry> shards_;
    /**
     * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
     */
    public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry> getShardsList() {
      return shards_;
    }
    /**
     * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
     */
    public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntryOrBuilder> 
        getShardsOrBuilderList() {
      return shards_;
    }
    /**
     * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
     */
    public int getShardsCount() {
      return shards_.size();
    }
    /**
     * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
     */
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry getShards(int index) {
      return shards_.get(index);
    }
    /**
     * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
     */
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntryOrBuilder getShardsOrBuilder(
        int index) {
      return shards_.get(index);
    }

    public static final int REGIONS_FIELD_NUMBER = 2;
    private akka.protobufv3.internal.LazyStringList regions_;
    /**
     * <code>repeated string regions = 2;</code>
     * @return A list containing the regions.
     */
    public akka.protobufv3.internal.ProtocolStringList
        getRegionsList() {
      return regions_;
    }
    /**
     * <code>repeated string regions = 2;</code>
     * @return The count of regions.
     */
    public int getRegionsCount() {
      return regions_.size();
    }
    /**
     * <code>repeated string regions = 2;</code>
     * @param index The index of the element to return.
     * @return The regions at the given index.
     */
    public java.lang.String getRegions(int index) {
      return regions_.get(index);
    }
    /**
     * <code>repeated string regions = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the regions at the given index.
     */
    public akka.protobufv3.internal.ByteString
        getRegionsBytes(int index) {
      return regions_.getByteString(index);
    }

    public static final int REGIONPROXIES_FIELD_NUMBER = 3;
    private akka.protobufv3.internal.LazyStringList regionProxies_;
    /**
     * <code>repeated string regionProxies = 3;</code>
     * @return A list containing the regionProxies.
     */
    public akka.protobufv3.internal.ProtocolStringList
        getRegionProxiesList() {
      return regionProxies_;
    }
    /**
     * <code>repeated string regionProxies = 3;</code>
     * @return The count of regionProxies.
     */
    public int getRegionProxiesCount() {
      return regionProxies_.size();
    }
    /**
     * <code>repeated string regionProxies = 3;</code>
     * @param index The index of the element to return.
     * @return The regionProxies at the given index.
     */
    public java.lang.String getRegionProxies(int index) {
      return regionProxies_.get(index);
    }
    /**
     * <code>repeated string regionProxies = 3;</code>
     * @param index The index of the value to return.
     * @return The bytes of the regionProxies at the given index.
     */
    public akka.protobufv3.internal.ByteString
        getRegionProxiesBytes(int index) {
      return regionProxies_.getByteString(index);
    }

    public static final int UNALLOCATEDSHARDS_FIELD_NUMBER = 4;
    private akka.protobufv3.internal.LazyStringList unallocatedShards_;
    /**
     * <code>repeated string unallocatedShards = 4;</code>
     * @return A list containing the unallocatedShards.
     */
    public akka.protobufv3.internal.ProtocolStringList
        getUnallocatedShardsList() {
      return unallocatedShards_;
    }
    /**
     * <code>repeated string unallocatedShards = 4;</code>
     * @return The count of unallocatedShards.
     */
    public int getUnallocatedShardsCount() {
      return unallocatedShards_.size();
    }
    /**
     * <code>repeated string unallocatedShards = 4;</code>
     * @param index The index of the element to return.
     * @return The unallocatedShards at the given index.
     */
    public java.lang.String getUnallocatedShards(int index) {
      return unallocatedShards_.get(index);
    }
    /**
     * <code>repeated string unallocatedShards = 4;</code>
     * @param index The index of the value to return.
     * @return The bytes of the unallocatedShards at the given index.
     */
    public akka.protobufv3.internal.ByteString
        getUnallocatedShardsBytes(int index) {
      return unallocatedShards_.getByteString(index);
    }

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

      for (int i = 0; i < getShardsCount(); i++) {
        if (!getShards(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < shards_.size(); i++) {
        output.writeMessage(1, shards_.get(i));
      }
      for (int i = 0; i < regions_.size(); i++) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, regions_.getRaw(i));
      }
      for (int i = 0; i < regionProxies_.size(); i++) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 3, regionProxies_.getRaw(i));
      }
      for (int i = 0; i < unallocatedShards_.size(); i++) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 4, unallocatedShards_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < shards_.size(); i++) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, shards_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < regions_.size(); i++) {
          dataSize += computeStringSizeNoTag(regions_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getRegionsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < regionProxies_.size(); i++) {
          dataSize += computeStringSizeNoTag(regionProxies_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getRegionProxiesList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < unallocatedShards_.size(); i++) {
          dataSize += computeStringSizeNoTag(unallocatedShards_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getUnallocatedShardsList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState) obj;

      if (!getShardsList()
          .equals(other.getShardsList())) return false;
      if (!getRegionsList()
          .equals(other.getRegionsList())) return false;
      if (!getRegionProxiesList()
          .equals(other.getRegionProxiesList())) return false;
      if (!getUnallocatedShardsList()
          .equals(other.getUnallocatedShardsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getShardsCount() > 0) {
        hash = (37 * hash) + SHARDS_FIELD_NUMBER;
        hash = (53 * hash) + getShardsList().hashCode();
      }
      if (getRegionsCount() > 0) {
        hash = (37 * hash) + REGIONS_FIELD_NUMBER;
        hash = (53 * hash) + getRegionsList().hashCode();
      }
      if (getRegionProxiesCount() > 0) {
        hash = (37 * hash) + REGIONPROXIES_FIELD_NUMBER;
        hash = (53 * hash) + getRegionProxiesList().hashCode();
      }
      if (getUnallocatedShardsCount() > 0) {
        hash = (37 * hash) + UNALLOCATEDSHARDS_FIELD_NUMBER;
        hash = (53 * hash) + getUnallocatedShardsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CoordinatorState}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:CoordinatorState)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorStateOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CoordinatorState_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CoordinatorState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getShardsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (shardsBuilder_ == null) {
          shards_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          shardsBuilder_.clear();
        }
        regions_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        regionProxies_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        unallocatedShards_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CoordinatorState_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState(this);
        int from_bitField0_ = bitField0_;
        if (shardsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            shards_ = java.util.Collections.unmodifiableList(shards_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.shards_ = shards_;
        } else {
          result.shards_ = shardsBuilder_.build();
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          regions_ = regions_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.regions_ = regions_;
        if (((bitField0_ & 0x00000004) != 0)) {
          regionProxies_ = regionProxies_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.regionProxies_ = regionProxies_;
        if (((bitField0_ & 0x00000008) != 0)) {
          unallocatedShards_ = unallocatedShards_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.unallocatedShards_ = unallocatedShards_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.getDefaultInstance()) return this;
        if (shardsBuilder_ == null) {
          if (!other.shards_.isEmpty()) {
            if (shards_.isEmpty()) {
              shards_ = other.shards_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureShardsIsMutable();
              shards_.addAll(other.shards_);
            }
            onChanged();
          }
        } else {
          if (!other.shards_.isEmpty()) {
            if (shardsBuilder_.isEmpty()) {
              shardsBuilder_.dispose();
              shardsBuilder_ = null;
              shards_ = other.shards_;
              bitField0_ = (bitField0_ & ~0x00000001);
              shardsBuilder_ = 
                akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getShardsFieldBuilder() : null;
            } else {
              shardsBuilder_.addAllMessages(other.shards_);
            }
          }
        }
        if (!other.regions_.isEmpty()) {
          if (regions_.isEmpty()) {
            regions_ = other.regions_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureRegionsIsMutable();
            regions_.addAll(other.regions_);
          }
          onChanged();
        }
        if (!other.regionProxies_.isEmpty()) {
          if (regionProxies_.isEmpty()) {
            regionProxies_ = other.regionProxies_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureRegionProxiesIsMutable();
            regionProxies_.addAll(other.regionProxies_);
          }
          onChanged();
        }
        if (!other.unallocatedShards_.isEmpty()) {
          if (unallocatedShards_.isEmpty()) {
            unallocatedShards_ = other.unallocatedShards_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureUnallocatedShardsIsMutable();
            unallocatedShards_.addAll(other.unallocatedShards_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        for (int i = 0; i < getShardsCount(); i++) {
          if (!getShards(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry> shards_ =
        java.util.Collections.emptyList();
      private void ensureShardsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          shards_ = new java.util.ArrayList<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry>(shards_);
          bitField0_ |= 0x00000001;
         }
      }

      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntryOrBuilder> shardsBuilder_;

      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry> getShardsList() {
        if (shardsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(shards_);
        } else {
          return shardsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public int getShardsCount() {
        if (shardsBuilder_ == null) {
          return shards_.size();
        } else {
          return shardsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry getShards(int index) {
        if (shardsBuilder_ == null) {
          return shards_.get(index);
        } else {
          return shardsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public Builder setShards(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry value) {
        if (shardsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureShardsIsMutable();
          shards_.set(index, value);
          onChanged();
        } else {
          shardsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public Builder setShards(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.Builder builderForValue) {
        if (shardsBuilder_ == null) {
          ensureShardsIsMutable();
          shards_.set(index, builderForValue.build());
          onChanged();
        } else {
          shardsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public Builder addShards(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry value) {
        if (shardsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureShardsIsMutable();
          shards_.add(value);
          onChanged();
        } else {
          shardsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public Builder addShards(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry value) {
        if (shardsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureShardsIsMutable();
          shards_.add(index, value);
          onChanged();
        } else {
          shardsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public Builder addShards(
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.Builder builderForValue) {
        if (shardsBuilder_ == null) {
          ensureShardsIsMutable();
          shards_.add(builderForValue.build());
          onChanged();
        } else {
          shardsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public Builder addShards(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.Builder builderForValue) {
        if (shardsBuilder_ == null) {
          ensureShardsIsMutable();
          shards_.add(index, builderForValue.build());
          onChanged();
        } else {
          shardsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public Builder addAllShards(
          java.lang.Iterable<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry> values) {
        if (shardsBuilder_ == null) {
          ensureShardsIsMutable();
          akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
              values, shards_);
          onChanged();
        } else {
          shardsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public Builder clearShards() {
        if (shardsBuilder_ == null) {
          shards_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          shardsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public Builder removeShards(int index) {
        if (shardsBuilder_ == null) {
          ensureShardsIsMutable();
          shards_.remove(index);
          onChanged();
        } else {
          shardsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.Builder getShardsBuilder(
          int index) {
        return getShardsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntryOrBuilder getShardsOrBuilder(
          int index) {
        if (shardsBuilder_ == null) {
          return shards_.get(index);  } else {
          return shardsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntryOrBuilder> 
           getShardsOrBuilderList() {
        if (shardsBuilder_ != null) {
          return shardsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(shards_);
        }
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.Builder addShardsBuilder() {
        return getShardsFieldBuilder().addBuilder(
            akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.Builder addShardsBuilder(
          int index) {
        return getShardsFieldBuilder().addBuilder(
            index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.Builder> 
           getShardsBuilderList() {
        return getShardsFieldBuilder().getBuilderList();
      }
      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntryOrBuilder> 
          getShardsFieldBuilder() {
        if (shardsBuilder_ == null) {
          shardsBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntryOrBuilder>(
                  shards_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          shards_ = null;
        }
        return shardsBuilder_;
      }

      private akka.protobufv3.internal.LazyStringList regions_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
      private void ensureRegionsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          regions_ = new akka.protobufv3.internal.LazyStringArrayList(regions_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated string regions = 2;</code>
       * @return A list containing the regions.
       */
      public akka.protobufv3.internal.ProtocolStringList
          getRegionsList() {
        return regions_.getUnmodifiableView();
      }
      /**
       * <code>repeated string regions = 2;</code>
       * @return The count of regions.
       */
      public int getRegionsCount() {
        return regions_.size();
      }
      /**
       * <code>repeated string regions = 2;</code>
       * @param index The index of the element to return.
       * @return The regions at the given index.
       */
      public java.lang.String getRegions(int index) {
        return regions_.get(index);
      }
      /**
       * <code>repeated string regions = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the regions at the given index.
       */
      public akka.protobufv3.internal.ByteString
          getRegionsBytes(int index) {
        return regions_.getByteString(index);
      }
      /**
       * <code>repeated string regions = 2;</code>
       * @param index The index to set the value at.
       * @param value The regions to set.
       * @return This builder for chaining.
       */
      public Builder setRegions(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRegionsIsMutable();
        regions_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regions = 2;</code>
       * @param value The regions to add.
       * @return This builder for chaining.
       */
      public Builder addRegions(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRegionsIsMutable();
        regions_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regions = 2;</code>
       * @param values The regions to add.
       * @return This builder for chaining.
       */
      public Builder addAllRegions(
          java.lang.Iterable<java.lang.String> values) {
        ensureRegionsIsMutable();
        akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
            values, regions_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regions = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRegions() {
        regions_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regions = 2;</code>
       * @param value The bytes of the regions to add.
       * @return This builder for chaining.
       */
      public Builder addRegionsBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRegionsIsMutable();
        regions_.add(value);
        onChanged();
        return this;
      }

      private akka.protobufv3.internal.LazyStringList regionProxies_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
      private void ensureRegionProxiesIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          regionProxies_ = new akka.protobufv3.internal.LazyStringArrayList(regionProxies_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       * @return A list containing the regionProxies.
       */
      public akka.protobufv3.internal.ProtocolStringList
          getRegionProxiesList() {
        return regionProxies_.getUnmodifiableView();
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       * @return The count of regionProxies.
       */
      public int getRegionProxiesCount() {
        return regionProxies_.size();
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       * @param index The index of the element to return.
       * @return The regionProxies at the given index.
       */
      public java.lang.String getRegionProxies(int index) {
        return regionProxies_.get(index);
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       * @param index The index of the value to return.
       * @return The bytes of the regionProxies at the given index.
       */
      public akka.protobufv3.internal.ByteString
          getRegionProxiesBytes(int index) {
        return regionProxies_.getByteString(index);
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       * @param index The index to set the value at.
       * @param value The regionProxies to set.
       * @return This builder for chaining.
       */
      public Builder setRegionProxies(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRegionProxiesIsMutable();
        regionProxies_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       * @param value The regionProxies to add.
       * @return This builder for chaining.
       */
      public Builder addRegionProxies(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRegionProxiesIsMutable();
        regionProxies_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       * @param values The regionProxies to add.
       * @return This builder for chaining.
       */
      public Builder addAllRegionProxies(
          java.lang.Iterable<java.lang.String> values) {
        ensureRegionProxiesIsMutable();
        akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
            values, regionProxies_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRegionProxies() {
        regionProxies_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       * @param value The bytes of the regionProxies to add.
       * @return This builder for chaining.
       */
      public Builder addRegionProxiesBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRegionProxiesIsMutable();
        regionProxies_.add(value);
        onChanged();
        return this;
      }

      private akka.protobufv3.internal.LazyStringList unallocatedShards_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
      private void ensureUnallocatedShardsIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          unallocatedShards_ = new akka.protobufv3.internal.LazyStringArrayList(unallocatedShards_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       * @return A list containing the unallocatedShards.
       */
      public akka.protobufv3.internal.ProtocolStringList
          getUnallocatedShardsList() {
        return unallocatedShards_.getUnmodifiableView();
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       * @return The count of unallocatedShards.
       */
      public int getUnallocatedShardsCount() {
        return unallocatedShards_.size();
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       * @param index The index of the element to return.
       * @return The unallocatedShards at the given index.
       */
      public java.lang.String getUnallocatedShards(int index) {
        return unallocatedShards_.get(index);
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       * @param index The index of the value to return.
       * @return The bytes of the unallocatedShards at the given index.
       */
      public akka.protobufv3.internal.ByteString
          getUnallocatedShardsBytes(int index) {
        return unallocatedShards_.getByteString(index);
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       * @param index The index to set the value at.
       * @param value The unallocatedShards to set.
       * @return This builder for chaining.
       */
      public Builder setUnallocatedShards(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureUnallocatedShardsIsMutable();
        unallocatedShards_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       * @param value The unallocatedShards to add.
       * @return This builder for chaining.
       */
      public Builder addUnallocatedShards(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureUnallocatedShardsIsMutable();
        unallocatedShards_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       * @param values The unallocatedShards to add.
       * @return This builder for chaining.
       */
      public Builder addAllUnallocatedShards(
          java.lang.Iterable<java.lang.String> values) {
        ensureUnallocatedShardsIsMutable();
        akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
            values, unallocatedShards_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUnallocatedShards() {
        unallocatedShards_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       * @param value The bytes of the unallocatedShards to add.
       * @return This builder for chaining.
       */
      public Builder addUnallocatedShardsBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureUnallocatedShardsIsMutable();
        unallocatedShards_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:CoordinatorState)
    }

    // @@protoc_insertion_point(class_scope:CoordinatorState)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<CoordinatorState>
        PARSER = new akka.protobufv3.internal.AbstractParser<CoordinatorState>() {
      @java.lang.Override
      public CoordinatorState parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new CoordinatorState(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<CoordinatorState> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<CoordinatorState> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ActorRefMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ActorRefMessage)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string ref = 1;</code>
     * @return Whether the ref field is set.
     */
    boolean hasRef();
    /**
     * <code>required string ref = 1;</code>
     * @return The ref.
     */
    java.lang.String getRef();
    /**
     * <code>required string ref = 1;</code>
     * @return The bytes for ref.
     */
    akka.protobufv3.internal.ByteString
        getRefBytes();
  }
  /**
   * Protobuf type {@code ActorRefMessage}
   */
  public  static final class ActorRefMessage extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ActorRefMessage)
      ActorRefMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ActorRefMessage.newBuilder() to construct.
    private ActorRefMessage(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ActorRefMessage() {
      ref_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new ActorRefMessage();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ActorRefMessage(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              ref_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ActorRefMessage_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ActorRefMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage.Builder.class);
    }

    private int bitField0_;
    public static final int REF_FIELD_NUMBER = 1;
    private volatile java.lang.Object ref_;
    /**
     * <code>required string ref = 1;</code>
     * @return Whether the ref field is set.
     */
    public boolean hasRef() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string ref = 1;</code>
     * @return The ref.
     */
    public java.lang.String getRef() {
      java.lang.Object ref = ref_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          ref_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string ref = 1;</code>
     * @return The bytes for ref.
     */
    public akka.protobufv3.internal.ByteString
        getRefBytes() {
      java.lang.Object ref = ref_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ref_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, ref_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, ref_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage) obj;

      if (hasRef() != other.hasRef()) return false;
      if (hasRef()) {
        if (!getRef()
            .equals(other.getRef())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRef()) {
        hash = (37 * hash) + REF_FIELD_NUMBER;
        hash = (53 * hash) + getRef().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ActorRefMessage}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ActorRefMessage)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessageOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ActorRefMessage_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ActorRefMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        ref_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ActorRefMessage_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ref_ = ref_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage.getDefaultInstance()) return this;
        if (other.hasRef()) {
          bitField0_ |= 0x00000001;
          ref_ = other.ref_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object ref_ = "";
      /**
       * <code>required string ref = 1;</code>
       * @return Whether the ref field is set.
       */
      public boolean hasRef() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string ref = 1;</code>
       * @return The ref.
       */
      public java.lang.String getRef() {
        java.lang.Object ref = ref_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            ref_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string ref = 1;</code>
       * @return The bytes for ref.
       */
      public akka.protobufv3.internal.ByteString
          getRefBytes() {
        java.lang.Object ref = ref_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ref_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string ref = 1;</code>
       * @param value The ref to set.
       * @return This builder for chaining.
       */
      public Builder setRef(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        ref_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string ref = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRef() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ref_ = getDefaultInstance().getRef();
        onChanged();
        return this;
      }
      /**
       * <code>required string ref = 1;</code>
       * @param value The bytes for ref to set.
       * @return This builder for chaining.
       */
      public Builder setRefBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        ref_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ActorRefMessage)
    }

    // @@protoc_insertion_point(class_scope:ActorRefMessage)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<ActorRefMessage>
        PARSER = new akka.protobufv3.internal.AbstractParser<ActorRefMessage>() {
      @java.lang.Override
      public ActorRefMessage parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new ActorRefMessage(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<ActorRefMessage> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<ActorRefMessage> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ShardIdMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ShardIdMessage)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string shard = 1;</code>
     * @return Whether the shard field is set.
     */
    boolean hasShard();
    /**
     * <code>required string shard = 1;</code>
     * @return The shard.
     */
    java.lang.String getShard();
    /**
     * <code>required string shard = 1;</code>
     * @return The bytes for shard.
     */
    akka.protobufv3.internal.ByteString
        getShardBytes();
  }
  /**
   * Protobuf type {@code ShardIdMessage}
   */
  public  static final class ShardIdMessage extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ShardIdMessage)
      ShardIdMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ShardIdMessage.newBuilder() to construct.
    private ShardIdMessage(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ShardIdMessage() {
      shard_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new ShardIdMessage();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ShardIdMessage(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              shard_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardIdMessage_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardIdMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage.Builder.class);
    }

    private int bitField0_;
    public static final int SHARD_FIELD_NUMBER = 1;
    private volatile java.lang.Object shard_;
    /**
     * <code>required string shard = 1;</code>
     * @return Whether the shard field is set.
     */
    public boolean hasShard() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string shard = 1;</code>
     * @return The shard.
     */
    public java.lang.String getShard() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          shard_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string shard = 1;</code>
     * @return The bytes for shard.
     */
    public akka.protobufv3.internal.ByteString
        getShardBytes() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shard_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, shard_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, shard_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage) obj;

      if (hasShard() != other.hasShard()) return false;
      if (hasShard()) {
        if (!getShard()
            .equals(other.getShard())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasShard()) {
        hash = (37 * hash) + SHARD_FIELD_NUMBER;
        hash = (53 * hash) + getShard().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ShardIdMessage}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ShardIdMessage)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessageOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardIdMessage_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardIdMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        shard_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardIdMessage_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.shard_ = shard_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage.getDefaultInstance()) return this;
        if (other.hasShard()) {
          bitField0_ |= 0x00000001;
          shard_ = other.shard_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object shard_ = "";
      /**
       * <code>required string shard = 1;</code>
       * @return Whether the shard field is set.
       */
      public boolean hasShard() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string shard = 1;</code>
       * @return The shard.
       */
      public java.lang.String getShard() {
        java.lang.Object ref = shard_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            shard_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       * @return The bytes for shard.
       */
      public akka.protobufv3.internal.ByteString
          getShardBytes() {
        java.lang.Object ref = shard_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shard_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       * @param value The shard to set.
       * @return This builder for chaining.
       */
      public Builder setShard(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearShard() {
        bitField0_ = (bitField0_ & ~0x00000001);
        shard_ = getDefaultInstance().getShard();
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       * @param value The bytes for shard to set.
       * @return This builder for chaining.
       */
      public Builder setShardBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ShardIdMessage)
    }

    // @@protoc_insertion_point(class_scope:ShardIdMessage)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<ShardIdMessage>
        PARSER = new akka.protobufv3.internal.AbstractParser<ShardIdMessage>() {
      @java.lang.Override
      public ShardIdMessage parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new ShardIdMessage(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<ShardIdMessage> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<ShardIdMessage> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ShardHomeAllocatedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ShardHomeAllocated)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string shard = 1;</code>
     * @return Whether the shard field is set.
     */
    boolean hasShard();
    /**
     * <code>required string shard = 1;</code>
     * @return The shard.
     */
    java.lang.String getShard();
    /**
     * <code>required string shard = 1;</code>
     * @return The bytes for shard.
     */
    akka.protobufv3.internal.ByteString
        getShardBytes();

    /**
     * <code>required string region = 2;</code>
     * @return Whether the region field is set.
     */
    boolean hasRegion();
    /**
     * <code>required string region = 2;</code>
     * @return The region.
     */
    java.lang.String getRegion();
    /**
     * <code>required string region = 2;</code>
     * @return The bytes for region.
     */
    akka.protobufv3.internal.ByteString
        getRegionBytes();
  }
  /**
   * Protobuf type {@code ShardHomeAllocated}
   */
  public  static final class ShardHomeAllocated extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ShardHomeAllocated)
      ShardHomeAllocatedOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ShardHomeAllocated.newBuilder() to construct.
    private ShardHomeAllocated(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ShardHomeAllocated() {
      shard_ = "";
      region_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new ShardHomeAllocated();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ShardHomeAllocated(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              shard_ = bs;
              break;
            }
            case 18: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              region_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomeAllocated_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomeAllocated_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated.Builder.class);
    }

    private int bitField0_;
    public static final int SHARD_FIELD_NUMBER = 1;
    private volatile java.lang.Object shard_;
    /**
     * <code>required string shard = 1;</code>
     * @return Whether the shard field is set.
     */
    public boolean hasShard() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string shard = 1;</code>
     * @return The shard.
     */
    public java.lang.String getShard() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          shard_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string shard = 1;</code>
     * @return The bytes for shard.
     */
    public akka.protobufv3.internal.ByteString
        getShardBytes() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shard_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int REGION_FIELD_NUMBER = 2;
    private volatile java.lang.Object region_;
    /**
     * <code>required string region = 2;</code>
     * @return Whether the region field is set.
     */
    public boolean hasRegion() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required string region = 2;</code>
     * @return The region.
     */
    public java.lang.String getRegion() {
      java.lang.Object ref = region_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          region_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string region = 2;</code>
     * @return The bytes for region.
     */
    public akka.protobufv3.internal.ByteString
        getRegionBytes() {
      java.lang.Object ref = region_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        region_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, shard_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, region_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, shard_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(2, region_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated) obj;

      if (hasShard() != other.hasShard()) return false;
      if (hasShard()) {
        if (!getShard()
            .equals(other.getShard())) return false;
      }
      if (hasRegion() != other.hasRegion()) return false;
      if (hasRegion()) {
        if (!getRegion()
            .equals(other.getRegion())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasShard()) {
        hash = (37 * hash) + SHARD_FIELD_NUMBER;
        hash = (53 * hash) + getShard().hashCode();
      }
      if (hasRegion()) {
        hash = (37 * hash) + REGION_FIELD_NUMBER;
        hash = (53 * hash) + getRegion().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ShardHomeAllocated}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ShardHomeAllocated)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocatedOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomeAllocated_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomeAllocated_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        shard_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        region_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomeAllocated_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.shard_ = shard_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.region_ = region_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated.getDefaultInstance()) return this;
        if (other.hasShard()) {
          bitField0_ |= 0x00000001;
          shard_ = other.shard_;
          onChanged();
        }
        if (other.hasRegion()) {
          bitField0_ |= 0x00000002;
          region_ = other.region_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object shard_ = "";
      /**
       * <code>required string shard = 1;</code>
       * @return Whether the shard field is set.
       */
      public boolean hasShard() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string shard = 1;</code>
       * @return The shard.
       */
      public java.lang.String getShard() {
        java.lang.Object ref = shard_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            shard_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       * @return The bytes for shard.
       */
      public akka.protobufv3.internal.ByteString
          getShardBytes() {
        java.lang.Object ref = shard_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shard_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       * @param value The shard to set.
       * @return This builder for chaining.
       */
      public Builder setShard(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearShard() {
        bitField0_ = (bitField0_ & ~0x00000001);
        shard_ = getDefaultInstance().getShard();
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       * @param value The bytes for shard to set.
       * @return This builder for chaining.
       */
      public Builder setShardBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object region_ = "";
      /**
       * <code>required string region = 2;</code>
       * @return Whether the region field is set.
       */
      public boolean hasRegion() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required string region = 2;</code>
       * @return The region.
       */
      public java.lang.String getRegion() {
        java.lang.Object ref = region_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            region_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string region = 2;</code>
       * @return The bytes for region.
       */
      public akka.protobufv3.internal.ByteString
          getRegionBytes() {
        java.lang.Object ref = region_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          region_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string region = 2;</code>
       * @param value The region to set.
       * @return This builder for chaining.
       */
      public Builder setRegion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        region_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string region = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRegion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        region_ = getDefaultInstance().getRegion();
        onChanged();
        return this;
      }
      /**
       * <code>required string region = 2;</code>
       * @param value The bytes for region to set.
       * @return This builder for chaining.
       */
      public Builder setRegionBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        region_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ShardHomeAllocated)
    }

    // @@protoc_insertion_point(class_scope:ShardHomeAllocated)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<ShardHomeAllocated>
        PARSER = new akka.protobufv3.internal.AbstractParser<ShardHomeAllocated>() {
      @java.lang.Override
      public ShardHomeAllocated parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new ShardHomeAllocated(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<ShardHomeAllocated> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<ShardHomeAllocated> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ShardHomeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ShardHome)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string shard = 1;</code>
     * @return Whether the shard field is set.
     */
    boolean hasShard();
    /**
     * <code>required string shard = 1;</code>
     * @return The shard.
     */
    java.lang.String getShard();
    /**
     * <code>required string shard = 1;</code>
     * @return The bytes for shard.
     */
    akka.protobufv3.internal.ByteString
        getShardBytes();

    /**
     * <code>required string region = 2;</code>
     * @return Whether the region field is set.
     */
    boolean hasRegion();
    /**
     * <code>required string region = 2;</code>
     * @return The region.
     */
    java.lang.String getRegion();
    /**
     * <code>required string region = 2;</code>
     * @return The bytes for region.
     */
    akka.protobufv3.internal.ByteString
        getRegionBytes();
  }
  /**
   * Protobuf type {@code ShardHome}
   */
  public  static final class ShardHome extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ShardHome)
      ShardHomeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ShardHome.newBuilder() to construct.
    private ShardHome(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ShardHome() {
      shard_ = "";
      region_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new ShardHome();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ShardHome(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              shard_ = bs;
              break;
            }
            case 18: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              region_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHome_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHome_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome.Builder.class);
    }

    private int bitField0_;
    public static final int SHARD_FIELD_NUMBER = 1;
    private volatile java.lang.Object shard_;
    /**
     * <code>required string shard = 1;</code>
     * @return Whether the shard field is set.
     */
    public boolean hasShard() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string shard = 1;</code>
     * @return The shard.
     */
    public java.lang.String getShard() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          shard_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string shard = 1;</code>
     * @return The bytes for shard.
     */
    public akka.protobufv3.internal.ByteString
        getShardBytes() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shard_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int REGION_FIELD_NUMBER = 2;
    private volatile java.lang.Object region_;
    /**
     * <code>required string region = 2;</code>
     * @return Whether the region field is set.
     */
    public boolean hasRegion() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required string region = 2;</code>
     * @return The region.
     */
    public java.lang.String getRegion() {
      java.lang.Object ref = region_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          region_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string region = 2;</code>
     * @return The bytes for region.
     */
    public akka.protobufv3.internal.ByteString
        getRegionBytes() {
      java.lang.Object ref = region_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        region_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, shard_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, region_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, shard_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(2, region_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome) obj;

      if (hasShard() != other.hasShard()) return false;
      if (hasShard()) {
        if (!getShard()
            .equals(other.getShard())) return false;
      }
      if (hasRegion() != other.hasRegion()) return false;
      if (hasRegion()) {
        if (!getRegion()
            .equals(other.getRegion())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasShard()) {
        hash = (37 * hash) + SHARD_FIELD_NUMBER;
        hash = (53 * hash) + getShard().hashCode();
      }
      if (hasRegion()) {
        hash = (37 * hash) + REGION_FIELD_NUMBER;
        hash = (53 * hash) + getRegion().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ShardHome}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ShardHome)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHome_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHome_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        shard_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        region_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHome_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.shard_ = shard_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.region_ = region_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome.getDefaultInstance()) return this;
        if (other.hasShard()) {
          bitField0_ |= 0x00000001;
          shard_ = other.shard_;
          onChanged();
        }
        if (other.hasRegion()) {
          bitField0_ |= 0x00000002;
          region_ = other.region_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object shard_ = "";
      /**
       * <code>required string shard = 1;</code>
       * @return Whether the shard field is set.
       */
      public boolean hasShard() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string shard = 1;</code>
       * @return The shard.
       */
      public java.lang.String getShard() {
        java.lang.Object ref = shard_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            shard_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       * @return The bytes for shard.
       */
      public akka.protobufv3.internal.ByteString
          getShardBytes() {
        java.lang.Object ref = shard_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shard_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       * @param value The shard to set.
       * @return This builder for chaining.
       */
      public Builder setShard(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearShard() {
        bitField0_ = (bitField0_ & ~0x00000001);
        shard_ = getDefaultInstance().getShard();
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       * @param value The bytes for shard to set.
       * @return This builder for chaining.
       */
      public Builder setShardBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object region_ = "";
      /**
       * <code>required string region = 2;</code>
       * @return Whether the region field is set.
       */
      public boolean hasRegion() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required string region = 2;</code>
       * @return The region.
       */
      public java.lang.String getRegion() {
        java.lang.Object ref = region_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            region_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string region = 2;</code>
       * @return The bytes for region.
       */
      public akka.protobufv3.internal.ByteString
          getRegionBytes() {
        java.lang.Object ref = region_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          region_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string region = 2;</code>
       * @param value The region to set.
       * @return This builder for chaining.
       */
      public Builder setRegion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        region_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string region = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRegion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        region_ = getDefaultInstance().getRegion();
        onChanged();
        return this;
      }
      /**
       * <code>required string region = 2;</code>
       * @param value The bytes for region to set.
       * @return This builder for chaining.
       */
      public Builder setRegionBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        region_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ShardHome)
    }

    // @@protoc_insertion_point(class_scope:ShardHome)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<ShardHome>
        PARSER = new akka.protobufv3.internal.AbstractParser<ShardHome>() {
      @java.lang.Override
      public ShardHome parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new ShardHome(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<ShardHome> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<ShardHome> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface EntityStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:EntityState)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>repeated string entities = 1;</code>
     * @return A list containing the entities.
     */
    java.util.List<java.lang.String>
        getEntitiesList();
    /**
     * <code>repeated string entities = 1;</code>
     * @return The count of entities.
     */
    int getEntitiesCount();
    /**
     * <code>repeated string entities = 1;</code>
     * @param index The index of the element to return.
     * @return The entities at the given index.
     */
    java.lang.String getEntities(int index);
    /**
     * <code>repeated string entities = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the entities at the given index.
     */
    akka.protobufv3.internal.ByteString
        getEntitiesBytes(int index);
  }
  /**
   * Protobuf type {@code EntityState}
   */
  public  static final class EntityState extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:EntityState)
      EntityStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use EntityState.newBuilder() to construct.
    private EntityState(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private EntityState() {
      entities_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new EntityState();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private EntityState(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                entities_ = new akka.protobufv3.internal.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              entities_.add(bs);
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          entities_ = entities_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityState_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState.Builder.class);
    }

    public static final int ENTITIES_FIELD_NUMBER = 1;
    private akka.protobufv3.internal.LazyStringList entities_;
    /**
     * <code>repeated string entities = 1;</code>
     * @return A list containing the entities.
     */
    public akka.protobufv3.internal.ProtocolStringList
        getEntitiesList() {
      return entities_;
    }
    /**
     * <code>repeated string entities = 1;</code>
     * @return The count of entities.
     */
    public int getEntitiesCount() {
      return entities_.size();
    }
    /**
     * <code>repeated string entities = 1;</code>
     * @param index The index of the element to return.
     * @return The entities at the given index.
     */
    public java.lang.String getEntities(int index) {
      return entities_.get(index);
    }
    /**
     * <code>repeated string entities = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the entities at the given index.
     */
    public akka.protobufv3.internal.ByteString
        getEntitiesBytes(int index) {
      return entities_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < entities_.size(); i++) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, entities_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < entities_.size(); i++) {
          dataSize += computeStringSizeNoTag(entities_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getEntitiesList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getEntitiesCount() > 0) {
        hash = (37 * hash) + ENTITIES_FIELD_NUMBER;
        hash = (53 * hash) + getEntitiesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code EntityState}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:EntityState)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStateOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityState_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        entities_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityState_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          entities_ = entities_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.entities_ = entities_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState.getDefaultInstance()) return this;
        if (!other.entities_.isEmpty()) {
          if (entities_.isEmpty()) {
            entities_ = other.entities_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureEntitiesIsMutable();
            entities_.addAll(other.entities_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.protobufv3.internal.LazyStringList entities_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
      private void ensureEntitiesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          entities_ = new akka.protobufv3.internal.LazyStringArrayList(entities_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated string entities = 1;</code>
       * @return A list containing the entities.
       */
      public akka.protobufv3.internal.ProtocolStringList
          getEntitiesList() {
        return entities_.getUnmodifiableView();
      }
      /**
       * <code>repeated string entities = 1;</code>
       * @return The count of entities.
       */
      public int getEntitiesCount() {
        return entities_.size();
      }
      /**
       * <code>repeated string entities = 1;</code>
       * @param index The index of the element to return.
       * @return The entities at the given index.
       */
      public java.lang.String getEntities(int index) {
        return entities_.get(index);
      }
      /**
       * <code>repeated string entities = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the entities at the given index.
       */
      public akka.protobufv3.internal.ByteString
          getEntitiesBytes(int index) {
        return entities_.getByteString(index);
      }
      /**
       * <code>repeated string entities = 1;</code>
       * @param index The index to set the value at.
       * @param value The entities to set.
       * @return This builder for chaining.
       */
      public Builder setEntities(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntitiesIsMutable();
        entities_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entities = 1;</code>
       * @param value The entities to add.
       * @return This builder for chaining.
       */
      public Builder addEntities(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntitiesIsMutable();
        entities_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entities = 1;</code>
       * @param values The entities to add.
       * @return This builder for chaining.
       */
      public Builder addAllEntities(
          java.lang.Iterable<java.lang.String> values) {
        ensureEntitiesIsMutable();
        akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
            values, entities_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entities = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearEntities() {
        entities_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entities = 1;</code>
       * @param value The bytes of the entities to add.
       * @return This builder for chaining.
       */
      public Builder addEntitiesBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntitiesIsMutable();
        entities_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:EntityState)
    }

    // @@protoc_insertion_point(class_scope:EntityState)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<EntityState>
        PARSER = new akka.protobufv3.internal.AbstractParser<EntityState>() {
      @java.lang.Override
      public EntityState parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new EntityState(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<EntityState> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<EntityState> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface EntityStartedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:EntityStarted)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string entityId = 1;</code>
     * @return Whether the entityId field is set.
     */
    boolean hasEntityId();
    /**
     * <code>required string entityId = 1;</code>
     * @return The entityId.
     */
    java.lang.String getEntityId();
    /**
     * <code>required string entityId = 1;</code>
     * @return The bytes for entityId.
     */
    akka.protobufv3.internal.ByteString
        getEntityIdBytes();
  }
  /**
   * <pre>
   * not written anymore but kept for backwards compatibility
   * </pre>
   *
   * Protobuf type {@code EntityStarted}
   */
  public  static final class EntityStarted extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:EntityStarted)
      EntityStartedOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use EntityStarted.newBuilder() to construct.
    private EntityStarted(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private EntityStarted() {
      entityId_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new EntityStarted();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private EntityStarted(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              entityId_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStarted_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStarted_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted.Builder.class);
    }

    private int bitField0_;
    public static final int ENTITYID_FIELD_NUMBER = 1;
    private volatile java.lang.Object entityId_;
    /**
     * <code>required string entityId = 1;</code>
     * @return Whether the entityId field is set.
     */
    public boolean hasEntityId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string entityId = 1;</code>
     * @return The entityId.
     */
    public java.lang.String getEntityId() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          entityId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string entityId = 1;</code>
     * @return The bytes for entityId.
     */
    public akka.protobufv3.internal.ByteString
        getEntityIdBytes() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        entityId_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, entityId_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, entityId_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted) obj;

      if (hasEntityId() != other.hasEntityId()) return false;
      if (hasEntityId()) {
        if (!getEntityId()
            .equals(other.getEntityId())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasEntityId()) {
        hash = (37 * hash) + ENTITYID_FIELD_NUMBER;
        hash = (53 * hash) + getEntityId().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * not written anymore but kept for backwards compatibility
     * </pre>
     *
     * Protobuf type {@code EntityStarted}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:EntityStarted)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStartedOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStarted_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStarted_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        entityId_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStarted_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entityId_ = entityId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted.getDefaultInstance()) return this;
        if (other.hasEntityId()) {
          bitField0_ |= 0x00000001;
          entityId_ = other.entityId_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object entityId_ = "";
      /**
       * <code>required string entityId = 1;</code>
       * @return Whether the entityId field is set.
       */
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return The entityId.
       */
      public java.lang.String getEntityId() {
        java.lang.Object ref = entityId_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            entityId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return The bytes for entityId.
       */
      public akka.protobufv3.internal.ByteString
          getEntityIdBytes() {
        java.lang.Object ref = entityId_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          entityId_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       * @param value The entityId to set.
       * @return This builder for chaining.
       */
      public Builder setEntityId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearEntityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entityId_ = getDefaultInstance().getEntityId();
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       * @param value The bytes for entityId to set.
       * @return This builder for chaining.
       */
      public Builder setEntityIdBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:EntityStarted)
    }

    // @@protoc_insertion_point(class_scope:EntityStarted)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<EntityStarted>
        PARSER = new akka.protobufv3.internal.AbstractParser<EntityStarted>() {
      @java.lang.Override
      public EntityStarted parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new EntityStarted(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<EntityStarted> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<EntityStarted> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface EntitiesStartedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:EntitiesStarted)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>repeated string entityId = 1;</code>
     * @return A list containing the entityId.
     */
    java.util.List<java.lang.String>
        getEntityIdList();
    /**
     * <code>repeated string entityId = 1;</code>
     * @return The count of entityId.
     */
    int getEntityIdCount();
    /**
     * <code>repeated string entityId = 1;</code>
     * @param index The index of the element to return.
     * @return The entityId at the given index.
     */
    java.lang.String getEntityId(int index);
    /**
     * <code>repeated string entityId = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the entityId at the given index.
     */
    akka.protobufv3.internal.ByteString
        getEntityIdBytes(int index);
  }
  /**
   * Protobuf type {@code EntitiesStarted}
   */
  public  static final class EntitiesStarted extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:EntitiesStarted)
      EntitiesStartedOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use EntitiesStarted.newBuilder() to construct.
    private EntitiesStarted(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private EntitiesStarted() {
      entityId_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new EntitiesStarted();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private EntitiesStarted(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                entityId_ = new akka.protobufv3.internal.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              entityId_.add(bs);
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          entityId_ = entityId_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntitiesStarted_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntitiesStarted_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted.Builder.class);
    }

    public static final int ENTITYID_FIELD_NUMBER = 1;
    private akka.protobufv3.internal.LazyStringList entityId_;
    /**
     * <code>repeated string entityId = 1;</code>
     * @return A list containing the entityId.
     */
    public akka.protobufv3.internal.ProtocolStringList
        getEntityIdList() {
      return entityId_;
    }
    /**
     * <code>repeated string entityId = 1;</code>
     * @return The count of entityId.
     */
    public int getEntityIdCount() {
      return entityId_.size();
    }
    /**
     * <code>repeated string entityId = 1;</code>
     * @param index The index of the element to return.
     * @return The entityId at the given index.
     */
    public java.lang.String getEntityId(int index) {
      return entityId_.get(index);
    }
    /**
     * <code>repeated string entityId = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the entityId at the given index.
     */
    public akka.protobufv3.internal.ByteString
        getEntityIdBytes(int index) {
      return entityId_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < entityId_.size(); i++) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, entityId_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < entityId_.size(); i++) {
          dataSize += computeStringSizeNoTag(entityId_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getEntityIdList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getEntityIdCount() > 0) {
        hash = (37 * hash) + ENTITYID_FIELD_NUMBER;
        hash = (53 * hash) + getEntityIdList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code EntitiesStarted}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:EntitiesStarted)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStartedOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntitiesStarted_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntitiesStarted_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        entityId_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntitiesStarted_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          entityId_ = entityId_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.entityId_ = entityId_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted.getDefaultInstance()) return this;
        if (!other.entityId_.isEmpty()) {
          if (entityId_.isEmpty()) {
            entityId_ = other.entityId_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureEntityIdIsMutable();
            entityId_.addAll(other.entityId_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.protobufv3.internal.LazyStringList entityId_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
      private void ensureEntityIdIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          entityId_ = new akka.protobufv3.internal.LazyStringArrayList(entityId_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @return A list containing the entityId.
       */
      public akka.protobufv3.internal.ProtocolStringList
          getEntityIdList() {
        return entityId_.getUnmodifiableView();
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @return The count of entityId.
       */
      public int getEntityIdCount() {
        return entityId_.size();
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @param index The index of the element to return.
       * @return The entityId at the given index.
       */
      public java.lang.String getEntityId(int index) {
        return entityId_.get(index);
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the entityId at the given index.
       */
      public akka.protobufv3.internal.ByteString
          getEntityIdBytes(int index) {
        return entityId_.getByteString(index);
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @param index The index to set the value at.
       * @param value The entityId to set.
       * @return This builder for chaining.
       */
      public Builder setEntityId(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntityIdIsMutable();
        entityId_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @param value The entityId to add.
       * @return This builder for chaining.
       */
      public Builder addEntityId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntityIdIsMutable();
        entityId_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @param values The entityId to add.
       * @return This builder for chaining.
       */
      public Builder addAllEntityId(
          java.lang.Iterable<java.lang.String> values) {
        ensureEntityIdIsMutable();
        akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
            values, entityId_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearEntityId() {
        entityId_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @param value The bytes of the entityId to add.
       * @return This builder for chaining.
       */
      public Builder addEntityIdBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntityIdIsMutable();
        entityId_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:EntitiesStarted)
    }

    // @@protoc_insertion_point(class_scope:EntitiesStarted)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<EntitiesStarted>
        PARSER = new akka.protobufv3.internal.AbstractParser<EntitiesStarted>() {
      @java.lang.Override
      public EntitiesStarted parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new EntitiesStarted(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<EntitiesStarted> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<EntitiesStarted> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface EntityStoppedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:EntityStopped)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string entityId = 1;</code>
     * @return Whether the entityId field is set.
     */
    boolean hasEntityId();
    /**
     * <code>required string entityId = 1;</code>
     * @return The entityId.
     */
    java.lang.String getEntityId();
    /**
     * <code>required string entityId = 1;</code>
     * @return The bytes for entityId.
     */
    akka.protobufv3.internal.ByteString
        getEntityIdBytes();
  }
  /**
   * <pre>
   * not written anymore but kept for backwards compatibility
   * </pre>
   *
   * Protobuf type {@code EntityStopped}
   */
  public  static final class EntityStopped extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:EntityStopped)
      EntityStoppedOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use EntityStopped.newBuilder() to construct.
    private EntityStopped(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private EntityStopped() {
      entityId_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new EntityStopped();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private EntityStopped(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              entityId_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStopped_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStopped_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped.Builder.class);
    }

    private int bitField0_;
    public static final int ENTITYID_FIELD_NUMBER = 1;
    private volatile java.lang.Object entityId_;
    /**
     * <code>required string entityId = 1;</code>
     * @return Whether the entityId field is set.
     */
    public boolean hasEntityId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string entityId = 1;</code>
     * @return The entityId.
     */
    public java.lang.String getEntityId() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          entityId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string entityId = 1;</code>
     * @return The bytes for entityId.
     */
    public akka.protobufv3.internal.ByteString
        getEntityIdBytes() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        entityId_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, entityId_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, entityId_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped) obj;

      if (hasEntityId() != other.hasEntityId()) return false;
      if (hasEntityId()) {
        if (!getEntityId()
            .equals(other.getEntityId())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasEntityId()) {
        hash = (37 * hash) + ENTITYID_FIELD_NUMBER;
        hash = (53 * hash) + getEntityId().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * not written anymore but kept for backwards compatibility
     * </pre>
     *
     * Protobuf type {@code EntityStopped}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:EntityStopped)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStoppedOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStopped_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStopped_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        entityId_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStopped_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entityId_ = entityId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped.getDefaultInstance()) return this;
        if (other.hasEntityId()) {
          bitField0_ |= 0x00000001;
          entityId_ = other.entityId_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object entityId_ = "";
      /**
       * <code>required string entityId = 1;</code>
       * @return Whether the entityId field is set.
       */
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return The entityId.
       */
      public java.lang.String getEntityId() {
        java.lang.Object ref = entityId_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            entityId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return The bytes for entityId.
       */
      public akka.protobufv3.internal.ByteString
          getEntityIdBytes() {
        java.lang.Object ref = entityId_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          entityId_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       * @param value The entityId to set.
       * @return This builder for chaining.
       */
      public Builder setEntityId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearEntityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entityId_ = getDefaultInstance().getEntityId();
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       * @param value The bytes for entityId to set.
       * @return This builder for chaining.
       */
      public Builder setEntityIdBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:EntityStopped)
    }

    // @@protoc_insertion_point(class_scope:EntityStopped)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<EntityStopped>
        PARSER = new akka.protobufv3.internal.AbstractParser<EntityStopped>() {
      @java.lang.Override
      public EntityStopped parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new EntityStopped(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<EntityStopped> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<EntityStopped> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface EntitiesStoppedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:EntitiesStopped)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>repeated string entityId = 1;</code>
     * @return A list containing the entityId.
     */
    java.util.List<java.lang.String>
        getEntityIdList();
    /**
     * <code>repeated string entityId = 1;</code>
     * @return The count of entityId.
     */
    int getEntityIdCount();
    /**
     * <code>repeated string entityId = 1;</code>
     * @param index The index of the element to return.
     * @return The entityId at the given index.
     */
    java.lang.String getEntityId(int index);
    /**
     * <code>repeated string entityId = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the entityId at the given index.
     */
    akka.protobufv3.internal.ByteString
        getEntityIdBytes(int index);
  }
  /**
   * Protobuf type {@code EntitiesStopped}
   */
  public  static final class EntitiesStopped extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:EntitiesStopped)
      EntitiesStoppedOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use EntitiesStopped.newBuilder() to construct.
    private EntitiesStopped(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private EntitiesStopped() {
      entityId_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new EntitiesStopped();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private EntitiesStopped(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                entityId_ = new akka.protobufv3.internal.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              entityId_.add(bs);
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          entityId_ = entityId_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntitiesStopped_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntitiesStopped_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped.Builder.class);
    }

    public static final int ENTITYID_FIELD_NUMBER = 1;
    private akka.protobufv3.internal.LazyStringList entityId_;
    /**
     * <code>repeated string entityId = 1;</code>
     * @return A list containing the entityId.
     */
    public akka.protobufv3.internal.ProtocolStringList
        getEntityIdList() {
      return entityId_;
    }
    /**
     * <code>repeated string entityId = 1;</code>
     * @return The count of entityId.
     */
    public int getEntityIdCount() {
      return entityId_.size();
    }
    /**
     * <code>repeated string entityId = 1;</code>
     * @param index The index of the element to return.
     * @return The entityId at the given index.
     */
    public java.lang.String getEntityId(int index) {
      return entityId_.get(index);
    }
    /**
     * <code>repeated string entityId = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the entityId at the given index.
     */
    public akka.protobufv3.internal.ByteString
        getEntityIdBytes(int index) {
      return entityId_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < entityId_.size(); i++) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, entityId_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < entityId_.size(); i++) {
          dataSize += computeStringSizeNoTag(entityId_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getEntityIdList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getEntityIdCount() > 0) {
        hash = (37 * hash) + ENTITYID_FIELD_NUMBER;
        hash = (53 * hash) + getEntityIdList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code EntitiesStopped}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:EntitiesStopped)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStoppedOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntitiesStopped_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntitiesStopped_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        entityId_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntitiesStopped_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          entityId_ = entityId_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.entityId_ = entityId_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped.getDefaultInstance()) return this;
        if (!other.entityId_.isEmpty()) {
          if (entityId_.isEmpty()) {
            entityId_ = other.entityId_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureEntityIdIsMutable();
            entityId_.addAll(other.entityId_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.protobufv3.internal.LazyStringList entityId_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
      private void ensureEntityIdIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          entityId_ = new akka.protobufv3.internal.LazyStringArrayList(entityId_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @return A list containing the entityId.
       */
      public akka.protobufv3.internal.ProtocolStringList
          getEntityIdList() {
        return entityId_.getUnmodifiableView();
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @return The count of entityId.
       */
      public int getEntityIdCount() {
        return entityId_.size();
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @param index The index of the element to return.
       * @return The entityId at the given index.
       */
      public java.lang.String getEntityId(int index) {
        return entityId_.get(index);
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the entityId at the given index.
       */
      public akka.protobufv3.internal.ByteString
          getEntityIdBytes(int index) {
        return entityId_.getByteString(index);
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @param index The index to set the value at.
       * @param value The entityId to set.
       * @return This builder for chaining.
       */
      public Builder setEntityId(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntityIdIsMutable();
        entityId_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @param value The entityId to add.
       * @return This builder for chaining.
       */
      public Builder addEntityId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntityIdIsMutable();
        entityId_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @param values The entityId to add.
       * @return This builder for chaining.
       */
      public Builder addAllEntityId(
          java.lang.Iterable<java.lang.String> values) {
        ensureEntityIdIsMutable();
        akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
            values, entityId_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearEntityId() {
        entityId_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityId = 1;</code>
       * @param value The bytes of the entityId to add.
       * @return This builder for chaining.
       */
      public Builder addEntityIdBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntityIdIsMutable();
        entityId_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:EntitiesStopped)
    }

    // @@protoc_insertion_point(class_scope:EntitiesStopped)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<EntitiesStopped>
        PARSER = new akka.protobufv3.internal.AbstractParser<EntitiesStopped>() {
      @java.lang.Override
      public EntitiesStopped parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new EntitiesStopped(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<EntitiesStopped> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<EntitiesStopped> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ShardStatsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ShardStats)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string shard = 1;</code>
     * @return Whether the shard field is set.
     */
    boolean hasShard();
    /**
     * <code>required string shard = 1;</code>
     * @return The shard.
     */
    java.lang.String getShard();
    /**
     * <code>required string shard = 1;</code>
     * @return The bytes for shard.
     */
    akka.protobufv3.internal.ByteString
        getShardBytes();

    /**
     * <code>required int32 entityCount = 2;</code>
     * @return Whether the entityCount field is set.
     */
    boolean hasEntityCount();
    /**
     * <code>required int32 entityCount = 2;</code>
     * @return The entityCount.
     */
    int getEntityCount();
  }
  /**
   * Protobuf type {@code ShardStats}
   */
  public  static final class ShardStats extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ShardStats)
      ShardStatsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ShardStats.newBuilder() to construct.
    private ShardStats(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ShardStats() {
      shard_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new ShardStats();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ShardStats(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              shard_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              entityCount_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardStats_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardStats_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats.Builder.class);
    }

    private int bitField0_;
    public static final int SHARD_FIELD_NUMBER = 1;
    private volatile java.lang.Object shard_;
    /**
     * <code>required string shard = 1;</code>
     * @return Whether the shard field is set.
     */
    public boolean hasShard() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string shard = 1;</code>
     * @return The shard.
     */
    public java.lang.String getShard() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          shard_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string shard = 1;</code>
     * @return The bytes for shard.
     */
    public akka.protobufv3.internal.ByteString
        getShardBytes() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shard_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int ENTITYCOUNT_FIELD_NUMBER = 2;
    private int entityCount_;
    /**
     * <code>required int32 entityCount = 2;</code>
     * @return Whether the entityCount field is set.
     */
    public boolean hasEntityCount() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required int32 entityCount = 2;</code>
     * @return The entityCount.
     */
    public int getEntityCount() {
      return entityCount_;
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, shard_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, entityCount_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, shard_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt32Size(2, entityCount_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats) obj;

      if (hasShard() != other.hasShard()) return false;
      if (hasShard()) {
        if (!getShard()
            .equals(other.getShard())) return false;
      }
      if (hasEntityCount() != other.hasEntityCount()) return false;
      if (hasEntityCount()) {
        if (getEntityCount()
            != other.getEntityCount()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasShard()) {
        hash = (37 * hash) + SHARD_FIELD_NUMBER;
        hash = (53 * hash) + getShard().hashCode();
      }
      if (hasEntityCount()) {
        hash = (37 * hash) + ENTITYCOUNT_FIELD_NUMBER;
        hash = (53 * hash) + getEntityCount();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ShardStats}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ShardStats)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStatsOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardStats_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardStats_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        shard_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        entityCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardStats_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.shard_ = shard_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.entityCount_ = entityCount_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats.getDefaultInstance()) return this;
        if (other.hasShard()) {
          bitField0_ |= 0x00000001;
          shard_ = other.shard_;
          onChanged();
        }
        if (other.hasEntityCount()) {
          setEntityCount(other.getEntityCount());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object shard_ = "";
      /**
       * <code>required string shard = 1;</code>
       * @return Whether the shard field is set.
       */
      public boolean hasShard() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string shard = 1;</code>
       * @return The shard.
       */
      public java.lang.String getShard() {
        java.lang.Object ref = shard_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            shard_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       * @return The bytes for shard.
       */
      public akka.protobufv3.internal.ByteString
          getShardBytes() {
        java.lang.Object ref = shard_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shard_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       * @param value The shard to set.
       * @return This builder for chaining.
       */
      public Builder setShard(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearShard() {
        bitField0_ = (bitField0_ & ~0x00000001);
        shard_ = getDefaultInstance().getShard();
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       * @param value The bytes for shard to set.
       * @return This builder for chaining.
       */
      public Builder setShardBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }

      private int entityCount_ ;
      /**
       * <code>required int32 entityCount = 2;</code>
       * @return Whether the entityCount field is set.
       */
      public boolean hasEntityCount() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required int32 entityCount = 2;</code>
       * @return The entityCount.
       */
      public int getEntityCount() {
        return entityCount_;
      }
      /**
       * <code>required int32 entityCount = 2;</code>
       * @param value The entityCount to set.
       * @return This builder for chaining.
       */
      public Builder setEntityCount(int value) {
        bitField0_ |= 0x00000002;
        entityCount_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 entityCount = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearEntityCount() {
        bitField0_ = (bitField0_ & ~0x00000002);
        entityCount_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ShardStats)
    }

    // @@protoc_insertion_point(class_scope:ShardStats)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<ShardStats>
        PARSER = new akka.protobufv3.internal.AbstractParser<ShardStats>() {
      @java.lang.Override
      public ShardStats parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new ShardStats(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<ShardStats> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<ShardStats> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ShardRegionStatsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ShardRegionStats)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>repeated .MapFieldEntry stats = 1;</code>
     */
    java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry> 
        getStatsList();
    /**
     * <code>repeated .MapFieldEntry stats = 1;</code>
     */
    akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry getStats(int index);
    /**
     * <code>repeated .MapFieldEntry stats = 1;</code>
     */
    int getStatsCount();
    /**
     * <code>repeated .MapFieldEntry stats = 1;</code>
     */
    java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntryOrBuilder> 
        getStatsOrBuilderList();
    /**
     * <code>repeated .MapFieldEntry stats = 1;</code>
     */
    akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntryOrBuilder getStatsOrBuilder(
        int index);

    /**
     * <code>repeated string failed = 2;</code>
     * @return A list containing the failed.
     */
    java.util.List<java.lang.String>
        getFailedList();
    /**
     * <code>repeated string failed = 2;</code>
     * @return The count of failed.
     */
    int getFailedCount();
    /**
     * <code>repeated string failed = 2;</code>
     * @param index The index of the element to return.
     * @return The failed at the given index.
     */
    java.lang.String getFailed(int index);
    /**
     * <code>repeated string failed = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the failed at the given index.
     */
    akka.protobufv3.internal.ByteString
        getFailedBytes(int index);
  }
  /**
   * Protobuf type {@code ShardRegionStats}
   */
  public  static final class ShardRegionStats extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ShardRegionStats)
      ShardRegionStatsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ShardRegionStats.newBuilder() to construct.
    private ShardRegionStats(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ShardRegionStats() {
      stats_ = java.util.Collections.emptyList();
      failed_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new ShardRegionStats();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ShardRegionStats(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                stats_ = new java.util.ArrayList<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry>();
                mutable_bitField0_ |= 0x00000001;
              }
              stats_.add(
                  input.readMessage(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.PARSER, extensionRegistry));
              break;
            }
            case 18: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                failed_ = new akka.protobufv3.internal.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              failed_.add(bs);
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          stats_ = java.util.Collections.unmodifiableList(stats_);
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          failed_ = failed_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardRegionStats_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardRegionStats_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.Builder.class);
    }

    public static final int STATS_FIELD_NUMBER = 1;
    private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry> stats_;
    /**
     * <code>repeated .MapFieldEntry stats = 1;</code>
     */
    public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry> getStatsList() {
      return stats_;
    }
    /**
     * <code>repeated .MapFieldEntry stats = 1;</code>
     */
    public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntryOrBuilder> 
        getStatsOrBuilderList() {
      return stats_;
    }
    /**
     * <code>repeated .MapFieldEntry stats = 1;</code>
     */
    public int getStatsCount() {
      return stats_.size();
    }
    /**
     * <code>repeated .MapFieldEntry stats = 1;</code>
     */
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry getStats(int index) {
      return stats_.get(index);
    }
    /**
     * <code>repeated .MapFieldEntry stats = 1;</code>
     */
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntryOrBuilder getStatsOrBuilder(
        int index) {
      return stats_.get(index);
    }

    public static final int FAILED_FIELD_NUMBER = 2;
    private akka.protobufv3.internal.LazyStringList failed_;
    /**
     * <code>repeated string failed = 2;</code>
     * @return A list containing the failed.
     */
    public akka.protobufv3.internal.ProtocolStringList
        getFailedList() {
      return failed_;
    }
    /**
     * <code>repeated string failed = 2;</code>
     * @return The count of failed.
     */
    public int getFailedCount() {
      return failed_.size();
    }
    /**
     * <code>repeated string failed = 2;</code>
     * @param index The index of the element to return.
     * @return The failed at the given index.
     */
    public java.lang.String getFailed(int index) {
      return failed_.get(index);
    }
    /**
     * <code>repeated string failed = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the failed at the given index.
     */
    public akka.protobufv3.internal.ByteString
        getFailedBytes(int index) {
      return failed_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < stats_.size(); i++) {
        output.writeMessage(1, stats_.get(i));
      }
      for (int i = 0; i < failed_.size(); i++) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, failed_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < stats_.size(); i++) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, stats_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < failed_.size(); i++) {
          dataSize += computeStringSizeNoTag(failed_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getFailedList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats) obj;

      if (!getStatsList()
          .equals(other.getStatsList())) return false;
      if (!getFailedList()
          .equals(other.getFailedList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getStatsCount() > 0) {
        hash = (37 * hash) + STATS_FIELD_NUMBER;
        hash = (53 * hash) + getStatsList().hashCode();
      }
      if (getFailedCount() > 0) {
        hash = (37 * hash) + FAILED_FIELD_NUMBER;
        hash = (53 * hash) + getFailedList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ShardRegionStats}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ShardRegionStats)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStatsOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardRegionStats_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardRegionStats_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getStatsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (statsBuilder_ == null) {
          stats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          statsBuilder_.clear();
        }
        failed_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardRegionStats_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats(this);
        int from_bitField0_ = bitField0_;
        if (statsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            stats_ = java.util.Collections.unmodifiableList(stats_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.stats_ = stats_;
        } else {
          result.stats_ = statsBuilder_.build();
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          failed_ = failed_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.failed_ = failed_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.getDefaultInstance()) return this;
        if (statsBuilder_ == null) {
          if (!other.stats_.isEmpty()) {
            if (stats_.isEmpty()) {
              stats_ = other.stats_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureStatsIsMutable();
              stats_.addAll(other.stats_);
            }
            onChanged();
          }
        } else {
          if (!other.stats_.isEmpty()) {
            if (statsBuilder_.isEmpty()) {
              statsBuilder_.dispose();
              statsBuilder_ = null;
              stats_ = other.stats_;
              bitField0_ = (bitField0_ & ~0x00000001);
              statsBuilder_ = 
                akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getStatsFieldBuilder() : null;
            } else {
              statsBuilder_.addAllMessages(other.stats_);
            }
          }
        }
        if (!other.failed_.isEmpty()) {
          if (failed_.isEmpty()) {
            failed_ = other.failed_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureFailedIsMutable();
            failed_.addAll(other.failed_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry> stats_ =
        java.util.Collections.emptyList();
      private void ensureStatsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          stats_ = new java.util.ArrayList<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry>(stats_);
          bitField0_ |= 0x00000001;
         }
      }

      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntryOrBuilder> statsBuilder_;

      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry> getStatsList() {
        if (statsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(stats_);
        } else {
          return statsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public int getStatsCount() {
        if (statsBuilder_ == null) {
          return stats_.size();
        } else {
          return statsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry getStats(int index) {
        if (statsBuilder_ == null) {
          return stats_.get(index);
        } else {
          return statsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public Builder setStats(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry value) {
        if (statsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatsIsMutable();
          stats_.set(index, value);
          onChanged();
        } else {
          statsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public Builder setStats(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.Builder builderForValue) {
        if (statsBuilder_ == null) {
          ensureStatsIsMutable();
          stats_.set(index, builderForValue.build());
          onChanged();
        } else {
          statsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public Builder addStats(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry value) {
        if (statsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatsIsMutable();
          stats_.add(value);
          onChanged();
        } else {
          statsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public Builder addStats(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry value) {
        if (statsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatsIsMutable();
          stats_.add(index, value);
          onChanged();
        } else {
          statsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public Builder addStats(
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.Builder builderForValue) {
        if (statsBuilder_ == null) {
          ensureStatsIsMutable();
          stats_.add(builderForValue.build());
          onChanged();
        } else {
          statsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public Builder addStats(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.Builder builderForValue) {
        if (statsBuilder_ == null) {
          ensureStatsIsMutable();
          stats_.add(index, builderForValue.build());
          onChanged();
        } else {
          statsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public Builder addAllStats(
          java.lang.Iterable<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry> values) {
        if (statsBuilder_ == null) {
          ensureStatsIsMutable();
          akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
              values, stats_);
          onChanged();
        } else {
          statsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public Builder clearStats() {
        if (statsBuilder_ == null) {
          stats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          statsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public Builder removeStats(int index) {
        if (statsBuilder_ == null) {
          ensureStatsIsMutable();
          stats_.remove(index);
          onChanged();
        } else {
          statsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.Builder getStatsBuilder(
          int index) {
        return getStatsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntryOrBuilder getStatsOrBuilder(
          int index) {
        if (statsBuilder_ == null) {
          return stats_.get(index);  } else {
          return statsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntryOrBuilder> 
           getStatsOrBuilderList() {
        if (statsBuilder_ != null) {
          return statsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(stats_);
        }
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.Builder addStatsBuilder() {
        return getStatsFieldBuilder().addBuilder(
            akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.Builder addStatsBuilder(
          int index) {
        return getStatsFieldBuilder().addBuilder(
            index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.Builder> 
           getStatsBuilderList() {
        return getStatsFieldBuilder().getBuilderList();
      }
      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntryOrBuilder> 
          getStatsFieldBuilder() {
        if (statsBuilder_ == null) {
          statsBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntryOrBuilder>(
                  stats_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          stats_ = null;
        }
        return statsBuilder_;
      }

      private akka.protobufv3.internal.LazyStringList failed_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
      private void ensureFailedIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          failed_ = new akka.protobufv3.internal.LazyStringArrayList(failed_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @return A list containing the failed.
       */
      public akka.protobufv3.internal.ProtocolStringList
          getFailedList() {
        return failed_.getUnmodifiableView();
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @return The count of failed.
       */
      public int getFailedCount() {
        return failed_.size();
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @param index The index of the element to return.
       * @return The failed at the given index.
       */
      public java.lang.String getFailed(int index) {
        return failed_.get(index);
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the failed at the given index.
       */
      public akka.protobufv3.internal.ByteString
          getFailedBytes(int index) {
        return failed_.getByteString(index);
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @param index The index to set the value at.
       * @param value The failed to set.
       * @return This builder for chaining.
       */
      public Builder setFailed(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureFailedIsMutable();
        failed_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @param value The failed to add.
       * @return This builder for chaining.
       */
      public Builder addFailed(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureFailedIsMutable();
        failed_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @param values The failed to add.
       * @return This builder for chaining.
       */
      public Builder addAllFailed(
          java.lang.Iterable<java.lang.String> values) {
        ensureFailedIsMutable();
        akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
            values, failed_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearFailed() {
        failed_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @param value The bytes of the failed to add.
       * @return This builder for chaining.
       */
      public Builder addFailedBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureFailedIsMutable();
        failed_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ShardRegionStats)
    }

    // @@protoc_insertion_point(class_scope:ShardRegionStats)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<ShardRegionStats>
        PARSER = new akka.protobufv3.internal.AbstractParser<ShardRegionStats>() {
      @java.lang.Override
      public ShardRegionStats parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new ShardRegionStats(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<ShardRegionStats> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<ShardRegionStats> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MapFieldEntryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:MapFieldEntry)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>optional string key = 1;</code>
     * @return Whether the key field is set.
     */
    boolean hasKey();
    /**
     * <code>optional string key = 1;</code>
     * @return The key.
     */
    java.lang.String getKey();
    /**
     * <code>optional string key = 1;</code>
     * @return The bytes for key.
     */
    akka.protobufv3.internal.ByteString
        getKeyBytes();

    /**
     * <code>optional int32 value = 2;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <code>optional int32 value = 2;</code>
     * @return The value.
     */
    int getValue();
  }
  /**
   * Protobuf type {@code MapFieldEntry}
   */
  public  static final class MapFieldEntry extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:MapFieldEntry)
      MapFieldEntryOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MapFieldEntry.newBuilder() to construct.
    private MapFieldEntry(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MapFieldEntry() {
      key_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new MapFieldEntry();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private MapFieldEntry(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              key_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              value_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_MapFieldEntry_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_MapFieldEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private volatile java.lang.Object key_;
    /**
     * <code>optional string key = 1;</code>
     * @return Whether the key field is set.
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string key = 1;</code>
     * @return The key.
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string key = 1;</code>
     * @return The bytes for key.
     */
    public akka.protobufv3.internal.ByteString
        getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private int value_;
    /**
     * <code>optional int32 value = 2;</code>
     * @return Whether the value field is set.
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int32 value = 2;</code>
     * @return The value.
     */
    public int getValue() {
      return value_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, key_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, value_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt32Size(2, value_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry) obj;

      if (hasKey() != other.hasKey()) return false;
      if (hasKey()) {
        if (!getKey()
            .equals(other.getKey())) return false;
      }
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (getValue()
            != other.getValue()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code MapFieldEntry}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:MapFieldEntry)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntryOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_MapFieldEntry_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_MapFieldEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_MapFieldEntry_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.value_ = value_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.getDefaultInstance()) return this;
        if (other.hasKey()) {
          bitField0_ |= 0x00000001;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object key_ = "";
      /**
       * <code>optional string key = 1;</code>
       * @return Whether the key field is set.
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string key = 1;</code>
       * @return The key.
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string key = 1;</code>
       * @return The bytes for key.
       */
      public akka.protobufv3.internal.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>optional string key = 1;</code>
       * @param value The key to set.
       * @return This builder for chaining.
       */
      public Builder setKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string key = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       * <code>optional string key = 1;</code>
       * @param value The bytes for key to set.
       * @return This builder for chaining.
       */
      public Builder setKeyBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      private int value_ ;
      /**
       * <code>optional int32 value = 2;</code>
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int32 value = 2;</code>
       * @return The value.
       */
      public int getValue() {
        return value_;
      }
      /**
       * <code>optional int32 value = 2;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 value = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:MapFieldEntry)
    }

    // @@protoc_insertion_point(class_scope:MapFieldEntry)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<MapFieldEntry>
        PARSER = new akka.protobufv3.internal.AbstractParser<MapFieldEntry>() {
      @java.lang.Override
      public MapFieldEntry parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new MapFieldEntry(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<MapFieldEntry> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<MapFieldEntry> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetClusterShardingStatsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GetClusterShardingStats)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required int64 timeoutNanos = 1;</code>
     * @return Whether the timeoutNanos field is set.
     */
    boolean hasTimeoutNanos();
    /**
     * <code>required int64 timeoutNanos = 1;</code>
     * @return The timeoutNanos.
     */
    long getTimeoutNanos();
  }
  /**
   * Protobuf type {@code GetClusterShardingStats}
   */
  public  static final class GetClusterShardingStats extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GetClusterShardingStats)
      GetClusterShardingStatsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetClusterShardingStats.newBuilder() to construct.
    private GetClusterShardingStats(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetClusterShardingStats() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new GetClusterShardingStats();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GetClusterShardingStats(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              timeoutNanos_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_GetClusterShardingStats_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_GetClusterShardingStats_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats.Builder.class);
    }

    private int bitField0_;
    public static final int TIMEOUTNANOS_FIELD_NUMBER = 1;
    private long timeoutNanos_;
    /**
     * <code>required int64 timeoutNanos = 1;</code>
     * @return Whether the timeoutNanos field is set.
     */
    public boolean hasTimeoutNanos() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required int64 timeoutNanos = 1;</code>
     * @return The timeoutNanos.
     */
    public long getTimeoutNanos() {
      return timeoutNanos_;
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt64(1, timeoutNanos_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt64Size(1, timeoutNanos_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats) obj;

      if (hasTimeoutNanos() != other.hasTimeoutNanos()) return false;
      if (hasTimeoutNanos()) {
        if (getTimeoutNanos()
            != other.getTimeoutNanos()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasTimeoutNanos()) {
        hash = (37 * hash) + TIMEOUTNANOS_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getTimeoutNanos());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GetClusterShardingStats}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GetClusterShardingStats)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStatsOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_GetClusterShardingStats_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_GetClusterShardingStats_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        timeoutNanos_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_GetClusterShardingStats_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.timeoutNanos_ = timeoutNanos_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats.getDefaultInstance()) return this;
        if (other.hasTimeoutNanos()) {
          setTimeoutNanos(other.getTimeoutNanos());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long timeoutNanos_ ;
      /**
       * <code>required int64 timeoutNanos = 1;</code>
       * @return Whether the timeoutNanos field is set.
       */
      public boolean hasTimeoutNanos() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int64 timeoutNanos = 1;</code>
       * @return The timeoutNanos.
       */
      public long getTimeoutNanos() {
        return timeoutNanos_;
      }
      /**
       * <code>required int64 timeoutNanos = 1;</code>
       * @param value The timeoutNanos to set.
       * @return This builder for chaining.
       */
      public Builder setTimeoutNanos(long value) {
        bitField0_ |= 0x00000001;
        timeoutNanos_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int64 timeoutNanos = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeoutNanos() {
        bitField0_ = (bitField0_ & ~0x00000001);
        timeoutNanos_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GetClusterShardingStats)
    }

    // @@protoc_insertion_point(class_scope:GetClusterShardingStats)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<GetClusterShardingStats>
        PARSER = new akka.protobufv3.internal.AbstractParser<GetClusterShardingStats>() {
      @java.lang.Override
      public GetClusterShardingStats parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new GetClusterShardingStats(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<GetClusterShardingStats> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<GetClusterShardingStats> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ClusterShardingStatsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ClusterShardingStats)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
     */
    java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry> 
        getStatsList();
    /**
     * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
     */
    akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry getStats(int index);
    /**
     * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
     */
    int getStatsCount();
    /**
     * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
     */
    java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntryOrBuilder> 
        getStatsOrBuilderList();
    /**
     * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
     */
    akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntryOrBuilder getStatsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code ClusterShardingStats}
   */
  public  static final class ClusterShardingStats extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ClusterShardingStats)
      ClusterShardingStatsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ClusterShardingStats.newBuilder() to construct.
    private ClusterShardingStats(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ClusterShardingStats() {
      stats_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new ClusterShardingStats();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ClusterShardingStats(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                stats_ = new java.util.ArrayList<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry>();
                mutable_bitField0_ |= 0x00000001;
              }
              stats_.add(
                  input.readMessage(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          stats_ = java.util.Collections.unmodifiableList(stats_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ClusterShardingStats_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ClusterShardingStats_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats.Builder.class);
    }

    public static final int STATS_FIELD_NUMBER = 1;
    private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry> stats_;
    /**
     * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
     */
    public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry> getStatsList() {
      return stats_;
    }
    /**
     * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
     */
    public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntryOrBuilder> 
        getStatsOrBuilderList() {
      return stats_;
    }
    /**
     * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
     */
    public int getStatsCount() {
      return stats_.size();
    }
    /**
     * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
     */
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry getStats(int index) {
      return stats_.get(index);
    }
    /**
     * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
     */
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntryOrBuilder getStatsOrBuilder(
        int index) {
      return stats_.get(index);
    }

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

      for (int i = 0; i < getStatsCount(); i++) {
        if (!getStats(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < stats_.size(); i++) {
        output.writeMessage(1, stats_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < stats_.size(); i++) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, stats_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getStatsCount() > 0) {
        hash = (37 * hash) + STATS_FIELD_NUMBER;
        hash = (53 * hash) + getStatsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ClusterShardingStats}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ClusterShardingStats)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ClusterShardingStats_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ClusterShardingStats_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getStatsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (statsBuilder_ == null) {
          stats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          statsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ClusterShardingStats_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats(this);
        int from_bitField0_ = bitField0_;
        if (statsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            stats_ = java.util.Collections.unmodifiableList(stats_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.stats_ = stats_;
        } else {
          result.stats_ = statsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats.getDefaultInstance()) return this;
        if (statsBuilder_ == null) {
          if (!other.stats_.isEmpty()) {
            if (stats_.isEmpty()) {
              stats_ = other.stats_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureStatsIsMutable();
              stats_.addAll(other.stats_);
            }
            onChanged();
          }
        } else {
          if (!other.stats_.isEmpty()) {
            if (statsBuilder_.isEmpty()) {
              statsBuilder_.dispose();
              statsBuilder_ = null;
              stats_ = other.stats_;
              bitField0_ = (bitField0_ & ~0x00000001);
              statsBuilder_ = 
                akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getStatsFieldBuilder() : null;
            } else {
              statsBuilder_.addAllMessages(other.stats_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        for (int i = 0; i < getStatsCount(); i++) {
          if (!getStats(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry> stats_ =
        java.util.Collections.emptyList();
      private void ensureStatsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          stats_ = new java.util.ArrayList<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry>(stats_);
          bitField0_ |= 0x00000001;
         }
      }

      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntryOrBuilder> statsBuilder_;

      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry> getStatsList() {
        if (statsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(stats_);
        } else {
          return statsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public int getStatsCount() {
        if (statsBuilder_ == null) {
          return stats_.size();
        } else {
          return statsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry getStats(int index) {
        if (statsBuilder_ == null) {
          return stats_.get(index);
        } else {
          return statsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public Builder setStats(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry value) {
        if (statsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatsIsMutable();
          stats_.set(index, value);
          onChanged();
        } else {
          statsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public Builder setStats(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.Builder builderForValue) {
        if (statsBuilder_ == null) {
          ensureStatsIsMutable();
          stats_.set(index, builderForValue.build());
          onChanged();
        } else {
          statsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public Builder addStats(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry value) {
        if (statsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatsIsMutable();
          stats_.add(value);
          onChanged();
        } else {
          statsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public Builder addStats(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry value) {
        if (statsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatsIsMutable();
          stats_.add(index, value);
          onChanged();
        } else {
          statsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public Builder addStats(
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.Builder builderForValue) {
        if (statsBuilder_ == null) {
          ensureStatsIsMutable();
          stats_.add(builderForValue.build());
          onChanged();
        } else {
          statsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public Builder addStats(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.Builder builderForValue) {
        if (statsBuilder_ == null) {
          ensureStatsIsMutable();
          stats_.add(index, builderForValue.build());
          onChanged();
        } else {
          statsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public Builder addAllStats(
          java.lang.Iterable<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry> values) {
        if (statsBuilder_ == null) {
          ensureStatsIsMutable();
          akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
              values, stats_);
          onChanged();
        } else {
          statsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public Builder clearStats() {
        if (statsBuilder_ == null) {
          stats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          statsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public Builder removeStats(int index) {
        if (statsBuilder_ == null) {
          ensureStatsIsMutable();
          stats_.remove(index);
          onChanged();
        } else {
          statsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.Builder getStatsBuilder(
          int index) {
        return getStatsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntryOrBuilder getStatsOrBuilder(
          int index) {
        if (statsBuilder_ == null) {
          return stats_.get(index);  } else {
          return statsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntryOrBuilder> 
           getStatsOrBuilderList() {
        if (statsBuilder_ != null) {
          return statsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(stats_);
        }
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.Builder addStatsBuilder() {
        return getStatsFieldBuilder().addBuilder(
            akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.Builder addStatsBuilder(
          int index) {
        return getStatsFieldBuilder().addBuilder(
            index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.Builder> 
           getStatsBuilderList() {
        return getStatsFieldBuilder().getBuilderList();
      }
      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntryOrBuilder> 
          getStatsFieldBuilder() {
        if (statsBuilder_ == null) {
          statsBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntryOrBuilder>(
                  stats_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          stats_ = null;
        }
        return statsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ClusterShardingStats)
    }

    // @@protoc_insertion_point(class_scope:ClusterShardingStats)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<ClusterShardingStats>
        PARSER = new akka.protobufv3.internal.AbstractParser<ClusterShardingStats>() {
      @java.lang.Override
      public ClusterShardingStats parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new ClusterShardingStats(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<ClusterShardingStats> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<ClusterShardingStats> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ClusterShardingStatsEntryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ClusterShardingStatsEntry)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required .Address address = 1;</code>
     * @return Whether the address field is set.
     */
    boolean hasAddress();
    /**
     * <code>required .Address address = 1;</code>
     * @return The address.
     */
    akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address getAddress();
    /**
     * <code>required .Address address = 1;</code>
     */
    akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder getAddressOrBuilder();

    /**
     * <code>required .ShardRegionStats stats = 2;</code>
     * @return Whether the stats field is set.
     */
    boolean hasStats();
    /**
     * <code>required .ShardRegionStats stats = 2;</code>
     * @return The stats.
     */
    akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats getStats();
    /**
     * <code>required .ShardRegionStats stats = 2;</code>
     */
    akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStatsOrBuilder getStatsOrBuilder();
  }
  /**
   * Protobuf type {@code ClusterShardingStatsEntry}
   */
  public  static final class ClusterShardingStatsEntry extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ClusterShardingStatsEntry)
      ClusterShardingStatsEntryOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ClusterShardingStatsEntry.newBuilder() to construct.
    private ClusterShardingStatsEntry(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ClusterShardingStatsEntry() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new ClusterShardingStatsEntry();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ClusterShardingStatsEntry(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = address_.toBuilder();
              }
              address_ = input.readMessage(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(address_);
                address_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) != 0)) {
                subBuilder = stats_.toBuilder();
              }
              stats_ = input.readMessage(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(stats_);
                stats_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ClusterShardingStatsEntry_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ClusterShardingStatsEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.Builder.class);
    }

    private int bitField0_;
    public static final int ADDRESS_FIELD_NUMBER = 1;
    private akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address address_;
    /**
     * <code>required .Address address = 1;</code>
     * @return Whether the address field is set.
     */
    public boolean hasAddress() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .Address address = 1;</code>
     * @return The address.
     */
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address getAddress() {
      return address_ == null ? akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.getDefaultInstance() : address_;
    }
    /**
     * <code>required .Address address = 1;</code>
     */
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder getAddressOrBuilder() {
      return address_ == null ? akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.getDefaultInstance() : address_;
    }

    public static final int STATS_FIELD_NUMBER = 2;
    private akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats stats_;
    /**
     * <code>required .ShardRegionStats stats = 2;</code>
     * @return Whether the stats field is set.
     */
    public boolean hasStats() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .ShardRegionStats stats = 2;</code>
     * @return The stats.
     */
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats getStats() {
      return stats_ == null ? akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.getDefaultInstance() : stats_;
    }
    /**
     * <code>required .ShardRegionStats stats = 2;</code>
     */
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStatsOrBuilder getStatsOrBuilder() {
      return stats_ == null ? akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.getDefaultInstance() : stats_;
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getAddress());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getStats());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, getAddress());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(2, getStats());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry) obj;

      if (hasAddress() != other.hasAddress()) return false;
      if (hasAddress()) {
        if (!getAddress()
            .equals(other.getAddress())) return false;
      }
      if (hasStats() != other.hasStats()) return false;
      if (hasStats()) {
        if (!getStats()
            .equals(other.getStats())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasAddress()) {
        hash = (37 * hash) + ADDRESS_FIELD_NUMBER;
        hash = (53 * hash) + getAddress().hashCode();
      }
      if (hasStats()) {
        hash = (37 * hash) + STATS_FIELD_NUMBER;
        hash = (53 * hash) + getStats().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ClusterShardingStatsEntry}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ClusterShardingStatsEntry)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntryOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ClusterShardingStatsEntry_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ClusterShardingStatsEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getAddressFieldBuilder();
          getStatsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (addressBuilder_ == null) {
          address_ = null;
        } else {
          addressBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (statsBuilder_ == null) {
          stats_ = null;
        } else {
          statsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ClusterShardingStatsEntry_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (addressBuilder_ == null) {
            result.address_ = address_;
          } else {
            result.address_ = addressBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          if (statsBuilder_ == null) {
            result.stats_ = stats_;
          } else {
            result.stats_ = statsBuilder_.build();
          }
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.getDefaultInstance()) return this;
        if (other.hasAddress()) {
          mergeAddress(other.getAddress());
        }
        if (other.hasStats()) {
          mergeStats(other.getStats());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address address_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder> addressBuilder_;
      /**
       * <code>required .Address address = 1;</code>
       * @return Whether the address field is set.
       */
      public boolean hasAddress() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .Address address = 1;</code>
       * @return The address.
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address getAddress() {
        if (addressBuilder_ == null) {
          return address_ == null ? akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.getDefaultInstance() : address_;
        } else {
          return addressBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Address address = 1;</code>
       */
      public Builder setAddress(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.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.cluster.sharding.protobuf.msg.ClusterShardingMessages.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.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address value) {
        if (addressBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              address_ != null &&
              address_ != akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.getDefaultInstance()) {
            address_ =
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.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_ = null;
          onChanged();
        } else {
          addressBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .Address address = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder getAddressBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getAddressFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Address address = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder getAddressOrBuilder() {
        if (addressBuilder_ != null) {
          return addressBuilder_.getMessageOrBuilder();
        } else {
          return address_ == null ?
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.getDefaultInstance() : address_;
        }
      }
      /**
       * <code>required .Address address = 1;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder> 
          getAddressFieldBuilder() {
        if (addressBuilder_ == null) {
          addressBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder>(
                  getAddress(),
                  getParentForChildren(),
                  isClean());
          address_ = null;
        }
        return addressBuilder_;
      }

      private akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats stats_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStatsOrBuilder> statsBuilder_;
      /**
       * <code>required .ShardRegionStats stats = 2;</code>
       * @return Whether the stats field is set.
       */
      public boolean hasStats() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .ShardRegionStats stats = 2;</code>
       * @return The stats.
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats getStats() {
        if (statsBuilder_ == null) {
          return stats_ == null ? akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.getDefaultInstance() : stats_;
        } else {
          return statsBuilder_.getMessage();
        }
      }
      /**
       * <code>required .ShardRegionStats stats = 2;</code>
       */
      public Builder setStats(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats value) {
        if (statsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          stats_ = value;
          onChanged();
        } else {
          statsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .ShardRegionStats stats = 2;</code>
       */
      public Builder setStats(
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.Builder builderForValue) {
        if (statsBuilder_ == null) {
          stats_ = builderForValue.build();
          onChanged();
        } else {
          statsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .ShardRegionStats stats = 2;</code>
       */
      public Builder mergeStats(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats value) {
        if (statsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
              stats_ != null &&
              stats_ != akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.getDefaultInstance()) {
            stats_ =
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.newBuilder(stats_).mergeFrom(value).buildPartial();
          } else {
            stats_ = value;
          }
          onChanged();
        } else {
          statsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .ShardRegionStats stats = 2;</code>
       */
      public Builder clearStats() {
        if (statsBuilder_ == null) {
          stats_ = null;
          onChanged();
        } else {
          statsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>required .ShardRegionStats stats = 2;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.Builder getStatsBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getStatsFieldBuilder().getBuilder();
      }
      /**
       * <code>required .ShardRegionStats stats = 2;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStatsOrBuilder getStatsOrBuilder() {
        if (statsBuilder_ != null) {
          return statsBuilder_.getMessageOrBuilder();
        } else {
          return stats_ == null ?
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.getDefaultInstance() : stats_;
        }
      }
      /**
       * <code>required .ShardRegionStats stats = 2;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStatsOrBuilder> 
          getStatsFieldBuilder() {
        if (statsBuilder_ == null) {
          statsBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStatsOrBuilder>(
                  getStats(),
                  getParentForChildren(),
                  isClean());
          stats_ = null;
        }
        return statsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ClusterShardingStatsEntry)
    }

    // @@protoc_insertion_point(class_scope:ClusterShardingStatsEntry)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<ClusterShardingStatsEntry>
        PARSER = new akka.protobufv3.internal.AbstractParser<ClusterShardingStatsEntry>() {
      @java.lang.Override
      public ClusterShardingStatsEntry parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new ClusterShardingStatsEntry(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<ClusterShardingStatsEntry> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<ClusterShardingStatsEntry> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CurrentRegionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CurrentRegions)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>repeated .Address regions = 1;</code>
     */
    java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address> 
        getRegionsList();
    /**
     * <code>repeated .Address regions = 1;</code>
     */
    akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address getRegions(int index);
    /**
     * <code>repeated .Address regions = 1;</code>
     */
    int getRegionsCount();
    /**
     * <code>repeated .Address regions = 1;</code>
     */
    java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder> 
        getRegionsOrBuilderList();
    /**
     * <code>repeated .Address regions = 1;</code>
     */
    akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder getRegionsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CurrentRegions}
   */
  public  static final class CurrentRegions extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:CurrentRegions)
      CurrentRegionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CurrentRegions.newBuilder() to construct.
    private CurrentRegions(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CurrentRegions() {
      regions_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new CurrentRegions();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private CurrentRegions(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                regions_ = new java.util.ArrayList<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address>();
                mutable_bitField0_ |= 0x00000001;
              }
              regions_.add(
                  input.readMessage(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          regions_ = java.util.Collections.unmodifiableList(regions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CurrentRegions_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CurrentRegions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions.Builder.class);
    }

    public static final int REGIONS_FIELD_NUMBER = 1;
    private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address> regions_;
    /**
     * <code>repeated .Address regions = 1;</code>
     */
    public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address> getRegionsList() {
      return regions_;
    }
    /**
     * <code>repeated .Address regions = 1;</code>
     */
    public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder> 
        getRegionsOrBuilderList() {
      return regions_;
    }
    /**
     * <code>repeated .Address regions = 1;</code>
     */
    public int getRegionsCount() {
      return regions_.size();
    }
    /**
     * <code>repeated .Address regions = 1;</code>
     */
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address getRegions(int index) {
      return regions_.get(index);
    }
    /**
     * <code>repeated .Address regions = 1;</code>
     */
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder getRegionsOrBuilder(
        int index) {
      return regions_.get(index);
    }

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

      for (int i = 0; i < getRegionsCount(); i++) {
        if (!getRegions(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < regions_.size(); i++) {
        output.writeMessage(1, regions_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < regions_.size(); i++) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, regions_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getRegionsCount() > 0) {
        hash = (37 * hash) + REGIONS_FIELD_NUMBER;
        hash = (53 * hash) + getRegionsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CurrentRegions}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:CurrentRegions)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegionsOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CurrentRegions_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CurrentRegions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getRegionsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (regionsBuilder_ == null) {
          regions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          regionsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CurrentRegions_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions(this);
        int from_bitField0_ = bitField0_;
        if (regionsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            regions_ = java.util.Collections.unmodifiableList(regions_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.regions_ = regions_;
        } else {
          result.regions_ = regionsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions.getDefaultInstance()) return this;
        if (regionsBuilder_ == null) {
          if (!other.regions_.isEmpty()) {
            if (regions_.isEmpty()) {
              regions_ = other.regions_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureRegionsIsMutable();
              regions_.addAll(other.regions_);
            }
            onChanged();
          }
        } else {
          if (!other.regions_.isEmpty()) {
            if (regionsBuilder_.isEmpty()) {
              regionsBuilder_.dispose();
              regionsBuilder_ = null;
              regions_ = other.regions_;
              bitField0_ = (bitField0_ & ~0x00000001);
              regionsBuilder_ = 
                akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRegionsFieldBuilder() : null;
            } else {
              regionsBuilder_.addAllMessages(other.regions_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        for (int i = 0; i < getRegionsCount(); i++) {
          if (!getRegions(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address> regions_ =
        java.util.Collections.emptyList();
      private void ensureRegionsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          regions_ = new java.util.ArrayList<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address>(regions_);
          bitField0_ |= 0x00000001;
         }
      }

      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder> regionsBuilder_;

      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address> getRegionsList() {
        if (regionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(regions_);
        } else {
          return regionsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public int getRegionsCount() {
        if (regionsBuilder_ == null) {
          return regions_.size();
        } else {
          return regionsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address getRegions(int index) {
        if (regionsBuilder_ == null) {
          return regions_.get(index);
        } else {
          return regionsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public Builder setRegions(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address value) {
        if (regionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRegionsIsMutable();
          regions_.set(index, value);
          onChanged();
        } else {
          regionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public Builder setRegions(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder builderForValue) {
        if (regionsBuilder_ == null) {
          ensureRegionsIsMutable();
          regions_.set(index, builderForValue.build());
          onChanged();
        } else {
          regionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public Builder addRegions(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address value) {
        if (regionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRegionsIsMutable();
          regions_.add(value);
          onChanged();
        } else {
          regionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public Builder addRegions(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address value) {
        if (regionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRegionsIsMutable();
          regions_.add(index, value);
          onChanged();
        } else {
          regionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public Builder addRegions(
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder builderForValue) {
        if (regionsBuilder_ == null) {
          ensureRegionsIsMutable();
          regions_.add(builderForValue.build());
          onChanged();
        } else {
          regionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public Builder addRegions(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder builderForValue) {
        if (regionsBuilder_ == null) {
          ensureRegionsIsMutable();
          regions_.add(index, builderForValue.build());
          onChanged();
        } else {
          regionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public Builder addAllRegions(
          java.lang.Iterable<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address> values) {
        if (regionsBuilder_ == null) {
          ensureRegionsIsMutable();
          akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
              values, regions_);
          onChanged();
        } else {
          regionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public Builder clearRegions() {
        if (regionsBuilder_ == null) {
          regions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          regionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public Builder removeRegions(int index) {
        if (regionsBuilder_ == null) {
          ensureRegionsIsMutable();
          regions_.remove(index);
          onChanged();
        } else {
          regionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder getRegionsBuilder(
          int index) {
        return getRegionsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder getRegionsOrBuilder(
          int index) {
        if (regionsBuilder_ == null) {
          return regions_.get(index);  } else {
          return regionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder> 
           getRegionsOrBuilderList() {
        if (regionsBuilder_ != null) {
          return regionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(regions_);
        }
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder addRegionsBuilder() {
        return getRegionsFieldBuilder().addBuilder(
            akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.getDefaultInstance());
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder addRegionsBuilder(
          int index) {
        return getRegionsFieldBuilder().addBuilder(
            index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.getDefaultInstance());
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder> 
           getRegionsBuilderList() {
        return getRegionsFieldBuilder().getBuilderList();
      }
      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder> 
          getRegionsFieldBuilder() {
        if (regionsBuilder_ == null) {
          regionsBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder>(
                  regions_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          regions_ = null;
        }
        return regionsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:CurrentRegions)
    }

    // @@protoc_insertion_point(class_scope:CurrentRegions)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<CurrentRegions>
        PARSER = new akka.protobufv3.internal.AbstractParser<CurrentRegions>() {
      @java.lang.Override
      public CurrentRegions parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new CurrentRegions(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<CurrentRegions> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<CurrentRegions> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddressOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Address)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string protocol = 1;</code>
     * @return Whether the protocol field is set.
     */
    boolean hasProtocol();
    /**
     * <code>required string protocol = 1;</code>
     * @return The protocol.
     */
    java.lang.String getProtocol();
    /**
     * <code>required string protocol = 1;</code>
     * @return The bytes for protocol.
     */
    akka.protobufv3.internal.ByteString
        getProtocolBytes();

    /**
     * <code>required string system = 2;</code>
     * @return Whether the system field is set.
     */
    boolean hasSystem();
    /**
     * <code>required string system = 2;</code>
     * @return The system.
     */
    java.lang.String getSystem();
    /**
     * <code>required string system = 2;</code>
     * @return The bytes for system.
     */
    akka.protobufv3.internal.ByteString
        getSystemBytes();

    /**
     * <code>required string hostname = 3;</code>
     * @return Whether the hostname field is set.
     */
    boolean hasHostname();
    /**
     * <code>required string hostname = 3;</code>
     * @return The hostname.
     */
    java.lang.String getHostname();
    /**
     * <code>required string hostname = 3;</code>
     * @return The bytes for hostname.
     */
    akka.protobufv3.internal.ByteString
        getHostnameBytes();

    /**
     * <code>required uint32 port = 4;</code>
     * @return Whether the port field is set.
     */
    boolean hasPort();
    /**
     * <code>required uint32 port = 4;</code>
     * @return The port.
     */
    int getPort();
  }
  /**
   * <pre>
   **
   * Defines a remote address.
   * </pre>
   *
   * Protobuf type {@code Address}
   */
  public  static final class Address extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Address)
      AddressOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Address.newBuilder() to construct.
    private Address(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Address() {
      protocol_ = "";
      system_ = "";
      hostname_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Address();
    }

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

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_Address_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder.class);
    }

    private int bitField0_;
    public static final int PROTOCOL_FIELD_NUMBER = 1;
    private volatile java.lang.Object protocol_;
    /**
     * <code>required string protocol = 1;</code>
     * @return Whether the protocol field is set.
     */
    public boolean hasProtocol() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string protocol = 1;</code>
     * @return The protocol.
     */
    public java.lang.String getProtocol() {
      java.lang.Object ref = protocol_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          protocol_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string protocol = 1;</code>
     * @return The bytes for protocol.
     */
    public akka.protobufv3.internal.ByteString
        getProtocolBytes() {
      java.lang.Object ref = protocol_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        protocol_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int SYSTEM_FIELD_NUMBER = 2;
    private volatile java.lang.Object system_;
    /**
     * <code>required string system = 2;</code>
     * @return Whether the system field is set.
     */
    public boolean hasSystem() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required string system = 2;</code>
     * @return The system.
     */
    public java.lang.String getSystem() {
      java.lang.Object ref = system_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          system_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string system = 2;</code>
     * @return The bytes for system.
     */
    public akka.protobufv3.internal.ByteString
        getSystemBytes() {
      java.lang.Object ref = system_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        system_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int HOSTNAME_FIELD_NUMBER = 3;
    private volatile java.lang.Object hostname_;
    /**
     * <code>required string hostname = 3;</code>
     * @return Whether the hostname field is set.
     */
    public boolean hasHostname() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required string hostname = 3;</code>
     * @return The hostname.
     */
    public java.lang.String getHostname() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          hostname_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string hostname = 3;</code>
     * @return The bytes for hostname.
     */
    public akka.protobufv3.internal.ByteString
        getHostnameBytes() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hostname_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int PORT_FIELD_NUMBER = 4;
    private int port_;
    /**
     * <code>required uint32 port = 4;</code>
     * @return Whether the port field is set.
     */
    public boolean hasPort() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required uint32 port = 4;</code>
     * @return The port.
     */
    public int getPort() {
      return port_;
    }

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

      if (!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;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, protocol_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, system_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 3, hostname_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, port_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, protocol_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(2, system_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(3, hostname_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeUInt32Size(4, port_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address) obj;

      if (hasProtocol() != other.hasProtocol()) return false;
      if (hasProtocol()) {
        if (!getProtocol()
            .equals(other.getProtocol())) return false;
      }
      if (hasSystem() != other.hasSystem()) return false;
      if (hasSystem()) {
        if (!getSystem()
            .equals(other.getSystem())) return false;
      }
      if (hasHostname() != other.hasHostname()) return false;
      if (hasHostname()) {
        if (!getHostname()
            .equals(other.getHostname())) return false;
      }
      if (hasPort() != other.hasPort()) return false;
      if (hasPort()) {
        if (getPort()
            != other.getPort()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasProtocol()) {
        hash = (37 * hash) + PROTOCOL_FIELD_NUMBER;
        hash = (53 * hash) + getProtocol().hashCode();
      }
      if (hasSystem()) {
        hash = (37 * hash) + SYSTEM_FIELD_NUMBER;
        hash = (53 * hash) + getSystem().hashCode();
      }
      if (hasHostname()) {
        hash = (37 * hash) + HOSTNAME_FIELD_NUMBER;
        hash = (53 * hash) + getHostname().hashCode();
      }
      if (hasPort()) {
        hash = (37 * hash) + PORT_FIELD_NUMBER;
        hash = (53 * hash) + getPort();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * Defines a remote address.
     * </pre>
     *
     * Protobuf type {@code Address}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Address)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_Address_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_Address_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        protocol_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        system_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        hostname_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        port_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_Address_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.protocol_ = protocol_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.system_ = system_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.hostname_ = hostname_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.port_ = port_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.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.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasProtocol()) {
          return false;
        }
        if (!hasSystem()) {
          return false;
        }
        if (!hasHostname()) {
          return false;
        }
        if (!hasPort()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object protocol_ = "";
      /**
       * <code>required string protocol = 1;</code>
       * @return Whether the protocol field is set.
       */
      public boolean hasProtocol() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string protocol = 1;</code>
       * @return The protocol.
       */
      public java.lang.String getProtocol() {
        java.lang.Object ref = protocol_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            protocol_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string protocol = 1;</code>
       * @return The bytes for protocol.
       */
      public akka.protobufv3.internal.ByteString
          getProtocolBytes() {
        java.lang.Object ref = protocol_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          protocol_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string protocol = 1;</code>
       * @param value The protocol to set.
       * @return This builder for chaining.
       */
      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>
       * @return This builder for chaining.
       */
      public Builder clearProtocol() {
        bitField0_ = (bitField0_ & ~0x00000001);
        protocol_ = getDefaultInstance().getProtocol();
        onChanged();
        return this;
      }
      /**
       * <code>required string protocol = 1;</code>
       * @param value The bytes for protocol to set.
       * @return This builder for chaining.
       */
      public Builder setProtocolBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        protocol_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object system_ = "";
      /**
       * <code>required string system = 2;</code>
       * @return Whether the system field is set.
       */
      public boolean hasSystem() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required string system = 2;</code>
       * @return The system.
       */
      public java.lang.String getSystem() {
        java.lang.Object ref = system_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            system_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string system = 2;</code>
       * @return The bytes for system.
       */
      public akka.protobufv3.internal.ByteString
          getSystemBytes() {
        java.lang.Object ref = system_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          system_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string system = 2;</code>
       * @param value The system to set.
       * @return This builder for chaining.
       */
      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>
       * @return This builder for chaining.
       */
      public Builder clearSystem() {
        bitField0_ = (bitField0_ & ~0x00000002);
        system_ = getDefaultInstance().getSystem();
        onChanged();
        return this;
      }
      /**
       * <code>required string system = 2;</code>
       * @param value The bytes for system to set.
       * @return This builder for chaining.
       */
      public Builder setSystemBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        system_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object hostname_ = "";
      /**
       * <code>required string hostname = 3;</code>
       * @return Whether the hostname field is set.
       */
      public boolean hasHostname() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required string hostname = 3;</code>
       * @return The hostname.
       */
      public java.lang.String getHostname() {
        java.lang.Object ref = hostname_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            hostname_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string hostname = 3;</code>
       * @return The bytes for hostname.
       */
      public akka.protobufv3.internal.ByteString
          getHostnameBytes() {
        java.lang.Object ref = hostname_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hostname_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string hostname = 3;</code>
       * @param value The hostname to set.
       * @return This builder for chaining.
       */
      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>
       * @return This builder for chaining.
       */
      public Builder clearHostname() {
        bitField0_ = (bitField0_ & ~0x00000004);
        hostname_ = getDefaultInstance().getHostname();
        onChanged();
        return this;
      }
      /**
       * <code>required string hostname = 3;</code>
       * @param value The bytes for hostname to set.
       * @return This builder for chaining.
       */
      public Builder setHostnameBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        hostname_ = value;
        onChanged();
        return this;
      }

      private int port_ ;
      /**
       * <code>required uint32 port = 4;</code>
       * @return Whether the port field is set.
       */
      public boolean hasPort() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required uint32 port = 4;</code>
       * @return The port.
       */
      public int getPort() {
        return port_;
      }
      /**
       * <code>required uint32 port = 4;</code>
       * @param value The port to set.
       * @return This builder for chaining.
       */
      public Builder setPort(int value) {
        bitField0_ |= 0x00000008;
        port_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 port = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearPort() {
        bitField0_ = (bitField0_ & ~0x00000008);
        port_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Address)
    }

    // @@protoc_insertion_point(class_scope:Address)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Address>
        PARSER = new akka.protobufv3.internal.AbstractParser<Address>() {
      @java.lang.Override
      public Address parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Address(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Address> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StartEntityOrBuilder extends
      // @@protoc_insertion_point(interface_extends:StartEntity)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string entityId = 1;</code>
     * @return Whether the entityId field is set.
     */
    boolean hasEntityId();
    /**
     * <code>required string entityId = 1;</code>
     * @return The entityId.
     */
    java.lang.String getEntityId();
    /**
     * <code>required string entityId = 1;</code>
     * @return The bytes for entityId.
     */
    akka.protobufv3.internal.ByteString
        getEntityIdBytes();
  }
  /**
   * Protobuf type {@code StartEntity}
   */
  public  static final class StartEntity extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:StartEntity)
      StartEntityOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StartEntity.newBuilder() to construct.
    private StartEntity(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private StartEntity() {
      entityId_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new StartEntity();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StartEntity(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              entityId_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StartEntity_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StartEntity_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity.Builder.class);
    }

    private int bitField0_;
    public static final int ENTITYID_FIELD_NUMBER = 1;
    private volatile java.lang.Object entityId_;
    /**
     * <code>required string entityId = 1;</code>
     * @return Whether the entityId field is set.
     */
    public boolean hasEntityId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string entityId = 1;</code>
     * @return The entityId.
     */
    public java.lang.String getEntityId() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          entityId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string entityId = 1;</code>
     * @return The bytes for entityId.
     */
    public akka.protobufv3.internal.ByteString
        getEntityIdBytes() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        entityId_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, entityId_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, entityId_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity) obj;

      if (hasEntityId() != other.hasEntityId()) return false;
      if (hasEntityId()) {
        if (!getEntityId()
            .equals(other.getEntityId())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasEntityId()) {
        hash = (37 * hash) + ENTITYID_FIELD_NUMBER;
        hash = (53 * hash) + getEntityId().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code StartEntity}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:StartEntity)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StartEntity_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StartEntity_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        entityId_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StartEntity_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entityId_ = entityId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity.getDefaultInstance()) return this;
        if (other.hasEntityId()) {
          bitField0_ |= 0x00000001;
          entityId_ = other.entityId_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object entityId_ = "";
      /**
       * <code>required string entityId = 1;</code>
       * @return Whether the entityId field is set.
       */
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return The entityId.
       */
      public java.lang.String getEntityId() {
        java.lang.Object ref = entityId_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            entityId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return The bytes for entityId.
       */
      public akka.protobufv3.internal.ByteString
          getEntityIdBytes() {
        java.lang.Object ref = entityId_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          entityId_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       * @param value The entityId to set.
       * @return This builder for chaining.
       */
      public Builder setEntityId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearEntityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entityId_ = getDefaultInstance().getEntityId();
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       * @param value The bytes for entityId to set.
       * @return This builder for chaining.
       */
      public Builder setEntityIdBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:StartEntity)
    }

    // @@protoc_insertion_point(class_scope:StartEntity)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<StartEntity>
        PARSER = new akka.protobufv3.internal.AbstractParser<StartEntity>() {
      @java.lang.Override
      public StartEntity parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new StartEntity(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<StartEntity> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<StartEntity> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StartEntityAckOrBuilder extends
      // @@protoc_insertion_point(interface_extends:StartEntityAck)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string entityId = 1;</code>
     * @return Whether the entityId field is set.
     */
    boolean hasEntityId();
    /**
     * <code>required string entityId = 1;</code>
     * @return The entityId.
     */
    java.lang.String getEntityId();
    /**
     * <code>required string entityId = 1;</code>
     * @return The bytes for entityId.
     */
    akka.protobufv3.internal.ByteString
        getEntityIdBytes();

    /**
     * <code>required string shardId = 2;</code>
     * @return Whether the shardId field is set.
     */
    boolean hasShardId();
    /**
     * <code>required string shardId = 2;</code>
     * @return The shardId.
     */
    java.lang.String getShardId();
    /**
     * <code>required string shardId = 2;</code>
     * @return The bytes for shardId.
     */
    akka.protobufv3.internal.ByteString
        getShardIdBytes();
  }
  /**
   * Protobuf type {@code StartEntityAck}
   */
  public  static final class StartEntityAck extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:StartEntityAck)
      StartEntityAckOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StartEntityAck.newBuilder() to construct.
    private StartEntityAck(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private StartEntityAck() {
      entityId_ = "";
      shardId_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new StartEntityAck();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StartEntityAck(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              entityId_ = bs;
              break;
            }
            case 18: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              shardId_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StartEntityAck_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StartEntityAck_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck.Builder.class);
    }

    private int bitField0_;
    public static final int ENTITYID_FIELD_NUMBER = 1;
    private volatile java.lang.Object entityId_;
    /**
     * <code>required string entityId = 1;</code>
     * @return Whether the entityId field is set.
     */
    public boolean hasEntityId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string entityId = 1;</code>
     * @return The entityId.
     */
    public java.lang.String getEntityId() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          entityId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string entityId = 1;</code>
     * @return The bytes for entityId.
     */
    public akka.protobufv3.internal.ByteString
        getEntityIdBytes() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        entityId_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int SHARDID_FIELD_NUMBER = 2;
    private volatile java.lang.Object shardId_;
    /**
     * <code>required string shardId = 2;</code>
     * @return Whether the shardId field is set.
     */
    public boolean hasShardId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required string shardId = 2;</code>
     * @return The shardId.
     */
    public java.lang.String getShardId() {
      java.lang.Object ref = shardId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          shardId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string shardId = 2;</code>
     * @return The bytes for shardId.
     */
    public akka.protobufv3.internal.ByteString
        getShardIdBytes() {
      java.lang.Object ref = shardId_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shardId_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, entityId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, shardId_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, entityId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(2, shardId_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck) obj;

      if (hasEntityId() != other.hasEntityId()) return false;
      if (hasEntityId()) {
        if (!getEntityId()
            .equals(other.getEntityId())) return false;
      }
      if (hasShardId() != other.hasShardId()) return false;
      if (hasShardId()) {
        if (!getShardId()
            .equals(other.getShardId())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasEntityId()) {
        hash = (37 * hash) + ENTITYID_FIELD_NUMBER;
        hash = (53 * hash) + getEntityId().hashCode();
      }
      if (hasShardId()) {
        hash = (37 * hash) + SHARDID_FIELD_NUMBER;
        hash = (53 * hash) + getShardId().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code StartEntityAck}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:StartEntityAck)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAckOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StartEntityAck_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StartEntityAck_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        entityId_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        shardId_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StartEntityAck_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entityId_ = entityId_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.shardId_ = shardId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck.getDefaultInstance()) return this;
        if (other.hasEntityId()) {
          bitField0_ |= 0x00000001;
          entityId_ = other.entityId_;
          onChanged();
        }
        if (other.hasShardId()) {
          bitField0_ |= 0x00000002;
          shardId_ = other.shardId_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object entityId_ = "";
      /**
       * <code>required string entityId = 1;</code>
       * @return Whether the entityId field is set.
       */
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return The entityId.
       */
      public java.lang.String getEntityId() {
        java.lang.Object ref = entityId_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            entityId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return The bytes for entityId.
       */
      public akka.protobufv3.internal.ByteString
          getEntityIdBytes() {
        java.lang.Object ref = entityId_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          entityId_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       * @param value The entityId to set.
       * @return This builder for chaining.
       */
      public Builder setEntityId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearEntityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entityId_ = getDefaultInstance().getEntityId();
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       * @param value The bytes for entityId to set.
       * @return This builder for chaining.
       */
      public Builder setEntityIdBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object shardId_ = "";
      /**
       * <code>required string shardId = 2;</code>
       * @return Whether the shardId field is set.
       */
      public boolean hasShardId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required string shardId = 2;</code>
       * @return The shardId.
       */
      public java.lang.String getShardId() {
        java.lang.Object ref = shardId_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            shardId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string shardId = 2;</code>
       * @return The bytes for shardId.
       */
      public akka.protobufv3.internal.ByteString
          getShardIdBytes() {
        java.lang.Object ref = shardId_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shardId_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string shardId = 2;</code>
       * @param value The shardId to set.
       * @return This builder for chaining.
       */
      public Builder setShardId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        shardId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string shardId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearShardId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        shardId_ = getDefaultInstance().getShardId();
        onChanged();
        return this;
      }
      /**
       * <code>required string shardId = 2;</code>
       * @param value The bytes for shardId to set.
       * @return This builder for chaining.
       */
      public Builder setShardIdBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        shardId_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:StartEntityAck)
    }

    // @@protoc_insertion_point(class_scope:StartEntityAck)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<StartEntityAck>
        PARSER = new akka.protobufv3.internal.AbstractParser<StartEntityAck>() {
      @java.lang.Override
      public StartEntityAck parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new StartEntityAck(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<StartEntityAck> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<StartEntityAck> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CurrentShardStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CurrentShardState)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string shardId = 1;</code>
     * @return Whether the shardId field is set.
     */
    boolean hasShardId();
    /**
     * <code>required string shardId = 1;</code>
     * @return The shardId.
     */
    java.lang.String getShardId();
    /**
     * <code>required string shardId = 1;</code>
     * @return The bytes for shardId.
     */
    akka.protobufv3.internal.ByteString
        getShardIdBytes();

    /**
     * <code>repeated string entityIds = 2;</code>
     * @return A list containing the entityIds.
     */
    java.util.List<java.lang.String>
        getEntityIdsList();
    /**
     * <code>repeated string entityIds = 2;</code>
     * @return The count of entityIds.
     */
    int getEntityIdsCount();
    /**
     * <code>repeated string entityIds = 2;</code>
     * @param index The index of the element to return.
     * @return The entityIds at the given index.
     */
    java.lang.String getEntityIds(int index);
    /**
     * <code>repeated string entityIds = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the entityIds at the given index.
     */
    akka.protobufv3.internal.ByteString
        getEntityIdsBytes(int index);
  }
  /**
   * Protobuf type {@code CurrentShardState}
   */
  public  static final class CurrentShardState extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:CurrentShardState)
      CurrentShardStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CurrentShardState.newBuilder() to construct.
    private CurrentShardState(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CurrentShardState() {
      shardId_ = "";
      entityIds_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new CurrentShardState();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private CurrentShardState(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              shardId_ = bs;
              break;
            }
            case 18: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                entityIds_ = new akka.protobufv3.internal.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              entityIds_.add(bs);
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          entityIds_ = entityIds_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CurrentShardState_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CurrentShardState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState.Builder.class);
    }

    private int bitField0_;
    public static final int SHARDID_FIELD_NUMBER = 1;
    private volatile java.lang.Object shardId_;
    /**
     * <code>required string shardId = 1;</code>
     * @return Whether the shardId field is set.
     */
    public boolean hasShardId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string shardId = 1;</code>
     * @return The shardId.
     */
    public java.lang.String getShardId() {
      java.lang.Object ref = shardId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          shardId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string shardId = 1;</code>
     * @return The bytes for shardId.
     */
    public akka.protobufv3.internal.ByteString
        getShardIdBytes() {
      java.lang.Object ref = shardId_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shardId_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int ENTITYIDS_FIELD_NUMBER = 2;
    private akka.protobufv3.internal.LazyStringList entityIds_;
    /**
     * <code>repeated string entityIds = 2;</code>
     * @return A list containing the entityIds.
     */
    public akka.protobufv3.internal.ProtocolStringList
        getEntityIdsList() {
      return entityIds_;
    }
    /**
     * <code>repeated string entityIds = 2;</code>
     * @return The count of entityIds.
     */
    public int getEntityIdsCount() {
      return entityIds_.size();
    }
    /**
     * <code>repeated string entityIds = 2;</code>
     * @param index The index of the element to return.
     * @return The entityIds at the given index.
     */
    public java.lang.String getEntityIds(int index) {
      return entityIds_.get(index);
    }
    /**
     * <code>repeated string entityIds = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the entityIds at the given index.
     */
    public akka.protobufv3.internal.ByteString
        getEntityIdsBytes(int index) {
      return entityIds_.getByteString(index);
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, shardId_);
      }
      for (int i = 0; i < entityIds_.size(); i++) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, entityIds_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, shardId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < entityIds_.size(); i++) {
          dataSize += computeStringSizeNoTag(entityIds_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getEntityIdsList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState) obj;

      if (hasShardId() != other.hasShardId()) return false;
      if (hasShardId()) {
        if (!getShardId()
            .equals(other.getShardId())) return false;
      }
      if (!getEntityIdsList()
          .equals(other.getEntityIdsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasShardId()) {
        hash = (37 * hash) + SHARDID_FIELD_NUMBER;
        hash = (53 * hash) + getShardId().hashCode();
      }
      if (getEntityIdsCount() > 0) {
        hash = (37 * hash) + ENTITYIDS_FIELD_NUMBER;
        hash = (53 * hash) + getEntityIdsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CurrentShardState}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:CurrentShardState)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardStateOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CurrentShardState_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CurrentShardState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        shardId_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        entityIds_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CurrentShardState_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.shardId_ = shardId_;
        if (((bitField0_ & 0x00000002) != 0)) {
          entityIds_ = entityIds_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.entityIds_ = entityIds_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState.getDefaultInstance()) return this;
        if (other.hasShardId()) {
          bitField0_ |= 0x00000001;
          shardId_ = other.shardId_;
          onChanged();
        }
        if (!other.entityIds_.isEmpty()) {
          if (entityIds_.isEmpty()) {
            entityIds_ = other.entityIds_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureEntityIdsIsMutable();
            entityIds_.addAll(other.entityIds_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object shardId_ = "";
      /**
       * <code>required string shardId = 1;</code>
       * @return Whether the shardId field is set.
       */
      public boolean hasShardId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string shardId = 1;</code>
       * @return The shardId.
       */
      public java.lang.String getShardId() {
        java.lang.Object ref = shardId_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            shardId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string shardId = 1;</code>
       * @return The bytes for shardId.
       */
      public akka.protobufv3.internal.ByteString
          getShardIdBytes() {
        java.lang.Object ref = shardId_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shardId_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string shardId = 1;</code>
       * @param value The shardId to set.
       * @return This builder for chaining.
       */
      public Builder setShardId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shardId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string shardId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearShardId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        shardId_ = getDefaultInstance().getShardId();
        onChanged();
        return this;
      }
      /**
       * <code>required string shardId = 1;</code>
       * @param value The bytes for shardId to set.
       * @return This builder for chaining.
       */
      public Builder setShardIdBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shardId_ = value;
        onChanged();
        return this;
      }

      private akka.protobufv3.internal.LazyStringList entityIds_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
      private void ensureEntityIdsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          entityIds_ = new akka.protobufv3.internal.LazyStringArrayList(entityIds_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @return A list containing the entityIds.
       */
      public akka.protobufv3.internal.ProtocolStringList
          getEntityIdsList() {
        return entityIds_.getUnmodifiableView();
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @return The count of entityIds.
       */
      public int getEntityIdsCount() {
        return entityIds_.size();
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @param index The index of the element to return.
       * @return The entityIds at the given index.
       */
      public java.lang.String getEntityIds(int index) {
        return entityIds_.get(index);
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the entityIds at the given index.
       */
      public akka.protobufv3.internal.ByteString
          getEntityIdsBytes(int index) {
        return entityIds_.getByteString(index);
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @param index The index to set the value at.
       * @param value The entityIds to set.
       * @return This builder for chaining.
       */
      public Builder setEntityIds(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntityIdsIsMutable();
        entityIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @param value The entityIds to add.
       * @return This builder for chaining.
       */
      public Builder addEntityIds(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntityIdsIsMutable();
        entityIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @param values The entityIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllEntityIds(
          java.lang.Iterable<java.lang.String> values) {
        ensureEntityIdsIsMutable();
        akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
            values, entityIds_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearEntityIds() {
        entityIds_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @param value The bytes of the entityIds to add.
       * @return This builder for chaining.
       */
      public Builder addEntityIdsBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntityIdsIsMutable();
        entityIds_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:CurrentShardState)
    }

    // @@protoc_insertion_point(class_scope:CurrentShardState)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<CurrentShardState>
        PARSER = new akka.protobufv3.internal.AbstractParser<CurrentShardState>() {
      @java.lang.Override
      public CurrentShardState parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new CurrentShardState(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<CurrentShardState> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<CurrentShardState> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ShardStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ShardState)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string shardId = 1;</code>
     * @return Whether the shardId field is set.
     */
    boolean hasShardId();
    /**
     * <code>required string shardId = 1;</code>
     * @return The shardId.
     */
    java.lang.String getShardId();
    /**
     * <code>required string shardId = 1;</code>
     * @return The bytes for shardId.
     */
    akka.protobufv3.internal.ByteString
        getShardIdBytes();

    /**
     * <code>repeated string entityIds = 2;</code>
     * @return A list containing the entityIds.
     */
    java.util.List<java.lang.String>
        getEntityIdsList();
    /**
     * <code>repeated string entityIds = 2;</code>
     * @return The count of entityIds.
     */
    int getEntityIdsCount();
    /**
     * <code>repeated string entityIds = 2;</code>
     * @param index The index of the element to return.
     * @return The entityIds at the given index.
     */
    java.lang.String getEntityIds(int index);
    /**
     * <code>repeated string entityIds = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the entityIds at the given index.
     */
    akka.protobufv3.internal.ByteString
        getEntityIdsBytes(int index);
  }
  /**
   * Protobuf type {@code ShardState}
   */
  public  static final class ShardState extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ShardState)
      ShardStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ShardState.newBuilder() to construct.
    private ShardState(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ShardState() {
      shardId_ = "";
      entityIds_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new ShardState();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ShardState(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              shardId_ = bs;
              break;
            }
            case 18: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                entityIds_ = new akka.protobufv3.internal.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              entityIds_.add(bs);
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          entityIds_ = entityIds_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardState_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.Builder.class);
    }

    private int bitField0_;
    public static final int SHARDID_FIELD_NUMBER = 1;
    private volatile java.lang.Object shardId_;
    /**
     * <code>required string shardId = 1;</code>
     * @return Whether the shardId field is set.
     */
    public boolean hasShardId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string shardId = 1;</code>
     * @return The shardId.
     */
    public java.lang.String getShardId() {
      java.lang.Object ref = shardId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          shardId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string shardId = 1;</code>
     * @return The bytes for shardId.
     */
    public akka.protobufv3.internal.ByteString
        getShardIdBytes() {
      java.lang.Object ref = shardId_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shardId_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int ENTITYIDS_FIELD_NUMBER = 2;
    private akka.protobufv3.internal.LazyStringList entityIds_;
    /**
     * <code>repeated string entityIds = 2;</code>
     * @return A list containing the entityIds.
     */
    public akka.protobufv3.internal.ProtocolStringList
        getEntityIdsList() {
      return entityIds_;
    }
    /**
     * <code>repeated string entityIds = 2;</code>
     * @return The count of entityIds.
     */
    public int getEntityIdsCount() {
      return entityIds_.size();
    }
    /**
     * <code>repeated string entityIds = 2;</code>
     * @param index The index of the element to return.
     * @return The entityIds at the given index.
     */
    public java.lang.String getEntityIds(int index) {
      return entityIds_.get(index);
    }
    /**
     * <code>repeated string entityIds = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the entityIds at the given index.
     */
    public akka.protobufv3.internal.ByteString
        getEntityIdsBytes(int index) {
      return entityIds_.getByteString(index);
    }

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

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

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, shardId_);
      }
      for (int i = 0; i < entityIds_.size(); i++) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, entityIds_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, shardId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < entityIds_.size(); i++) {
          dataSize += computeStringSizeNoTag(entityIds_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getEntityIdsList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState) obj;

      if (hasShardId() != other.hasShardId()) return false;
      if (hasShardId()) {
        if (!getShardId()
            .equals(other.getShardId())) return false;
      }
      if (!getEntityIdsList()
          .equals(other.getEntityIdsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasShardId()) {
        hash = (37 * hash) + SHARDID_FIELD_NUMBER;
        hash = (53 * hash) + getShardId().hashCode();
      }
      if (getEntityIdsCount() > 0) {
        hash = (37 * hash) + ENTITYIDS_FIELD_NUMBER;
        hash = (53 * hash) + getEntityIdsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ShardState}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ShardState)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStateOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardState_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        shardId_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        entityIds_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardState_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.shardId_ = shardId_;
        if (((bitField0_ & 0x00000002) != 0)) {
          entityIds_ = entityIds_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.entityIds_ = entityIds_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.getDefaultInstance()) return this;
        if (other.hasShardId()) {
          bitField0_ |= 0x00000001;
          shardId_ = other.shardId_;
          onChanged();
        }
        if (!other.entityIds_.isEmpty()) {
          if (entityIds_.isEmpty()) {
            entityIds_ = other.entityIds_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureEntityIdsIsMutable();
            entityIds_.addAll(other.entityIds_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object shardId_ = "";
      /**
       * <code>required string shardId = 1;</code>
       * @return Whether the shardId field is set.
       */
      public boolean hasShardId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string shardId = 1;</code>
       * @return The shardId.
       */
      public java.lang.String getShardId() {
        java.lang.Object ref = shardId_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            shardId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string shardId = 1;</code>
       * @return The bytes for shardId.
       */
      public akka.protobufv3.internal.ByteString
          getShardIdBytes() {
        java.lang.Object ref = shardId_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shardId_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string shardId = 1;</code>
       * @param value The shardId to set.
       * @return This builder for chaining.
       */
      public Builder setShardId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shardId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string shardId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearShardId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        shardId_ = getDefaultInstance().getShardId();
        onChanged();
        return this;
      }
      /**
       * <code>required string shardId = 1;</code>
       * @param value The bytes for shardId to set.
       * @return This builder for chaining.
       */
      public Builder setShardIdBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shardId_ = value;
        onChanged();
        return this;
      }

      private akka.protobufv3.internal.LazyStringList entityIds_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
      private void ensureEntityIdsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          entityIds_ = new akka.protobufv3.internal.LazyStringArrayList(entityIds_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @return A list containing the entityIds.
       */
      public akka.protobufv3.internal.ProtocolStringList
          getEntityIdsList() {
        return entityIds_.getUnmodifiableView();
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @return The count of entityIds.
       */
      public int getEntityIdsCount() {
        return entityIds_.size();
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @param index The index of the element to return.
       * @return The entityIds at the given index.
       */
      public java.lang.String getEntityIds(int index) {
        return entityIds_.get(index);
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the entityIds at the given index.
       */
      public akka.protobufv3.internal.ByteString
          getEntityIdsBytes(int index) {
        return entityIds_.getByteString(index);
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @param index The index to set the value at.
       * @param value The entityIds to set.
       * @return This builder for chaining.
       */
      public Builder setEntityIds(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntityIdsIsMutable();
        entityIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @param value The entityIds to add.
       * @return This builder for chaining.
       */
      public Builder addEntityIds(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntityIdsIsMutable();
        entityIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @param values The entityIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllEntityIds(
          java.lang.Iterable<java.lang.String> values) {
        ensureEntityIdsIsMutable();
        akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
            values, entityIds_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearEntityIds() {
        entityIds_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entityIds = 2;</code>
       * @param value The bytes of the entityIds to add.
       * @return This builder for chaining.
       */
      public Builder addEntityIdsBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntityIdsIsMutable();
        entityIds_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ShardState)
    }

    // @@protoc_insertion_point(class_scope:ShardState)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<ShardState>
        PARSER = new akka.protobufv3.internal.AbstractParser<ShardState>() {
      @java.lang.Override
      public ShardState parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new ShardState(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<ShardState> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<ShardState> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CurrentShardRegionStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CurrentShardRegionState)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>repeated .ShardState shards = 1;</code>
     */
    java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState> 
        getShardsList();
    /**
     * <code>repeated .ShardState shards = 1;</code>
     */
    akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState getShards(int index);
    /**
     * <code>repeated .ShardState shards = 1;</code>
     */
    int getShardsCount();
    /**
     * <code>repeated .ShardState shards = 1;</code>
     */
    java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStateOrBuilder> 
        getShardsOrBuilderList();
    /**
     * <code>repeated .ShardState shards = 1;</code>
     */
    akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStateOrBuilder getShardsOrBuilder(
        int index);

    /**
     * <code>repeated string failed = 2;</code>
     * @return A list containing the failed.
     */
    java.util.List<java.lang.String>
        getFailedList();
    /**
     * <code>repeated string failed = 2;</code>
     * @return The count of failed.
     */
    int getFailedCount();
    /**
     * <code>repeated string failed = 2;</code>
     * @param index The index of the element to return.
     * @return The failed at the given index.
     */
    java.lang.String getFailed(int index);
    /**
     * <code>repeated string failed = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the failed at the given index.
     */
    akka.protobufv3.internal.ByteString
        getFailedBytes(int index);
  }
  /**
   * Protobuf type {@code CurrentShardRegionState}
   */
  public  static final class CurrentShardRegionState extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:CurrentShardRegionState)
      CurrentShardRegionStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CurrentShardRegionState.newBuilder() to construct.
    private CurrentShardRegionState(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CurrentShardRegionState() {
      shards_ = java.util.Collections.emptyList();
      failed_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new CurrentShardRegionState();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private CurrentShardRegionState(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                shards_ = new java.util.ArrayList<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState>();
                mutable_bitField0_ |= 0x00000001;
              }
              shards_.add(
                  input.readMessage(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.PARSER, extensionRegistry));
              break;
            }
            case 18: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                failed_ = new akka.protobufv3.internal.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              failed_.add(bs);
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          shards_ = java.util.Collections.unmodifiableList(shards_);
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          failed_ = failed_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CurrentShardRegionState_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CurrentShardRegionState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState.Builder.class);
    }

    public static final int SHARDS_FIELD_NUMBER = 1;
    private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState> shards_;
    /**
     * <code>repeated .ShardState shards = 1;</code>
     */
    public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState> getShardsList() {
      return shards_;
    }
    /**
     * <code>repeated .ShardState shards = 1;</code>
     */
    public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStateOrBuilder> 
        getShardsOrBuilderList() {
      return shards_;
    }
    /**
     * <code>repeated .ShardState shards = 1;</code>
     */
    public int getShardsCount() {
      return shards_.size();
    }
    /**
     * <code>repeated .ShardState shards = 1;</code>
     */
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState getShards(int index) {
      return shards_.get(index);
    }
    /**
     * <code>repeated .ShardState shards = 1;</code>
     */
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStateOrBuilder getShardsOrBuilder(
        int index) {
      return shards_.get(index);
    }

    public static final int FAILED_FIELD_NUMBER = 2;
    private akka.protobufv3.internal.LazyStringList failed_;
    /**
     * <code>repeated string failed = 2;</code>
     * @return A list containing the failed.
     */
    public akka.protobufv3.internal.ProtocolStringList
        getFailedList() {
      return failed_;
    }
    /**
     * <code>repeated string failed = 2;</code>
     * @return The count of failed.
     */
    public int getFailedCount() {
      return failed_.size();
    }
    /**
     * <code>repeated string failed = 2;</code>
     * @param index The index of the element to return.
     * @return The failed at the given index.
     */
    public java.lang.String getFailed(int index) {
      return failed_.get(index);
    }
    /**
     * <code>repeated string failed = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the failed at the given index.
     */
    public akka.protobufv3.internal.ByteString
        getFailedBytes(int index) {
      return failed_.getByteString(index);
    }

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

      for (int i = 0; i < getShardsCount(); i++) {
        if (!getShards(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < shards_.size(); i++) {
        output.writeMessage(1, shards_.get(i));
      }
      for (int i = 0; i < failed_.size(); i++) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, failed_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < shards_.size(); i++) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, shards_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < failed_.size(); i++) {
          dataSize += computeStringSizeNoTag(failed_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getFailedList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState) obj;

      if (!getShardsList()
          .equals(other.getShardsList())) return false;
      if (!getFailedList()
          .equals(other.getFailedList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getShardsCount() > 0) {
        hash = (37 * hash) + SHARDS_FIELD_NUMBER;
        hash = (53 * hash) + getShardsList().hashCode();
      }
      if (getFailedCount() > 0) {
        hash = (37 * hash) + FAILED_FIELD_NUMBER;
        hash = (53 * hash) + getFailedList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CurrentShardRegionState}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:CurrentShardRegionState)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionStateOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CurrentShardRegionState_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CurrentShardRegionState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getShardsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (shardsBuilder_ == null) {
          shards_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          shardsBuilder_.clear();
        }
        failed_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CurrentShardRegionState_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState(this);
        int from_bitField0_ = bitField0_;
        if (shardsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            shards_ = java.util.Collections.unmodifiableList(shards_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.shards_ = shards_;
        } else {
          result.shards_ = shardsBuilder_.build();
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          failed_ = failed_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.failed_ = failed_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState.getDefaultInstance()) return this;
        if (shardsBuilder_ == null) {
          if (!other.shards_.isEmpty()) {
            if (shards_.isEmpty()) {
              shards_ = other.shards_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureShardsIsMutable();
              shards_.addAll(other.shards_);
            }
            onChanged();
          }
        } else {
          if (!other.shards_.isEmpty()) {
            if (shardsBuilder_.isEmpty()) {
              shardsBuilder_.dispose();
              shardsBuilder_ = null;
              shards_ = other.shards_;
              bitField0_ = (bitField0_ & ~0x00000001);
              shardsBuilder_ = 
                akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getShardsFieldBuilder() : null;
            } else {
              shardsBuilder_.addAllMessages(other.shards_);
            }
          }
        }
        if (!other.failed_.isEmpty()) {
          if (failed_.isEmpty()) {
            failed_ = other.failed_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureFailedIsMutable();
            failed_.addAll(other.failed_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        for (int i = 0; i < getShardsCount(); i++) {
          if (!getShards(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState> shards_ =
        java.util.Collections.emptyList();
      private void ensureShardsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          shards_ = new java.util.ArrayList<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState>(shards_);
          bitField0_ |= 0x00000001;
         }
      }

      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStateOrBuilder> shardsBuilder_;

      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState> getShardsList() {
        if (shardsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(shards_);
        } else {
          return shardsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public int getShardsCount() {
        if (shardsBuilder_ == null) {
          return shards_.size();
        } else {
          return shardsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState getShards(int index) {
        if (shardsBuilder_ == null) {
          return shards_.get(index);
        } else {
          return shardsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public Builder setShards(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState value) {
        if (shardsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureShardsIsMutable();
          shards_.set(index, value);
          onChanged();
        } else {
          shardsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public Builder setShards(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.Builder builderForValue) {
        if (shardsBuilder_ == null) {
          ensureShardsIsMutable();
          shards_.set(index, builderForValue.build());
          onChanged();
        } else {
          shardsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public Builder addShards(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState value) {
        if (shardsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureShardsIsMutable();
          shards_.add(value);
          onChanged();
        } else {
          shardsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public Builder addShards(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState value) {
        if (shardsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureShardsIsMutable();
          shards_.add(index, value);
          onChanged();
        } else {
          shardsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public Builder addShards(
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.Builder builderForValue) {
        if (shardsBuilder_ == null) {
          ensureShardsIsMutable();
          shards_.add(builderForValue.build());
          onChanged();
        } else {
          shardsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public Builder addShards(
          int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.Builder builderForValue) {
        if (shardsBuilder_ == null) {
          ensureShardsIsMutable();
          shards_.add(index, builderForValue.build());
          onChanged();
        } else {
          shardsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public Builder addAllShards(
          java.lang.Iterable<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState> values) {
        if (shardsBuilder_ == null) {
          ensureShardsIsMutable();
          akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
              values, shards_);
          onChanged();
        } else {
          shardsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public Builder clearShards() {
        if (shardsBuilder_ == null) {
          shards_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          shardsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public Builder removeShards(int index) {
        if (shardsBuilder_ == null) {
          ensureShardsIsMutable();
          shards_.remove(index);
          onChanged();
        } else {
          shardsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.Builder getShardsBuilder(
          int index) {
        return getShardsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStateOrBuilder getShardsOrBuilder(
          int index) {
        if (shardsBuilder_ == null) {
          return shards_.get(index);  } else {
          return shardsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStateOrBuilder> 
           getShardsOrBuilderList() {
        if (shardsBuilder_ != null) {
          return shardsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(shards_);
        }
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.Builder addShardsBuilder() {
        return getShardsFieldBuilder().addBuilder(
            akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.getDefaultInstance());
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.Builder addShardsBuilder(
          int index) {
        return getShardsFieldBuilder().addBuilder(
            index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.getDefaultInstance());
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.Builder> 
           getShardsBuilderList() {
        return getShardsFieldBuilder().getBuilderList();
      }
      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStateOrBuilder> 
          getShardsFieldBuilder() {
        if (shardsBuilder_ == null) {
          shardsBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStateOrBuilder>(
                  shards_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          shards_ = null;
        }
        return shardsBuilder_;
      }

      private akka.protobufv3.internal.LazyStringList failed_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
      private void ensureFailedIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          failed_ = new akka.protobufv3.internal.LazyStringArrayList(failed_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @return A list containing the failed.
       */
      public akka.protobufv3.internal.ProtocolStringList
          getFailedList() {
        return failed_.getUnmodifiableView();
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @return The count of failed.
       */
      public int getFailedCount() {
        return failed_.size();
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @param index The index of the element to return.
       * @return The failed at the given index.
       */
      public java.lang.String getFailed(int index) {
        return failed_.get(index);
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the failed at the given index.
       */
      public akka.protobufv3.internal.ByteString
          getFailedBytes(int index) {
        return failed_.getByteString(index);
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @param index The index to set the value at.
       * @param value The failed to set.
       * @return This builder for chaining.
       */
      public Builder setFailed(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureFailedIsMutable();
        failed_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @param value The failed to add.
       * @return This builder for chaining.
       */
      public Builder addFailed(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureFailedIsMutable();
        failed_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @param values The failed to add.
       * @return This builder for chaining.
       */
      public Builder addAllFailed(
          java.lang.Iterable<java.lang.String> values) {
        ensureFailedIsMutable();
        akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
            values, failed_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearFailed() {
        failed_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string failed = 2;</code>
       * @param value The bytes of the failed to add.
       * @return This builder for chaining.
       */
      public Builder addFailedBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureFailedIsMutable();
        failed_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:CurrentShardRegionState)
    }

    // @@protoc_insertion_point(class_scope:CurrentShardRegionState)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<CurrentShardRegionState>
        PARSER = new akka.protobufv3.internal.AbstractParser<CurrentShardRegionState>() {
      @java.lang.Override
      public CurrentShardRegionState parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new CurrentShardRegionState(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<CurrentShardRegionState> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<CurrentShardRegionState> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RememberedShardStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:RememberedShardState)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>repeated string shardId = 1;</code>
     * @return A list containing the shardId.
     */
    java.util.List<java.lang.String>
        getShardIdList();
    /**
     * <code>repeated string shardId = 1;</code>
     * @return The count of shardId.
     */
    int getShardIdCount();
    /**
     * <code>repeated string shardId = 1;</code>
     * @param index The index of the element to return.
     * @return The shardId at the given index.
     */
    java.lang.String getShardId(int index);
    /**
     * <code>repeated string shardId = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the shardId at the given index.
     */
    akka.protobufv3.internal.ByteString
        getShardIdBytes(int index);

    /**
     * <code>optional bool marker = 2;</code>
     * @return Whether the marker field is set.
     */
    boolean hasMarker();
    /**
     * <code>optional bool marker = 2;</code>
     * @return The marker.
     */
    boolean getMarker();
  }
  /**
   * Protobuf type {@code RememberedShardState}
   */
  public  static final class RememberedShardState extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:RememberedShardState)
      RememberedShardStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RememberedShardState.newBuilder() to construct.
    private RememberedShardState(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RememberedShardState() {
      shardId_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new RememberedShardState();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RememberedShardState(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                shardId_ = new akka.protobufv3.internal.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              shardId_.add(bs);
              break;
            }
            case 16: {
              bitField0_ |= 0x00000001;
              marker_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          shardId_ = shardId_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_RememberedShardState_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_RememberedShardState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState.Builder.class);
    }

    private int bitField0_;
    public static final int SHARDID_FIELD_NUMBER = 1;
    private akka.protobufv3.internal.LazyStringList shardId_;
    /**
     * <code>repeated string shardId = 1;</code>
     * @return A list containing the shardId.
     */
    public akka.protobufv3.internal.ProtocolStringList
        getShardIdList() {
      return shardId_;
    }
    /**
     * <code>repeated string shardId = 1;</code>
     * @return The count of shardId.
     */
    public int getShardIdCount() {
      return shardId_.size();
    }
    /**
     * <code>repeated string shardId = 1;</code>
     * @param index The index of the element to return.
     * @return The shardId at the given index.
     */
    public java.lang.String getShardId(int index) {
      return shardId_.get(index);
    }
    /**
     * <code>repeated string shardId = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the shardId at the given index.
     */
    public akka.protobufv3.internal.ByteString
        getShardIdBytes(int index) {
      return shardId_.getByteString(index);
    }

    public static final int MARKER_FIELD_NUMBER = 2;
    private boolean marker_;
    /**
     * <code>optional bool marker = 2;</code>
     * @return Whether the marker field is set.
     */
    public boolean hasMarker() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional bool marker = 2;</code>
     * @return The marker.
     */
    public boolean getMarker() {
      return marker_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < shardId_.size(); i++) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, shardId_.getRaw(i));
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBool(2, marker_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < shardId_.size(); i++) {
          dataSize += computeStringSizeNoTag(shardId_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getShardIdList().size();
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeBoolSize(2, marker_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState)) {
        return super.equals(obj);
      }
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState) obj;

      if (!getShardIdList()
          .equals(other.getShardIdList())) return false;
      if (hasMarker() != other.hasMarker()) return false;
      if (hasMarker()) {
        if (getMarker()
            != other.getMarker()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getShardIdCount() > 0) {
        hash = (37 * hash) + SHARDID_FIELD_NUMBER;
        hash = (53 * hash) + getShardIdList().hashCode();
      }
      if (hasMarker()) {
        hash = (37 * hash) + MARKER_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashBoolean(
            getMarker());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code RememberedShardState}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:RememberedShardState)
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardStateOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_RememberedShardState_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_RememberedShardState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState.Builder.class);
      }

      // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        shardId_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        marker_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_RememberedShardState_descriptor;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState getDefaultInstanceForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState build() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState buildPartial() {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          shardId_ = shardId_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.shardId_ = shardId_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.marker_ = marker_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState other) {
        if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState.getDefaultInstance()) return this;
        if (!other.shardId_.isEmpty()) {
          if (shardId_.isEmpty()) {
            shardId_ = other.shardId_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureShardIdIsMutable();
            shardId_.addAll(other.shardId_);
          }
          onChanged();
        }
        if (other.hasMarker()) {
          setMarker(other.getMarker());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.protobufv3.internal.LazyStringList shardId_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
      private void ensureShardIdIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          shardId_ = new akka.protobufv3.internal.LazyStringArrayList(shardId_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated string shardId = 1;</code>
       * @return A list containing the shardId.
       */
      public akka.protobufv3.internal.ProtocolStringList
          getShardIdList() {
        return shardId_.getUnmodifiableView();
      }
      /**
       * <code>repeated string shardId = 1;</code>
       * @return The count of shardId.
       */
      public int getShardIdCount() {
        return shardId_.size();
      }
      /**
       * <code>repeated string shardId = 1;</code>
       * @param index The index of the element to return.
       * @return The shardId at the given index.
       */
      public java.lang.String getShardId(int index) {
        return shardId_.get(index);
      }
      /**
       * <code>repeated string shardId = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the shardId at the given index.
       */
      public akka.protobufv3.internal.ByteString
          getShardIdBytes(int index) {
        return shardId_.getByteString(index);
      }
      /**
       * <code>repeated string shardId = 1;</code>
       * @param index The index to set the value at.
       * @param value The shardId to set.
       * @return This builder for chaining.
       */
      public Builder setShardId(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureShardIdIsMutable();
        shardId_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string shardId = 1;</code>
       * @param value The shardId to add.
       * @return This builder for chaining.
       */
      public Builder addShardId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureShardIdIsMutable();
        shardId_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string shardId = 1;</code>
       * @param values The shardId to add.
       * @return This builder for chaining.
       */
      public Builder addAllShardId(
          java.lang.Iterable<java.lang.String> values) {
        ensureShardIdIsMutable();
        akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
            values, shardId_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string shardId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearShardId() {
        shardId_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string shardId = 1;</code>
       * @param value The bytes of the shardId to add.
       * @return This builder for chaining.
       */
      public Builder addShardIdBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureShardIdIsMutable();
        shardId_.add(value);
        onChanged();
        return this;
      }

      private boolean marker_ ;
      /**
       * <code>optional bool marker = 2;</code>
       * @return Whether the marker field is set.
       */
      public boolean hasMarker() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional bool marker = 2;</code>
       * @return The marker.
       */
      public boolean getMarker() {
        return marker_;
      }
      /**
       * <code>optional bool marker = 2;</code>
       * @param value The marker to set.
       * @return This builder for chaining.
       */
      public Builder setMarker(boolean value) {
        bitField0_ |= 0x00000002;
        marker_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool marker = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMarker() {
        bitField0_ = (bitField0_ & ~0x00000002);
        marker_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:RememberedShardState)
    }

    // @@protoc_insertion_point(class_scope:RememberedShardState)
    private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState();
    }

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<RememberedShardState>
        PARSER = new akka.protobufv3.internal.AbstractParser<RememberedShardState>() {
      @java.lang.Override
      public RememberedShardState parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new RememberedShardState(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<RememberedShardState> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<RememberedShardState> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_CoordinatorState_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_CoordinatorState_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_CoordinatorState_ShardEntry_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_CoordinatorState_ShardEntry_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_ActorRefMessage_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_ActorRefMessage_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_ShardIdMessage_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_ShardIdMessage_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_ShardHomeAllocated_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_ShardHomeAllocated_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_ShardHome_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_ShardHome_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_EntityState_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_EntityState_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_EntityStarted_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_EntityStarted_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_EntitiesStarted_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_EntitiesStarted_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_EntityStopped_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_EntityStopped_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_EntitiesStopped_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_EntitiesStopped_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_ShardStats_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_ShardStats_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_ShardRegionStats_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_ShardRegionStats_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_MapFieldEntry_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_MapFieldEntry_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_GetClusterShardingStats_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_GetClusterShardingStats_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_ClusterShardingStats_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_ClusterShardingStats_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_ClusterShardingStatsEntry_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_ClusterShardingStatsEntry_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_CurrentRegions_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_CurrentRegions_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_Address_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_Address_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_StartEntity_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_StartEntity_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_StartEntityAck_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_StartEntityAck_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_CurrentShardState_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_CurrentShardState_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_ShardState_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_ShardState_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_CurrentShardRegionState_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_CurrentShardRegionState_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_RememberedShardState_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_RememberedShardState_fieldAccessorTable;

  public static akka.protobufv3.internal.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  akka.protobufv3.internal.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\035ClusterShardingMessages.proto\"\265\001\n\020Coor" +
      "dinatorState\022,\n\006shards\030\001 \003(\0132\034.Coordinat" +
      "orState.ShardEntry\022\017\n\007regions\030\002 \003(\t\022\025\n\rr" +
      "egionProxies\030\003 \003(\t\022\031\n\021unallocatedShards\030" +
      "\004 \003(\t\0320\n\nShardEntry\022\017\n\007shardId\030\001 \002(\t\022\021\n\t" +
      "regionRef\030\002 \002(\t\"\036\n\017ActorRefMessage\022\013\n\003re" +
      "f\030\001 \002(\t\"\037\n\016ShardIdMessage\022\r\n\005shard\030\001 \002(\t" +
      "\"3\n\022ShardHomeAllocated\022\r\n\005shard\030\001 \002(\t\022\016\n" +
      "\006region\030\002 \002(\t\"*\n\tShardHome\022\r\n\005shard\030\001 \002(" +
      "\t\022\016\n\006region\030\002 \002(\t\"\037\n\013EntityState\022\020\n\010enti" +
      "ties\030\001 \003(\t\"!\n\rEntityStarted\022\020\n\010entityId\030" +
      "\001 \002(\t\"#\n\017EntitiesStarted\022\020\n\010entityId\030\001 \003" +
      "(\t\"!\n\rEntityStopped\022\020\n\010entityId\030\001 \002(\t\"#\n" +
      "\017EntitiesStopped\022\020\n\010entityId\030\001 \003(\t\"0\n\nSh" +
      "ardStats\022\r\n\005shard\030\001 \002(\t\022\023\n\013entityCount\030\002" +
      " \002(\005\"A\n\020ShardRegionStats\022\035\n\005stats\030\001 \003(\0132" +
      "\016.MapFieldEntry\022\016\n\006failed\030\002 \003(\t\"+\n\rMapFi" +
      "eldEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\005\"/\n\027" +
      "GetClusterShardingStats\022\024\n\014timeoutNanos\030" +
      "\001 \002(\003\"A\n\024ClusterShardingStats\022)\n\005stats\030\001" +
      " \003(\0132\032.ClusterShardingStatsEntry\"X\n\031Clus" +
      "terShardingStatsEntry\022\031\n\007address\030\001 \002(\0132\010" +
      ".Address\022 \n\005stats\030\002 \002(\0132\021.ShardRegionSta" +
      "ts\"+\n\016CurrentRegions\022\031\n\007regions\030\001 \003(\0132\010." +
      "Address\"K\n\007Address\022\020\n\010protocol\030\001 \002(\t\022\016\n\006" +
      "system\030\002 \002(\t\022\020\n\010hostname\030\003 \002(\t\022\014\n\004port\030\004" +
      " \002(\r\"\037\n\013StartEntity\022\020\n\010entityId\030\001 \002(\t\"3\n" +
      "\016StartEntityAck\022\020\n\010entityId\030\001 \002(\t\022\017\n\007sha" +
      "rdId\030\002 \002(\t\"7\n\021CurrentShardState\022\017\n\007shard" +
      "Id\030\001 \002(\t\022\021\n\tentityIds\030\002 \003(\t\"0\n\nShardStat" +
      "e\022\017\n\007shardId\030\001 \002(\t\022\021\n\tentityIds\030\002 \003(\t\"F\n" +
      "\027CurrentShardRegionState\022\033\n\006shards\030\001 \003(\013" +
      "2\013.ShardState\022\016\n\006failed\030\002 \003(\t\"7\n\024Remembe" +
      "redShardState\022\017\n\007shardId\030\001 \003(\t\022\016\n\006marker" +
      "\030\002 \001(\010B&\n\"akka.cluster.sharding.protobuf" +
      ".msgH\001"
    };
    descriptor = akka.protobufv3.internal.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new akka.protobufv3.internal.Descriptors.FileDescriptor[] {
        });
    internal_static_CoordinatorState_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_CoordinatorState_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_CoordinatorState_descriptor,
        new java.lang.String[] { "Shards", "Regions", "RegionProxies", "UnallocatedShards", });
    internal_static_CoordinatorState_ShardEntry_descriptor =
      internal_static_CoordinatorState_descriptor.getNestedTypes().get(0);
    internal_static_CoordinatorState_ShardEntry_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_CoordinatorState_ShardEntry_descriptor,
        new java.lang.String[] { "ShardId", "RegionRef", });
    internal_static_ActorRefMessage_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_ActorRefMessage_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ActorRefMessage_descriptor,
        new java.lang.String[] { "Ref", });
    internal_static_ShardIdMessage_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_ShardIdMessage_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ShardIdMessage_descriptor,
        new java.lang.String[] { "Shard", });
    internal_static_ShardHomeAllocated_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_ShardHomeAllocated_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ShardHomeAllocated_descriptor,
        new java.lang.String[] { "Shard", "Region", });
    internal_static_ShardHome_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_ShardHome_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ShardHome_descriptor,
        new java.lang.String[] { "Shard", "Region", });
    internal_static_EntityState_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_EntityState_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_EntityState_descriptor,
        new java.lang.String[] { "Entities", });
    internal_static_EntityStarted_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_EntityStarted_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_EntityStarted_descriptor,
        new java.lang.String[] { "EntityId", });
    internal_static_EntitiesStarted_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_EntitiesStarted_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_EntitiesStarted_descriptor,
        new java.lang.String[] { "EntityId", });
    internal_static_EntityStopped_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_EntityStopped_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_EntityStopped_descriptor,
        new java.lang.String[] { "EntityId", });
    internal_static_EntitiesStopped_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_EntitiesStopped_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_EntitiesStopped_descriptor,
        new java.lang.String[] { "EntityId", });
    internal_static_ShardStats_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_ShardStats_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ShardStats_descriptor,
        new java.lang.String[] { "Shard", "EntityCount", });
    internal_static_ShardRegionStats_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_ShardRegionStats_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ShardRegionStats_descriptor,
        new java.lang.String[] { "Stats", "Failed", });
    internal_static_MapFieldEntry_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_MapFieldEntry_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_MapFieldEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_GetClusterShardingStats_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_GetClusterShardingStats_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GetClusterShardingStats_descriptor,
        new java.lang.String[] { "TimeoutNanos", });
    internal_static_ClusterShardingStats_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_ClusterShardingStats_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ClusterShardingStats_descriptor,
        new java.lang.String[] { "Stats", });
    internal_static_ClusterShardingStatsEntry_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_ClusterShardingStatsEntry_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ClusterShardingStatsEntry_descriptor,
        new java.lang.String[] { "Address", "Stats", });
    internal_static_CurrentRegions_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_CurrentRegions_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_CurrentRegions_descriptor,
        new java.lang.String[] { "Regions", });
    internal_static_Address_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_Address_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Address_descriptor,
        new java.lang.String[] { "Protocol", "System", "Hostname", "Port", });
    internal_static_StartEntity_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_StartEntity_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_StartEntity_descriptor,
        new java.lang.String[] { "EntityId", });
    internal_static_StartEntityAck_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_StartEntityAck_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_StartEntityAck_descriptor,
        new java.lang.String[] { "EntityId", "ShardId", });
    internal_static_CurrentShardState_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_CurrentShardState_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_CurrentShardState_descriptor,
        new java.lang.String[] { "ShardId", "EntityIds", });
    internal_static_ShardState_descriptor =
      getDescriptor().getMessageTypes().get(21);
    internal_static_ShardState_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ShardState_descriptor,
        new java.lang.String[] { "ShardId", "EntityIds", });
    internal_static_CurrentShardRegionState_descriptor =
      getDescriptor().getMessageTypes().get(22);
    internal_static_CurrentShardRegionState_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_CurrentShardRegionState_descriptor,
        new java.lang.String[] { "Shards", "Failed", });
    internal_static_RememberedShardState_descriptor =
      getDescriptor().getMessageTypes().get(23);
    internal_static_RememberedShardState_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_RememberedShardState_descriptor,
        new java.lang.String[] { "ShardId", "Marker", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
