content: /*
   * Copyright (C) 2023-2025 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.emptyList();
        regionProxies_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
        unallocatedShards_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new CoordinatorState();
      }
  
      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();
        }
  
        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;
        @SuppressWarnings("serial")
        private volatile java.lang.Object shardId_ = "";
        /**
         * <code>required string shardId = 1;</code>
         * @return Whether the shardId field is set.
         */
        @java.lang.Override
        public boolean hasShardId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required string shardId = 1;</code>
         * @return The shardId.
         */
        @java.lang.Override
        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.
         */
        @java.lang.Override
        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;
        @SuppressWarnings("serial")
        private volatile java.lang.Object regionRef_ = "";
        /**
         * <code>required string regionRef = 2;</code>
         * @return Whether the regionRef field is set.
         */
        @java.lang.Override
        public boolean hasRegionRef() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required string regionRef = 2;</code>
         * @return The regionRef.
         */
        @java.lang.Override
        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.
         */
        @java.lang.Override
        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_);
          }
          getUnknownFields().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 += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }
  
        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
          return true;
        }
  
        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (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) + getUnknownFields().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() {
  
          }
  
          private Builder(
              akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
  
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            bitField0_ = 0;
            shardId_ = "";
            regionRef_ = "";
            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);
            if (bitField0_ != 0) { buildPartial0(result); }
            onBuilt();
            return result;
          }
  
          private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry result) {
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) != 0)) {
              result.shardId_ = shardId_;
              to_bitField0_ |= 0x00000001;
            }
            if (((from_bitField0_ & 0x00000002) != 0)) {
              result.regionRef_ = regionRef_;
              to_bitField0_ |= 0x00000002;
            }
            result.bitField0_ |= to_bitField0_;
          }
  
          @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()) {
              shardId_ = other.shardId_;
              bitField0_ |= 0x00000001;
              onChanged();
            }
            if (other.hasRegionRef()) {
              regionRef_ = other.regionRef_;
              bitField0_ |= 0x00000002;
              onChanged();
            }
            this.mergeUnknownFields(other.getUnknownFields());
            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 {
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  case 10: {
                    shardId_ = input.readBytes();
                    bitField0_ |= 0x00000001;
                    break;
                  } // case 10
                  case 18: {
                    regionRef_ = input.readBytes();
                    bitField0_ |= 0x00000002;
                    break;
                  } // case 18
                  default: {
                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                      done = true; // was an endgroup tag
                    }
                    break;
                  } // default:
                } // switch (tag)
              } // while (!done)
            } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
              throw e.unwrapIOException();
            } finally {
              onChanged();
            } // finally
            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(); }
            shardId_ = value;
            bitField0_ |= 0x00000001;
            onChanged();
            return this;
          }
          /**
           * <code>required string shardId = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearShardId() {
            shardId_ = getDefaultInstance().getShardId();
            bitField0_ = (bitField0_ & ~0x00000001);
            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(); }
            shardId_ = value;
            bitField0_ |= 0x00000001;
            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(); }
            regionRef_ = value;
            bitField0_ |= 0x00000002;
            onChanged();
            return this;
          }
          /**
           * <code>required string regionRef = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearRegionRef() {
            regionRef_ = getDefaultInstance().getRegionRef();
            bitField0_ = (bitField0_ & ~0x00000002);
            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(); }
            regionRef_ = value;
            bitField0_ |= 0x00000002;
            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 {
            Builder builder = newBuilder();
            try {
              builder.mergeFrom(input, extensionRegistry);
            } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
              throw e.setUnfinishedMessage(builder.buildPartial());
            } catch (akka.protobufv3.internal.UninitializedMessageException e) {
              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
            } catch (java.io.IOException e) {
              throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                  .setUnfinishedMessage(builder.buildPartial());
            }
            return builder.buildPartial();
          }
        };
  
        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;
      @SuppressWarnings("serial")
      private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry> shards_;
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      @java.lang.Override
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry> getShardsList() {
        return shards_;
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      @java.lang.Override
      public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntryOrBuilder> 
          getShardsOrBuilderList() {
        return shards_;
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      @java.lang.Override
      public int getShardsCount() {
        return shards_.size();
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry getShards(int index) {
        return shards_.get(index);
      }
      /**
       * <code>repeated .CoordinatorState.ShardEntry shards = 1;</code>
       */
      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntryOrBuilder getShardsOrBuilder(
          int index) {
        return shards_.get(index);
      }
  
      public static final int REGIONS_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private akka.protobufv3.internal.LazyStringArrayList regions_ =
          akka.protobufv3.internal.LazyStringArrayList.emptyList();
      /**
       * <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;
      @SuppressWarnings("serial")
      private akka.protobufv3.internal.LazyStringArrayList regionProxies_ =
          akka.protobufv3.internal.LazyStringArrayList.emptyList();
      /**
       * <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;
      @SuppressWarnings("serial")
      private akka.protobufv3.internal.LazyStringArrayList unallocatedShards_ =
          akka.protobufv3.internal.LazyStringArrayList.emptyList();
      /**
       * <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));
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (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) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (shardsBuilder_ == null) {
            shards_ = java.util.Collections.emptyList();
          } else {
            shards_ = null;
            shardsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          regions_ =
              akka.protobufv3.internal.LazyStringArrayList.emptyList();
          regionProxies_ =
              akka.protobufv3.internal.LazyStringArrayList.emptyList();
          unallocatedShards_ =
              akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartialRepeatedFields(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState result) {
          if (shardsBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              shards_ = java.util.Collections.unmodifiableList(shards_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.shards_ = shards_;
          } else {
            result.shards_ = shardsBuilder_.build();
          }
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000002) != 0)) {
            regions_.makeImmutable();
            result.regions_ = regions_;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            regionProxies_.makeImmutable();
            result.regionProxies_ = regionProxies_;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            unallocatedShards_.makeImmutable();
            result.unallocatedShards_ = unallocatedShards_;
          }
        }
  
        @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_ |= 0x00000002;
            } else {
              ensureRegionsIsMutable();
              regions_.addAll(other.regions_);
            }
            onChanged();
          }
          if (!other.regionProxies_.isEmpty()) {
            if (regionProxies_.isEmpty()) {
              regionProxies_ = other.regionProxies_;
              bitField0_ |= 0x00000004;
            } else {
              ensureRegionProxiesIsMutable();
              regionProxies_.addAll(other.regionProxies_);
            }
            onChanged();
          }
          if (!other.unallocatedShards_.isEmpty()) {
            if (unallocatedShards_.isEmpty()) {
              unallocatedShards_ = other.unallocatedShards_;
              bitField0_ |= 0x00000008;
            } else {
              ensureUnallocatedShardsIsMutable();
              unallocatedShards_.addAll(other.unallocatedShards_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry m =
                      input.readMessage(
                          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.PARSER,
                          extensionRegistry);
                  if (shardsBuilder_ == null) {
                    ensureShardsIsMutable();
                    shards_.add(m);
                  } else {
                    shardsBuilder_.addMessage(m);
                  }
                  break;
                } // case 10
                case 18: {
                  akka.protobufv3.internal.ByteString bs = input.readBytes();
                  ensureRegionsIsMutable();
                  regions_.add(bs);
                  break;
                } // case 18
                case 26: {
                  akka.protobufv3.internal.ByteString bs = input.readBytes();
                  ensureRegionProxiesIsMutable();
                  regionProxies_.add(bs);
                  break;
                } // case 26
                case 34: {
                  akka.protobufv3.internal.ByteString bs = input.readBytes();
                  ensureUnallocatedShardsIsMutable();
                  unallocatedShards_.add(bs);
                  break;
                } // case 34
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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.LazyStringArrayList regions_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
        private void ensureRegionsIsMutable() {
          if (!regions_.isModifiable()) {
            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() {
          regions_.makeImmutable();
          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);
        }
        /**
         * <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);
          bitField0_ |= 0x00000002;
          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);
          bitField0_ |= 0x00000002;
          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_);
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string regions = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearRegions() {
          regions_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
  
        private akka.protobufv3.internal.LazyStringArrayList regionProxies_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
        private void ensureRegionProxiesIsMutable() {
          if (!regionProxies_.isModifiable()) {
            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() {
          regionProxies_.makeImmutable();
          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);
        }
        /**
         * <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);
          bitField0_ |= 0x00000004;
          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);
          bitField0_ |= 0x00000004;
          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_);
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string regionProxies = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearRegionProxies() {
          regionProxies_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
  
        private akka.protobufv3.internal.LazyStringArrayList unallocatedShards_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
        private void ensureUnallocatedShardsIsMutable() {
          if (!unallocatedShards_.isModifiable()) {
            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() {
          unallocatedShards_.makeImmutable();
          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);
        }
        /**
         * <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);
          bitField0_ |= 0x00000008;
          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);
          bitField0_ |= 0x00000008;
          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_);
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string unallocatedShards = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearUnallocatedShards() {
          unallocatedShards_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          bitField0_ |= 0x00000008;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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();
      }
  
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object ref_ = "";
      /**
       * <code>required string ref = 1;</code>
       * @return Whether the ref field is set.
       */
      @java.lang.Override
      public boolean hasRef() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string ref = 1;</code>
       * @return The ref.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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_);
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasRef()) {
          hash = (37 * hash) + REF_FIELD_NUMBER;
          hash = (53 * hash) + getRef().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          ref_ = "";
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.ref_ = ref_;
            to_bitField0_ |= 0x00000001;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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()) {
            ref_ = other.ref_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  ref_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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(); }
          ref_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string ref = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearRef() {
          ref_ = getDefaultInstance().getRef();
          bitField0_ = (bitField0_ & ~0x00000001);
          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(); }
          ref_ = value;
          bitField0_ |= 0x00000001;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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();
      }
  
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object shard_ = "";
      /**
       * <code>required string shard = 1;</code>
       * @return Whether the shard field is set.
       */
      @java.lang.Override
      public boolean hasShard() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string shard = 1;</code>
       * @return The shard.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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_);
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasShard()) {
          hash = (37 * hash) + SHARD_FIELD_NUMBER;
          hash = (53 * hash) + getShard().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          shard_ = "";
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.shard_ = shard_;
            to_bitField0_ |= 0x00000001;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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()) {
            shard_ = other.shard_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  shard_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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(); }
          shard_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string shard = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearShard() {
          shard_ = getDefaultInstance().getShard();
          bitField0_ = (bitField0_ & ~0x00000001);
          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(); }
          shard_ = value;
          bitField0_ |= 0x00000001;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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();
      }
  
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object shard_ = "";
      /**
       * <code>required string shard = 1;</code>
       * @return Whether the shard field is set.
       */
      @java.lang.Override
      public boolean hasShard() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string shard = 1;</code>
       * @return The shard.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object region_ = "";
      /**
       * <code>required string region = 2;</code>
       * @return Whether the region field is set.
       */
      @java.lang.Override
      public boolean hasRegion() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required string region = 2;</code>
       * @return The region.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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_);
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (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) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          shard_ = "";
          region_ = "";
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.shard_ = shard_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.region_ = region_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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()) {
            shard_ = other.shard_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (other.hasRegion()) {
            region_ = other.region_;
            bitField0_ |= 0x00000002;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  shard_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  region_ = input.readBytes();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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(); }
          shard_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string shard = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearShard() {
          shard_ = getDefaultInstance().getShard();
          bitField0_ = (bitField0_ & ~0x00000001);
          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(); }
          shard_ = value;
          bitField0_ |= 0x00000001;
          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(); }
          region_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required string region = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearRegion() {
          region_ = getDefaultInstance().getRegion();
          bitField0_ = (bitField0_ & ~0x00000002);
          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(); }
          region_ = value;
          bitField0_ |= 0x00000002;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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();
      }
  
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object shard_ = "";
      /**
       * <code>required string shard = 1;</code>
       * @return Whether the shard field is set.
       */
      @java.lang.Override
      public boolean hasShard() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string shard = 1;</code>
       * @return The shard.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object region_ = "";
      /**
       * <code>required string region = 2;</code>
       * @return Whether the region field is set.
       */
      @java.lang.Override
      public boolean hasRegion() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required string region = 2;</code>
       * @return The region.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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_);
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (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) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          shard_ = "";
          region_ = "";
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.shard_ = shard_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.region_ = region_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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()) {
            shard_ = other.shard_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (other.hasRegion()) {
            region_ = other.region_;
            bitField0_ |= 0x00000002;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  shard_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  region_ = input.readBytes();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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(); }
          shard_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string shard = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearShard() {
          shard_ = getDefaultInstance().getShard();
          bitField0_ = (bitField0_ & ~0x00000001);
          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(); }
          shard_ = value;
          bitField0_ |= 0x00000001;
          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(); }
          region_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required string region = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearRegion() {
          region_ = getDefaultInstance().getRegion();
          bitField0_ = (bitField0_ & ~0x00000002);
          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(); }
          region_ = value;
          bitField0_ |= 0x00000002;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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 ShardHomesEntryOrBuilder extends
        // @@protoc_insertion_point(interface_extends:ShardHomesEntry)
        akka.protobufv3.internal.MessageOrBuilder {
  
      /**
       * <code>required string region = 1;</code>
       * @return Whether the region field is set.
       */
      boolean hasRegion();
      /**
       * <code>required string region = 1;</code>
       * @return The region.
       */
      java.lang.String getRegion();
      /**
       * <code>required string region = 1;</code>
       * @return The bytes for region.
       */
      akka.protobufv3.internal.ByteString
          getRegionBytes();
  
      /**
       * <code>repeated string shard = 2;</code>
       * @return A list containing the shard.
       */
      java.util.List<java.lang.String>
          getShardList();
      /**
       * <code>repeated string shard = 2;</code>
       * @return The count of shard.
       */
      int getShardCount();
      /**
       * <code>repeated string shard = 2;</code>
       * @param index The index of the element to return.
       * @return The shard at the given index.
       */
      java.lang.String getShard(int index);
      /**
       * <code>repeated string shard = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the shard at the given index.
       */
      akka.protobufv3.internal.ByteString
          getShardBytes(int index);
    }
    /**
     * <pre>
     * only used nested in ShardHomes
     * </pre>
     *
     * Protobuf type {@code ShardHomesEntry}
     */
    public static final class ShardHomesEntry extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:ShardHomesEntry)
        ShardHomesEntryOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ShardHomesEntry.newBuilder() to construct.
      private ShardHomesEntry(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ShardHomesEntry() {
        region_ = "";
        shard_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new ShardHomesEntry();
      }
  
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomesEntry_descriptor;
      }
  
      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomesEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.Builder.class);
      }
  
      private int bitField0_;
      public static final int REGION_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private volatile java.lang.Object region_ = "";
      /**
       * <code>required string region = 1;</code>
       * @return Whether the region field is set.
       */
      @java.lang.Override
      public boolean hasRegion() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string region = 1;</code>
       * @return The region.
       */
      @java.lang.Override
      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 = 1;</code>
       * @return The bytes for region.
       */
      @java.lang.Override
      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;
        }
      }
  
      public static final int SHARD_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private akka.protobufv3.internal.LazyStringArrayList shard_ =
          akka.protobufv3.internal.LazyStringArrayList.emptyList();
      /**
       * <code>repeated string shard = 2;</code>
       * @return A list containing the shard.
       */
      public akka.protobufv3.internal.ProtocolStringList
          getShardList() {
        return shard_;
      }
      /**
       * <code>repeated string shard = 2;</code>
       * @return The count of shard.
       */
      public int getShardCount() {
        return shard_.size();
      }
      /**
       * <code>repeated string shard = 2;</code>
       * @param index The index of the element to return.
       * @return The shard at the given index.
       */
      public java.lang.String getShard(int index) {
        return shard_.get(index);
      }
      /**
       * <code>repeated string shard = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the shard at the given index.
       */
      public akka.protobufv3.internal.ByteString
          getShardBytes(int index) {
        return shard_.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 (!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, region_);
        }
        for (int i = 0; i < shard_.size(); i++) {
          akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, shard_.getRaw(i));
        }
        getUnknownFields().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, region_);
        }
        {
          int dataSize = 0;
          for (int i = 0; i < shard_.size(); i++) {
            dataSize += computeStringSizeNoTag(shard_.getRaw(i));
          }
          size += dataSize;
          size += 1 * getShardList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry)) {
          return super.equals(obj);
        }
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry) obj;
  
        if (hasRegion() != other.hasRegion()) return false;
        if (hasRegion()) {
          if (!getRegion()
              .equals(other.getRegion())) return false;
        }
        if (!getShardList()
            .equals(other.getShardList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasRegion()) {
          hash = (37 * hash) + REGION_FIELD_NUMBER;
          hash = (53 * hash) + getRegion().hashCode();
        }
        if (getShardCount() > 0) {
          hash = (37 * hash) + SHARD_FIELD_NUMBER;
          hash = (53 * hash) + getShardList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry 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.ShardHomesEntry parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry 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.ShardHomesEntry parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry 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.ShardHomesEntry 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.ShardHomesEntry 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.ShardHomesEntry 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.ShardHomesEntry 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.ShardHomesEntry 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.ShardHomesEntry 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.ShardHomesEntry 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>
       * only used nested in ShardHomes
       * </pre>
       *
       * Protobuf type {@code ShardHomesEntry}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:ShardHomesEntry)
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntryOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomesEntry_descriptor;
        }
  
        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomesEntry_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.Builder.class);
        }
  
        // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.newBuilder()
        private Builder() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          region_ = "";
          shard_ =
              akka.protobufv3.internal.LazyStringArrayList.emptyList();
          return this;
        }
  
        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomesEntry_descriptor;
        }
  
        @java.lang.Override
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry getDefaultInstanceForType() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.getDefaultInstance();
        }
  
        @java.lang.Override
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry build() {
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry buildPartial() {
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.region_ = region_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            shard_.makeImmutable();
            result.shard_ = shard_;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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.ShardHomesEntry) {
            return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry other) {
          if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.getDefaultInstance()) return this;
          if (other.hasRegion()) {
            region_ = other.region_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (!other.shard_.isEmpty()) {
            if (shard_.isEmpty()) {
              shard_ = other.shard_;
              bitField0_ |= 0x00000002;
            } else {
              ensureShardIsMutable();
              shard_.addAll(other.shard_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  region_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  akka.protobufv3.internal.ByteString bs = input.readBytes();
                  ensureShardIsMutable();
                  shard_.add(bs);
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private java.lang.Object region_ = "";
        /**
         * <code>required string region = 1;</code>
         * @return Whether the region field is set.
         */
        public boolean hasRegion() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required string region = 1;</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 = 1;</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 = 1;</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(); }
          region_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string region = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearRegion() {
          region_ = getDefaultInstance().getRegion();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * <code>required string region = 1;</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(); }
          region_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
  
        private akka.protobufv3.internal.LazyStringArrayList shard_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
        private void ensureShardIsMutable() {
          if (!shard_.isModifiable()) {
            shard_ = new akka.protobufv3.internal.LazyStringArrayList(shard_);
          }
          bitField0_ |= 0x00000002;
        }
        /**
         * <code>repeated string shard = 2;</code>
         * @return A list containing the shard.
         */
        public akka.protobufv3.internal.ProtocolStringList
            getShardList() {
          shard_.makeImmutable();
          return shard_;
        }
        /**
         * <code>repeated string shard = 2;</code>
         * @return The count of shard.
         */
        public int getShardCount() {
          return shard_.size();
        }
        /**
         * <code>repeated string shard = 2;</code>
         * @param index The index of the element to return.
         * @return The shard at the given index.
         */
        public java.lang.String getShard(int index) {
          return shard_.get(index);
        }
        /**
         * <code>repeated string shard = 2;</code>
         * @param index The index of the value to return.
         * @return The bytes of the shard at the given index.
         */
        public akka.protobufv3.internal.ByteString
            getShardBytes(int index) {
          return shard_.getByteString(index);
        }
        /**
         * <code>repeated string shard = 2;</code>
         * @param index The index to set the value at.
         * @param value The shard to set.
         * @return This builder for chaining.
         */
        public Builder setShard(
            int index, java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          ensureShardIsMutable();
          shard_.set(index, value);
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string shard = 2;</code>
         * @param value The shard to add.
         * @return This builder for chaining.
         */
        public Builder addShard(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          ensureShardIsMutable();
          shard_.add(value);
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string shard = 2;</code>
         * @param values The shard to add.
         * @return This builder for chaining.
         */
        public Builder addAllShard(
            java.lang.Iterable<java.lang.String> values) {
          ensureShardIsMutable();
          akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
              values, shard_);
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string shard = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearShard() {
          shard_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string shard = 2;</code>
         * @param value The bytes of the shard to add.
         * @return This builder for chaining.
         */
        public Builder addShardBytes(
            akka.protobufv3.internal.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          ensureShardIsMutable();
          shard_.add(value);
          bitField0_ |= 0x00000002;
          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:ShardHomesEntry)
      }
  
      // @@protoc_insertion_point(class_scope:ShardHomesEntry)
      private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry();
      }
  
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<ShardHomesEntry>
          PARSER = new akka.protobufv3.internal.AbstractParser<ShardHomesEntry>() {
        @java.lang.Override
        public ShardHomesEntry parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      public static akka.protobufv3.internal.Parser<ShardHomesEntry> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.protobufv3.internal.Parser<ShardHomesEntry> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface ShardHomesOrBuilder extends
        // @@protoc_insertion_point(interface_extends:ShardHomes)
        akka.protobufv3.internal.MessageOrBuilder {
  
      /**
       * <code>repeated .ShardHomesEntry homes = 1;</code>
       */
      java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry> 
          getHomesList();
      /**
       * <code>repeated .ShardHomesEntry homes = 1;</code>
       */
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry getHomes(int index);
      /**
       * <code>repeated .ShardHomesEntry homes = 1;</code>
       */
      int getHomesCount();
      /**
       * <code>repeated .ShardHomesEntry homes = 1;</code>
       */
      java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntryOrBuilder> 
          getHomesOrBuilderList();
      /**
       * <code>repeated .ShardHomesEntry homes = 1;</code>
       */
      akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntryOrBuilder getHomesOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code ShardHomes}
     */
    public static final class ShardHomes extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:ShardHomes)
        ShardHomesOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ShardHomes.newBuilder() to construct.
      private ShardHomes(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ShardHomes() {
        homes_ = java.util.Collections.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new ShardHomes();
      }
  
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomes_descriptor;
      }
  
      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomes_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes.Builder.class);
      }
  
      public static final int HOMES_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry> homes_;
      /**
       * <code>repeated .ShardHomesEntry homes = 1;</code>
       */
      @java.lang.Override
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry> getHomesList() {
        return homes_;
      }
      /**
       * <code>repeated .ShardHomesEntry homes = 1;</code>
       */
      @java.lang.Override
      public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntryOrBuilder> 
          getHomesOrBuilderList() {
        return homes_;
      }
      /**
       * <code>repeated .ShardHomesEntry homes = 1;</code>
       */
      @java.lang.Override
      public int getHomesCount() {
        return homes_.size();
      }
      /**
       * <code>repeated .ShardHomesEntry homes = 1;</code>
       */
      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry getHomes(int index) {
        return homes_.get(index);
      }
      /**
       * <code>repeated .ShardHomesEntry homes = 1;</code>
       */
      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntryOrBuilder getHomesOrBuilder(
          int index) {
        return homes_.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 < getHomesCount(); i++) {
          if (!getHomes(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 < homes_.size(); i++) {
          output.writeMessage(1, homes_.get(i));
        }
        getUnknownFields().writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        for (int i = 0; i < homes_.size(); i++) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeMessageSize(1, homes_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes)) {
          return super.equals(obj);
        }
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes) obj;
  
        if (!getHomesList()
            .equals(other.getHomesList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getHomesCount() > 0) {
          hash = (37 * hash) + HOMES_FIELD_NUMBER;
          hash = (53 * hash) + getHomesList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes 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.ShardHomes parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes 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.ShardHomes parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes 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.ShardHomes 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.ShardHomes 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.ShardHomes 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.ShardHomes 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.ShardHomes 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.ShardHomes 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.ShardHomes 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 ShardHomes}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:ShardHomes)
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomes_descriptor;
        }
  
        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomes_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes.Builder.class);
        }
  
        // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes.newBuilder()
        private Builder() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (homesBuilder_ == null) {
            homes_ = java.util.Collections.emptyList();
          } else {
            homes_ = null;
            homesBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
  
        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomes_descriptor;
        }
  
        @java.lang.Override
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes getDefaultInstanceForType() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes.getDefaultInstance();
        }
  
        @java.lang.Override
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes build() {
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes buildPartial() {
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes(this);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartialRepeatedFields(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes result) {
          if (homesBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              homes_ = java.util.Collections.unmodifiableList(homes_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.homes_ = homes_;
          } else {
            result.homes_ = homesBuilder_.build();
          }
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes result) {
          int from_bitField0_ = bitField0_;
        }
  
        @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.ShardHomes) {
            return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes other) {
          if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes.getDefaultInstance()) return this;
          if (homesBuilder_ == null) {
            if (!other.homes_.isEmpty()) {
              if (homes_.isEmpty()) {
                homes_ = other.homes_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureHomesIsMutable();
                homes_.addAll(other.homes_);
              }
              onChanged();
            }
          } else {
            if (!other.homes_.isEmpty()) {
              if (homesBuilder_.isEmpty()) {
                homesBuilder_.dispose();
                homesBuilder_ = null;
                homes_ = other.homes_;
                bitField0_ = (bitField0_ & ~0x00000001);
                homesBuilder_ = 
                  akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getHomesFieldBuilder() : null;
              } else {
                homesBuilder_.addAllMessages(other.homes_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          for (int i = 0; i < getHomesCount(); i++) {
            if (!getHomes(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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry m =
                      input.readMessage(
                          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.PARSER,
                          extensionRegistry);
                  if (homesBuilder_ == null) {
                    ensureHomesIsMutable();
                    homes_.add(m);
                  } else {
                    homesBuilder_.addMessage(m);
                  }
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry> homes_ =
          java.util.Collections.emptyList();
        private void ensureHomesIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            homes_ = new java.util.ArrayList<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry>(homes_);
            bitField0_ |= 0x00000001;
           }
        }
  
        private akka.protobufv3.internal.RepeatedFieldBuilderV3<
            akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntryOrBuilder> homesBuilder_;
  
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry> getHomesList() {
          if (homesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(homes_);
          } else {
            return homesBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public int getHomesCount() {
          if (homesBuilder_ == null) {
            return homes_.size();
          } else {
            return homesBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry getHomes(int index) {
          if (homesBuilder_ == null) {
            return homes_.get(index);
          } else {
            return homesBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public Builder setHomes(
            int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry value) {
          if (homesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureHomesIsMutable();
            homes_.set(index, value);
            onChanged();
          } else {
            homesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public Builder setHomes(
            int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.Builder builderForValue) {
          if (homesBuilder_ == null) {
            ensureHomesIsMutable();
            homes_.set(index, builderForValue.build());
            onChanged();
          } else {
            homesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public Builder addHomes(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry value) {
          if (homesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureHomesIsMutable();
            homes_.add(value);
            onChanged();
          } else {
            homesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public Builder addHomes(
            int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry value) {
          if (homesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureHomesIsMutable();
            homes_.add(index, value);
            onChanged();
          } else {
            homesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public Builder addHomes(
            akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.Builder builderForValue) {
          if (homesBuilder_ == null) {
            ensureHomesIsMutable();
            homes_.add(builderForValue.build());
            onChanged();
          } else {
            homesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public Builder addHomes(
            int index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.Builder builderForValue) {
          if (homesBuilder_ == null) {
            ensureHomesIsMutable();
            homes_.add(index, builderForValue.build());
            onChanged();
          } else {
            homesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public Builder addAllHomes(
            java.lang.Iterable<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry> values) {
          if (homesBuilder_ == null) {
            ensureHomesIsMutable();
            akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
                values, homes_);
            onChanged();
          } else {
            homesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public Builder clearHomes() {
          if (homesBuilder_ == null) {
            homes_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            homesBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public Builder removeHomes(int index) {
          if (homesBuilder_ == null) {
            ensureHomesIsMutable();
            homes_.remove(index);
            onChanged();
          } else {
            homesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.Builder getHomesBuilder(
            int index) {
          return getHomesFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntryOrBuilder getHomesOrBuilder(
            int index) {
          if (homesBuilder_ == null) {
            return homes_.get(index);  } else {
            return homesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntryOrBuilder> 
             getHomesOrBuilderList() {
          if (homesBuilder_ != null) {
            return homesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(homes_);
          }
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.Builder addHomesBuilder() {
          return getHomesFieldBuilder().addBuilder(
              akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.getDefaultInstance());
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.Builder addHomesBuilder(
            int index) {
          return getHomesFieldBuilder().addBuilder(
              index, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.getDefaultInstance());
        }
        /**
         * <code>repeated .ShardHomesEntry homes = 1;</code>
         */
        public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.Builder> 
             getHomesBuilderList() {
          return getHomesFieldBuilder().getBuilderList();
        }
        private akka.protobufv3.internal.RepeatedFieldBuilderV3<
            akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntryOrBuilder> 
            getHomesFieldBuilder() {
          if (homesBuilder_ == null) {
            homesBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntry.Builder, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomesEntryOrBuilder>(
                    homes_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            homes_ = null;
          }
          return homesBuilder_;
        }
        @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:ShardHomes)
      }
  
      // @@protoc_insertion_point(class_scope:ShardHomes)
      private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes();
      }
  
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<ShardHomes>
          PARSER = new akka.protobufv3.internal.AbstractParser<ShardHomes>() {
        @java.lang.Override
        public ShardHomes parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      public static akka.protobufv3.internal.Parser<ShardHomes> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.protobufv3.internal.Parser<ShardHomes> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomes 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.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new EntityState();
      }
  
      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;
      @SuppressWarnings("serial")
      private akka.protobufv3.internal.LazyStringArrayList entities_ =
          akka.protobufv3.internal.LazyStringArrayList.emptyList();
      /**
       * <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));
        }
        getUnknownFields().writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        {
          int dataSize = 0;
          for (int i = 0; i < entities_.size(); i++) {
            dataSize += computeStringSizeNoTag(entities_.getRaw(i));
          }
          size += dataSize;
          size += 1 * getEntitiesList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getEntitiesCount() > 0) {
          hash = (37 * hash) + ENTITIES_FIELD_NUMBER;
          hash = (53 * hash) + getEntitiesList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          entities_ =
              akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            entities_.makeImmutable();
            result.entities_ = entities_;
          }
        }
  
        @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_ |= 0x00000001;
            } else {
              ensureEntitiesIsMutable();
              entities_.addAll(other.entities_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  akka.protobufv3.internal.ByteString bs = input.readBytes();
                  ensureEntitiesIsMutable();
                  entities_.add(bs);
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private akka.protobufv3.internal.LazyStringArrayList entities_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
        private void ensureEntitiesIsMutable() {
          if (!entities_.isModifiable()) {
            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() {
          entities_.makeImmutable();
          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);
        }
        /**
         * <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);
          bitField0_ |= 0x00000001;
          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);
          bitField0_ |= 0x00000001;
          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_);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string entities = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearEntities() {
          entities_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          bitField0_ |= 0x00000001;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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();
      }
  
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object entityId_ = "";
      /**
       * <code>required string entityId = 1;</code>
       * @return Whether the entityId field is set.
       */
      @java.lang.Override
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return The entityId.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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_);
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasEntityId()) {
          hash = (37 * hash) + ENTITYID_FIELD_NUMBER;
          hash = (53 * hash) + getEntityId().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          entityId_ = "";
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.entityId_ = entityId_;
            to_bitField0_ |= 0x00000001;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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()) {
            entityId_ = other.entityId_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  entityId_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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(); }
          entityId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string entityId = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearEntityId() {
          entityId_ = getDefaultInstance().getEntityId();
          bitField0_ = (bitField0_ & ~0x00000001);
          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(); }
          entityId_ = value;
          bitField0_ |= 0x00000001;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new EntitiesStarted();
      }
  
      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;
      @SuppressWarnings("serial")
      private akka.protobufv3.internal.LazyStringArrayList entityId_ =
          akka.protobufv3.internal.LazyStringArrayList.emptyList();
      /**
       * <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));
        }
        getUnknownFields().writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        {
          int dataSize = 0;
          for (int i = 0; i < entityId_.size(); i++) {
            dataSize += computeStringSizeNoTag(entityId_.getRaw(i));
          }
          size += dataSize;
          size += 1 * getEntityIdList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getEntityIdCount() > 0) {
          hash = (37 * hash) + ENTITYID_FIELD_NUMBER;
          hash = (53 * hash) + getEntityIdList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          entityId_ =
              akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStarted result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            entityId_.makeImmutable();
            result.entityId_ = entityId_;
          }
        }
  
        @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_ |= 0x00000001;
            } else {
              ensureEntityIdIsMutable();
              entityId_.addAll(other.entityId_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  akka.protobufv3.internal.ByteString bs = input.readBytes();
                  ensureEntityIdIsMutable();
                  entityId_.add(bs);
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private akka.protobufv3.internal.LazyStringArrayList entityId_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
        private void ensureEntityIdIsMutable() {
          if (!entityId_.isModifiable()) {
            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() {
          entityId_.makeImmutable();
          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);
        }
        /**
         * <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);
          bitField0_ |= 0x00000001;
          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);
          bitField0_ |= 0x00000001;
          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_);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string entityId = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearEntityId() {
          entityId_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          bitField0_ |= 0x00000001;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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();
      }
  
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object entityId_ = "";
      /**
       * <code>required string entityId = 1;</code>
       * @return Whether the entityId field is set.
       */
      @java.lang.Override
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return The entityId.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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_);
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasEntityId()) {
          hash = (37 * hash) + ENTITYID_FIELD_NUMBER;
          hash = (53 * hash) + getEntityId().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          entityId_ = "";
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.entityId_ = entityId_;
            to_bitField0_ |= 0x00000001;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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()) {
            entityId_ = other.entityId_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  entityId_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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(); }
          entityId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string entityId = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearEntityId() {
          entityId_ = getDefaultInstance().getEntityId();
          bitField0_ = (bitField0_ & ~0x00000001);
          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(); }
          entityId_ = value;
          bitField0_ |= 0x00000001;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new EntitiesStopped();
      }
  
      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;
      @SuppressWarnings("serial")
      private akka.protobufv3.internal.LazyStringArrayList entityId_ =
          akka.protobufv3.internal.LazyStringArrayList.emptyList();
      /**
       * <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));
        }
        getUnknownFields().writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        {
          int dataSize = 0;
          for (int i = 0; i < entityId_.size(); i++) {
            dataSize += computeStringSizeNoTag(entityId_.getRaw(i));
          }
          size += dataSize;
          size += 1 * getEntityIdList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getEntityIdCount() > 0) {
          hash = (37 * hash) + ENTITYID_FIELD_NUMBER;
          hash = (53 * hash) + getEntityIdList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          entityId_ =
              akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntitiesStopped result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            entityId_.makeImmutable();
            result.entityId_ = entityId_;
          }
        }
  
        @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_ |= 0x00000001;
            } else {
              ensureEntityIdIsMutable();
              entityId_.addAll(other.entityId_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  akka.protobufv3.internal.ByteString bs = input.readBytes();
                  ensureEntityIdIsMutable();
                  entityId_.add(bs);
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private akka.protobufv3.internal.LazyStringArrayList entityId_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
        private void ensureEntityIdIsMutable() {
          if (!entityId_.isModifiable()) {
            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() {
          entityId_.makeImmutable();
          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);
        }
        /**
         * <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);
          bitField0_ |= 0x00000001;
          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);
          bitField0_ |= 0x00000001;
          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_);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string entityId = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearEntityId() {
          entityId_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          bitField0_ |= 0x00000001;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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();
      }
  
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object shard_ = "";
      /**
       * <code>required string shard = 1;</code>
       * @return Whether the shard field is set.
       */
      @java.lang.Override
      public boolean hasShard() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string shard = 1;</code>
       * @return The shard.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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_ = 0;
      /**
       * <code>required int32 entityCount = 2;</code>
       * @return Whether the entityCount field is set.
       */
      @java.lang.Override
      public boolean hasEntityCount() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required int32 entityCount = 2;</code>
       * @return The entityCount.
       */
      @java.lang.Override
      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_);
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (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) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          shard_ = "";
          entityCount_ = 0;
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.shard_ = shard_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.entityCount_ = entityCount_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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()) {
            shard_ = other.shard_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (other.hasEntityCount()) {
            setEntityCount(other.getEntityCount());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  shard_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 16: {
                  entityCount_ = input.readInt32();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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(); }
          shard_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string shard = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearShard() {
          shard_ = getDefaultInstance().getShard();
          bitField0_ = (bitField0_ & ~0x00000001);
          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(); }
          shard_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
  
        private int entityCount_ ;
        /**
         * <code>required int32 entityCount = 2;</code>
         * @return Whether the entityCount field is set.
         */
        @java.lang.Override
        public boolean hasEntityCount() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required int32 entityCount = 2;</code>
         * @return The entityCount.
         */
        @java.lang.Override
        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) {
  
          entityCount_ = value;
          bitField0_ |= 0x00000002;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new ShardRegionStats();
      }
  
      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;
      @SuppressWarnings("serial")
      private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry> stats_;
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      @java.lang.Override
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry> getStatsList() {
        return stats_;
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      @java.lang.Override
      public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntryOrBuilder> 
          getStatsOrBuilderList() {
        return stats_;
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      @java.lang.Override
      public int getStatsCount() {
        return stats_.size();
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry getStats(int index) {
        return stats_.get(index);
      }
      /**
       * <code>repeated .MapFieldEntry stats = 1;</code>
       */
      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntryOrBuilder getStatsOrBuilder(
          int index) {
        return stats_.get(index);
      }
  
      public static final int FAILED_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private akka.protobufv3.internal.LazyStringArrayList failed_ =
          akka.protobufv3.internal.LazyStringArrayList.emptyList();
      /**
       * <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));
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (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) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (statsBuilder_ == null) {
            stats_ = java.util.Collections.emptyList();
          } else {
            stats_ = null;
            statsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          failed_ =
              akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartialRepeatedFields(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats result) {
          if (statsBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              stats_ = java.util.Collections.unmodifiableList(stats_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.stats_ = stats_;
          } else {
            result.stats_ = statsBuilder_.build();
          }
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000002) != 0)) {
            failed_.makeImmutable();
            result.failed_ = failed_;
          }
        }
  
        @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_ |= 0x00000002;
            } else {
              ensureFailedIsMutable();
              failed_.addAll(other.failed_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry m =
                      input.readMessage(
                          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.PARSER,
                          extensionRegistry);
                  if (statsBuilder_ == null) {
                    ensureStatsIsMutable();
                    stats_.add(m);
                  } else {
                    statsBuilder_.addMessage(m);
                  }
                  break;
                } // case 10
                case 18: {
                  akka.protobufv3.internal.ByteString bs = input.readBytes();
                  ensureFailedIsMutable();
                  failed_.add(bs);
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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.LazyStringArrayList failed_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
        private void ensureFailedIsMutable() {
          if (!failed_.isModifiable()) {
            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() {
          failed_.makeImmutable();
          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);
        }
        /**
         * <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);
          bitField0_ |= 0x00000002;
          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);
          bitField0_ |= 0x00000002;
          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_);
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string failed = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearFailed() {
          failed_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          bitField0_ |= 0x00000002;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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();
      }
  
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object key_ = "";
      /**
       * <code>optional string key = 1;</code>
       * @return Whether the key field is set.
       */
      @java.lang.Override
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string key = 1;</code>
       * @return The key.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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_ = 0;
      /**
       * <code>optional int32 value = 2;</code>
       * @return Whether the value field is set.
       */
      @java.lang.Override
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int32 value = 2;</code>
       * @return The value.
       */
      @java.lang.Override
      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_);
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (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) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          key_ = "";
          value_ = 0;
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.key_ = key_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.value_ = value_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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()) {
            key_ = other.key_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (other.hasValue()) {
            setValue(other.getValue());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  key_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 16: {
                  value_ = input.readInt32();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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(); }
          key_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>optional string key = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearKey() {
          key_ = getDefaultInstance().getKey();
          bitField0_ = (bitField0_ & ~0x00000001);
          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(); }
          key_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
  
        private int value_ ;
        /**
         * <code>optional int32 value = 2;</code>
         * @return Whether the value field is set.
         */
        @java.lang.Override
        public boolean hasValue() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>optional int32 value = 2;</code>
         * @return The value.
         */
        @java.lang.Override
        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) {
  
          value_ = value;
          bitField0_ |= 0x00000002;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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();
      }
  
      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_ = 0L;
      /**
       * <code>required int64 timeoutNanos = 1;</code>
       * @return Whether the timeoutNanos field is set.
       */
      @java.lang.Override
      public boolean hasTimeoutNanos() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int64 timeoutNanos = 1;</code>
       * @return The timeoutNanos.
       */
      @java.lang.Override
      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_);
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasTimeoutNanos()) {
          hash = (37 * hash) + TIMEOUTNANOS_FIELD_NUMBER;
          hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
              getTimeoutNanos());
        }
        hash = (29 * hash) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          timeoutNanos_ = 0L;
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.GetClusterShardingStats result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.timeoutNanos_ = timeoutNanos_;
            to_bitField0_ |= 0x00000001;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  timeoutNanos_ = input.readInt64();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private long timeoutNanos_ ;
        /**
         * <code>required int64 timeoutNanos = 1;</code>
         * @return Whether the timeoutNanos field is set.
         */
        @java.lang.Override
        public boolean hasTimeoutNanos() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required int64 timeoutNanos = 1;</code>
         * @return The timeoutNanos.
         */
        @java.lang.Override
        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) {
  
          timeoutNanos_ = value;
          bitField0_ |= 0x00000001;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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();
      }
  
      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;
      @SuppressWarnings("serial")
      private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry> stats_;
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      @java.lang.Override
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry> getStatsList() {
        return stats_;
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      @java.lang.Override
      public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntryOrBuilder> 
          getStatsOrBuilderList() {
        return stats_;
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      @java.lang.Override
      public int getStatsCount() {
        return stats_.size();
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry getStats(int index) {
        return stats_.get(index);
      }
      /**
       * <code>repeated .ClusterShardingStatsEntry stats = 1;</code>
       */
      @java.lang.Override
      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));
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getStatsCount() > 0) {
          hash = (37 * hash) + STATS_FIELD_NUMBER;
          hash = (53 * hash) + getStatsList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (statsBuilder_ == null) {
            stats_ = java.util.Collections.emptyList();
          } else {
            stats_ = null;
            statsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          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);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartialRepeatedFields(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats result) {
          if (statsBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              stats_ = java.util.Collections.unmodifiableList(stats_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.stats_ = stats_;
          } else {
            result.stats_ = statsBuilder_.build();
          }
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStats result) {
          int from_bitField0_ = bitField0_;
        }
  
        @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.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry m =
                      input.readMessage(
                          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry.PARSER,
                          extensionRegistry);
                  if (statsBuilder_ == null) {
                    ensureStatsIsMutable();
                    stats_.add(m);
                  } else {
                    statsBuilder_.addMessage(m);
                  }
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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();
      }
  
      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.
       */
      @java.lang.Override
      public boolean hasAddress() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .Address address = 1;</code>
       * @return The address.
       */
      @java.lang.Override
      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>
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      public boolean hasStats() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .ShardRegionStats stats = 2;</code>
       * @return The stats.
       */
      @java.lang.Override
      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>
       */
      @java.lang.Override
      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());
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (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) + getUnknownFields().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();
          bitField0_ = 0;
          address_ = null;
          if (addressBuilder_ != null) {
            addressBuilder_.dispose();
            addressBuilder_ = null;
          }
          stats_ = null;
          if (statsBuilder_ != null) {
            statsBuilder_.dispose();
            statsBuilder_ = null;
          }
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ClusterShardingStatsEntry result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.address_ = addressBuilder_ == null
                ? address_
                : addressBuilder_.build();
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.stats_ = statsBuilder_ == null
                ? stats_
                : statsBuilder_.build();
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getAddressFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getStatsFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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;
          } else {
            addressBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          onChanged();
          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();
          } else {
            addressBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          onChanged();
          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()) {
              getAddressBuilder().mergeFrom(value);
            } else {
              address_ = value;
            }
          } else {
            addressBuilder_.mergeFrom(value);
          }
          if (address_ != null) {
            bitField0_ |= 0x00000001;
            onChanged();
          }
          return this;
        }
        /**
         * <code>required .Address address = 1;</code>
         */
        public Builder clearAddress() {
          bitField0_ = (bitField0_ & ~0x00000001);
          address_ = null;
          if (addressBuilder_ != null) {
            addressBuilder_.dispose();
            addressBuilder_ = null;
          }
          onChanged();
          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;
          } else {
            statsBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          onChanged();
          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();
          } else {
            statsBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          onChanged();
          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()) {
              getStatsBuilder().mergeFrom(value);
            } else {
              stats_ = value;
            }
          } else {
            statsBuilder_.mergeFrom(value);
          }
          if (stats_ != null) {
            bitField0_ |= 0x00000002;
            onChanged();
          }
          return this;
        }
        /**
         * <code>required .ShardRegionStats stats = 2;</code>
         */
        public Builder clearStats() {
          bitField0_ = (bitField0_ & ~0x00000002);
          stats_ = null;
          if (statsBuilder_ != null) {
            statsBuilder_.dispose();
            statsBuilder_ = null;
          }
          onChanged();
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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();
      }
  
      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;
      @SuppressWarnings("serial")
      private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address> regions_;
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      @java.lang.Override
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address> getRegionsList() {
        return regions_;
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      @java.lang.Override
      public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.AddressOrBuilder> 
          getRegionsOrBuilderList() {
        return regions_;
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      @java.lang.Override
      public int getRegionsCount() {
        return regions_.size();
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address getRegions(int index) {
        return regions_.get(index);
      }
      /**
       * <code>repeated .Address regions = 1;</code>
       */
      @java.lang.Override
      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));
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getRegionsCount() > 0) {
          hash = (37 * hash) + REGIONS_FIELD_NUMBER;
          hash = (53 * hash) + getRegionsList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (regionsBuilder_ == null) {
            regions_ = java.util.Collections.emptyList();
          } else {
            regions_ = null;
            regionsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          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);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartialRepeatedFields(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions result) {
          if (regionsBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              regions_ = java.util.Collections.unmodifiableList(regions_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.regions_ = regions_;
          } else {
            result.regions_ = regionsBuilder_.build();
          }
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentRegions result) {
          int from_bitField0_ = bitField0_;
        }
  
        @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.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address m =
                      input.readMessage(
                          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address.PARSER,
                          extensionRegistry);
                  if (regionsBuilder_ == null) {
                    ensureRegionsIsMutable();
                    regions_.add(m);
                  } else {
                    regionsBuilder_.addMessage(m);
                  }
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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 StopShardsOrBuilder extends
        // @@protoc_insertion_point(interface_extends:StopShards)
        akka.protobufv3.internal.MessageOrBuilder {
  
      /**
       * <code>repeated string shards = 1;</code>
       * @return A list containing the shards.
       */
      java.util.List<java.lang.String>
          getShardsList();
      /**
       * <code>repeated string shards = 1;</code>
       * @return The count of shards.
       */
      int getShardsCount();
      /**
       * <code>repeated string shards = 1;</code>
       * @param index The index of the element to return.
       * @return The shards at the given index.
       */
      java.lang.String getShards(int index);
      /**
       * <code>repeated string shards = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the shards at the given index.
       */
      akka.protobufv3.internal.ByteString
          getShardsBytes(int index);
    }
    /**
     * Protobuf type {@code StopShards}
     */
    public static final class StopShards extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:StopShards)
        StopShardsOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use StopShards.newBuilder() to construct.
      private StopShards(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private StopShards() {
        shards_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new StopShards();
      }
  
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StopShards_descriptor;
      }
  
      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StopShards_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards.Builder.class);
      }
  
      public static final int SHARDS_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private akka.protobufv3.internal.LazyStringArrayList shards_ =
          akka.protobufv3.internal.LazyStringArrayList.emptyList();
      /**
       * <code>repeated string shards = 1;</code>
       * @return A list containing the shards.
       */
      public akka.protobufv3.internal.ProtocolStringList
          getShardsList() {
        return shards_;
      }
      /**
       * <code>repeated string shards = 1;</code>
       * @return The count of shards.
       */
      public int getShardsCount() {
        return shards_.size();
      }
      /**
       * <code>repeated string shards = 1;</code>
       * @param index The index of the element to return.
       * @return The shards at the given index.
       */
      public java.lang.String getShards(int index) {
        return shards_.get(index);
      }
      /**
       * <code>repeated string shards = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the shards at the given index.
       */
      public akka.protobufv3.internal.ByteString
          getShardsBytes(int index) {
        return shards_.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 < shards_.size(); i++) {
          akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, shards_.getRaw(i));
        }
        getUnknownFields().writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        {
          int dataSize = 0;
          for (int i = 0; i < shards_.size(); i++) {
            dataSize += computeStringSizeNoTag(shards_.getRaw(i));
          }
          size += dataSize;
          size += 1 * getShardsList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards)) {
          return super.equals(obj);
        }
        akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards other = (akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards) obj;
  
        if (!getShardsList()
            .equals(other.getShardsList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getShardsCount() > 0) {
          hash = (37 * hash) + SHARDS_FIELD_NUMBER;
          hash = (53 * hash) + getShardsList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards 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.StopShards parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards 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.StopShards parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards 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.StopShards 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.StopShards 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.StopShards 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.StopShards 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.StopShards 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.StopShards 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.StopShards 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 StopShards}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:StopShards)
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShardsOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StopShards_descriptor;
        }
  
        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StopShards_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards.Builder.class);
        }
  
        // Construct using akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards.newBuilder()
        private Builder() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          shards_ =
              akka.protobufv3.internal.LazyStringArrayList.emptyList();
          return this;
        }
  
        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StopShards_descriptor;
        }
  
        @java.lang.Override
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards getDefaultInstanceForType() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards.getDefaultInstance();
        }
  
        @java.lang.Override
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards build() {
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards buildPartial() {
          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards result = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            shards_.makeImmutable();
            result.shards_ = shards_;
          }
        }
  
        @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.StopShards) {
            return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards other) {
          if (other == akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards.getDefaultInstance()) return this;
          if (!other.shards_.isEmpty()) {
            if (shards_.isEmpty()) {
              shards_ = other.shards_;
              bitField0_ |= 0x00000001;
            } else {
              ensureShardsIsMutable();
              shards_.addAll(other.shards_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  akka.protobufv3.internal.ByteString bs = input.readBytes();
                  ensureShardsIsMutable();
                  shards_.add(bs);
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private akka.protobufv3.internal.LazyStringArrayList shards_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
        private void ensureShardsIsMutable() {
          if (!shards_.isModifiable()) {
            shards_ = new akka.protobufv3.internal.LazyStringArrayList(shards_);
          }
          bitField0_ |= 0x00000001;
        }
        /**
         * <code>repeated string shards = 1;</code>
         * @return A list containing the shards.
         */
        public akka.protobufv3.internal.ProtocolStringList
            getShardsList() {
          shards_.makeImmutable();
          return shards_;
        }
        /**
         * <code>repeated string shards = 1;</code>
         * @return The count of shards.
         */
        public int getShardsCount() {
          return shards_.size();
        }
        /**
         * <code>repeated string shards = 1;</code>
         * @param index The index of the element to return.
         * @return The shards at the given index.
         */
        public java.lang.String getShards(int index) {
          return shards_.get(index);
        }
        /**
         * <code>repeated string shards = 1;</code>
         * @param index The index of the value to return.
         * @return The bytes of the shards at the given index.
         */
        public akka.protobufv3.internal.ByteString
            getShardsBytes(int index) {
          return shards_.getByteString(index);
        }
        /**
         * <code>repeated string shards = 1;</code>
         * @param index The index to set the value at.
         * @param value The shards to set.
         * @return This builder for chaining.
         */
        public Builder setShards(
            int index, java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          ensureShardsIsMutable();
          shards_.set(index, value);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string shards = 1;</code>
         * @param value The shards to add.
         * @return This builder for chaining.
         */
        public Builder addShards(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          ensureShardsIsMutable();
          shards_.add(value);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string shards = 1;</code>
         * @param values The shards to add.
         * @return This builder for chaining.
         */
        public Builder addAllShards(
            java.lang.Iterable<java.lang.String> values) {
          ensureShardsIsMutable();
          akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
              values, shards_);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string shards = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearShards() {
          shards_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string shards = 1;</code>
         * @param value The bytes of the shards to add.
         * @return This builder for chaining.
         */
        public Builder addShardsBytes(
            akka.protobufv3.internal.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          ensureShardsIsMutable();
          shards_.add(value);
          bitField0_ |= 0x00000001;
          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:StopShards)
      }
  
      // @@protoc_insertion_point(class_scope:StopShards)
      private static final akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards();
      }
  
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<StopShards>
          PARSER = new akka.protobufv3.internal.AbstractParser<StopShards>() {
        @java.lang.Override
        public StopShards parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      public static akka.protobufv3.internal.Parser<StopShards> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.protobufv3.internal.Parser<StopShards> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StopShards 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();
      }
  
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object protocol_ = "";
      /**
       * <code>required string protocol = 1;</code>
       * @return Whether the protocol field is set.
       */
      @java.lang.Override
      public boolean hasProtocol() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string protocol = 1;</code>
       * @return The protocol.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object system_ = "";
      /**
       * <code>required string system = 2;</code>
       * @return Whether the system field is set.
       */
      @java.lang.Override
      public boolean hasSystem() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required string system = 2;</code>
       * @return The system.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object hostname_ = "";
      /**
       * <code>required string hostname = 3;</code>
       * @return Whether the hostname field is set.
       */
      @java.lang.Override
      public boolean hasHostname() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required string hostname = 3;</code>
       * @return The hostname.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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_ = 0;
      /**
       * <code>required uint32 port = 4;</code>
       * @return Whether the port field is set.
       */
      @java.lang.Override
      public boolean hasPort() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required uint32 port = 4;</code>
       * @return The port.
       */
      @java.lang.Override
      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_);
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (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) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          protocol_ = "";
          system_ = "";
          hostname_ = "";
          port_ = 0;
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.Address result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.protocol_ = protocol_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.system_ = system_;
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.hostname_ = hostname_;
            to_bitField0_ |= 0x00000004;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.port_ = port_;
            to_bitField0_ |= 0x00000008;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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()) {
            protocol_ = other.protocol_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (other.hasSystem()) {
            system_ = other.system_;
            bitField0_ |= 0x00000002;
            onChanged();
          }
          if (other.hasHostname()) {
            hostname_ = other.hostname_;
            bitField0_ |= 0x00000004;
            onChanged();
          }
          if (other.hasPort()) {
            setPort(other.getPort());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  protocol_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  system_ = input.readBytes();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                case 26: {
                  hostname_ = input.readBytes();
                  bitField0_ |= 0x00000004;
                  break;
                } // case 26
                case 32: {
                  port_ = input.readUInt32();
                  bitField0_ |= 0x00000008;
                  break;
                } // case 32
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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(); }
          protocol_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string protocol = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearProtocol() {
          protocol_ = getDefaultInstance().getProtocol();
          bitField0_ = (bitField0_ & ~0x00000001);
          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(); }
          protocol_ = value;
          bitField0_ |= 0x00000001;
          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(); }
          system_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required string system = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearSystem() {
          system_ = getDefaultInstance().getSystem();
          bitField0_ = (bitField0_ & ~0x00000002);
          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(); }
          system_ = value;
          bitField0_ |= 0x00000002;
          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(); }
          hostname_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <code>required string hostname = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearHostname() {
          hostname_ = getDefaultInstance().getHostname();
          bitField0_ = (bitField0_ & ~0x00000004);
          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(); }
          hostname_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
  
        private int port_ ;
        /**
         * <code>required uint32 port = 4;</code>
         * @return Whether the port field is set.
         */
        @java.lang.Override
        public boolean hasPort() {
          return ((bitField0_ & 0x00000008) != 0);
        }
        /**
         * <code>required uint32 port = 4;</code>
         * @return The port.
         */
        @java.lang.Override
        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) {
  
          port_ = value;
          bitField0_ |= 0x00000008;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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();
      }
  
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object entityId_ = "";
      /**
       * <code>required string entityId = 1;</code>
       * @return Whether the entityId field is set.
       */
      @java.lang.Override
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return The entityId.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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_);
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasEntityId()) {
          hash = (37 * hash) + ENTITYID_FIELD_NUMBER;
          hash = (53 * hash) + getEntityId().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          entityId_ = "";
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.entityId_ = entityId_;
            to_bitField0_ |= 0x00000001;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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()) {
            entityId_ = other.entityId_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  entityId_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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(); }
          entityId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string entityId = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearEntityId() {
          entityId_ = getDefaultInstance().getEntityId();
          bitField0_ = (bitField0_ & ~0x00000001);
          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(); }
          entityId_ = value;
          bitField0_ |= 0x00000001;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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();
      }
  
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object entityId_ = "";
      /**
       * <code>required string entityId = 1;</code>
       * @return Whether the entityId field is set.
       */
      @java.lang.Override
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string entityId = 1;</code>
       * @return The entityId.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object shardId_ = "";
      /**
       * <code>required string shardId = 2;</code>
       * @return Whether the shardId field is set.
       */
      @java.lang.Override
      public boolean hasShardId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required string shardId = 2;</code>
       * @return The shardId.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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_);
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (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) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          entityId_ = "";
          shardId_ = "";
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.entityId_ = entityId_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.shardId_ = shardId_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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()) {
            entityId_ = other.entityId_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (other.hasShardId()) {
            shardId_ = other.shardId_;
            bitField0_ |= 0x00000002;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  entityId_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  shardId_ = input.readBytes();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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(); }
          entityId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string entityId = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearEntityId() {
          entityId_ = getDefaultInstance().getEntityId();
          bitField0_ = (bitField0_ & ~0x00000001);
          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(); }
          entityId_ = value;
          bitField0_ |= 0x00000001;
          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(); }
          shardId_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required string shardId = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearShardId() {
          shardId_ = getDefaultInstance().getShardId();
          bitField0_ = (bitField0_ & ~0x00000002);
          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(); }
          shardId_ = value;
          bitField0_ |= 0x00000002;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new CurrentShardState();
      }
  
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object shardId_ = "";
      /**
       * <code>required string shardId = 1;</code>
       * @return Whether the shardId field is set.
       */
      @java.lang.Override
      public boolean hasShardId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string shardId = 1;</code>
       * @return The shardId.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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;
      @SuppressWarnings("serial")
      private akka.protobufv3.internal.LazyStringArrayList entityIds_ =
          akka.protobufv3.internal.LazyStringArrayList.emptyList();
      /**
       * <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));
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (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) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          shardId_ = "";
          entityIds_ =
              akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardState result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.shardId_ = shardId_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            entityIds_.makeImmutable();
            result.entityIds_ = entityIds_;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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()) {
            shardId_ = other.shardId_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (!other.entityIds_.isEmpty()) {
            if (entityIds_.isEmpty()) {
              entityIds_ = other.entityIds_;
              bitField0_ |= 0x00000002;
            } else {
              ensureEntityIdsIsMutable();
              entityIds_.addAll(other.entityIds_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  shardId_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  akka.protobufv3.internal.ByteString bs = input.readBytes();
                  ensureEntityIdsIsMutable();
                  entityIds_.add(bs);
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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(); }
          shardId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string shardId = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearShardId() {
          shardId_ = getDefaultInstance().getShardId();
          bitField0_ = (bitField0_ & ~0x00000001);
          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(); }
          shardId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
  
        private akka.protobufv3.internal.LazyStringArrayList entityIds_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
        private void ensureEntityIdsIsMutable() {
          if (!entityIds_.isModifiable()) {
            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() {
          entityIds_.makeImmutable();
          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);
        }
        /**
         * <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);
          bitField0_ |= 0x00000002;
          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);
          bitField0_ |= 0x00000002;
          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_);
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string entityIds = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearEntityIds() {
          entityIds_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          bitField0_ |= 0x00000002;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new ShardState();
      }
  
      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;
      @SuppressWarnings("serial")
      private volatile java.lang.Object shardId_ = "";
      /**
       * <code>required string shardId = 1;</code>
       * @return Whether the shardId field is set.
       */
      @java.lang.Override
      public boolean hasShardId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string shardId = 1;</code>
       * @return The shardId.
       */
      @java.lang.Override
      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.
       */
      @java.lang.Override
      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;
      @SuppressWarnings("serial")
      private akka.protobufv3.internal.LazyStringArrayList entityIds_ =
          akka.protobufv3.internal.LazyStringArrayList.emptyList();
      /**
       * <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));
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (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) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          shardId_ = "";
          entityIds_ =
              akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.shardId_ = shardId_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            entityIds_.makeImmutable();
            result.entityIds_ = entityIds_;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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()) {
            shardId_ = other.shardId_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (!other.entityIds_.isEmpty()) {
            if (entityIds_.isEmpty()) {
              entityIds_ = other.entityIds_;
              bitField0_ |= 0x00000002;
            } else {
              ensureEntityIdsIsMutable();
              entityIds_.addAll(other.entityIds_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  shardId_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  akka.protobufv3.internal.ByteString bs = input.readBytes();
                  ensureEntityIdsIsMutable();
                  entityIds_.add(bs);
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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(); }
          shardId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string shardId = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearShardId() {
          shardId_ = getDefaultInstance().getShardId();
          bitField0_ = (bitField0_ & ~0x00000001);
          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(); }
          shardId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
  
        private akka.protobufv3.internal.LazyStringArrayList entityIds_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
        private void ensureEntityIdsIsMutable() {
          if (!entityIds_.isModifiable()) {
            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() {
          entityIds_.makeImmutable();
          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);
        }
        /**
         * <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);
          bitField0_ |= 0x00000002;
          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);
          bitField0_ |= 0x00000002;
          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_);
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string entityIds = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearEntityIds() {
          entityIds_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          bitField0_ |= 0x00000002;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new CurrentShardRegionState();
      }
  
      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;
      @SuppressWarnings("serial")
      private java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState> shards_;
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      @java.lang.Override
      public java.util.List<akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState> getShardsList() {
        return shards_;
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      @java.lang.Override
      public java.util.List<? extends akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStateOrBuilder> 
          getShardsOrBuilderList() {
        return shards_;
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      @java.lang.Override
      public int getShardsCount() {
        return shards_.size();
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState getShards(int index) {
        return shards_.get(index);
      }
      /**
       * <code>repeated .ShardState shards = 1;</code>
       */
      @java.lang.Override
      public akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStateOrBuilder getShardsOrBuilder(
          int index) {
        return shards_.get(index);
      }
  
      public static final int FAILED_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private akka.protobufv3.internal.LazyStringArrayList failed_ =
          akka.protobufv3.internal.LazyStringArrayList.emptyList();
      /**
       * <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));
        }
        getUnknownFields().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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (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) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (shardsBuilder_ == null) {
            shards_ = java.util.Collections.emptyList();
          } else {
            shards_ = null;
            shardsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          failed_ =
              akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartialRepeatedFields(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState result) {
          if (shardsBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              shards_ = java.util.Collections.unmodifiableList(shards_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.shards_ = shards_;
          } else {
            result.shards_ = shardsBuilder_.build();
          }
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CurrentShardRegionState result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000002) != 0)) {
            failed_.makeImmutable();
            result.failed_ = failed_;
          }
        }
  
        @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_ |= 0x00000002;
            } else {
              ensureFailedIsMutable();
              failed_.addAll(other.failed_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState m =
                      input.readMessage(
                          akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardState.PARSER,
                          extensionRegistry);
                  if (shardsBuilder_ == null) {
                    ensureShardsIsMutable();
                    shards_.add(m);
                  } else {
                    shardsBuilder_.addMessage(m);
                  }
                  break;
                } // case 10
                case 18: {
                  akka.protobufv3.internal.ByteString bs = input.readBytes();
                  ensureFailedIsMutable();
                  failed_.add(bs);
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          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.LazyStringArrayList failed_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
        private void ensureFailedIsMutable() {
          if (!failed_.isModifiable()) {
            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() {
          failed_.makeImmutable();
          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);
        }
        /**
         * <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);
          bitField0_ |= 0x00000002;
          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);
          bitField0_ |= 0x00000002;
          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_);
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string failed = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearFailed() {
          failed_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          bitField0_ |= 0x00000002;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new RememberedShardState();
      }
  
      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;
      @SuppressWarnings("serial")
      private akka.protobufv3.internal.LazyStringArrayList shardId_ =
          akka.protobufv3.internal.LazyStringArrayList.emptyList();
      /**
       * <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_ = false;
      /**
       * <code>optional bool marker = 2;</code>
       * @return Whether the marker field is set.
       */
      @java.lang.Override
      public boolean hasMarker() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional bool marker = 2;</code>
       * @return The marker.
       */
      @java.lang.Override
      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_);
        }
        getUnknownFields().writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        {
          int dataSize = 0;
          for (int i = 0; i < 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 += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof 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 (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (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) + getUnknownFields().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() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          shardId_ =
              akka.protobufv3.internal.LazyStringArrayList.emptyList();
          marker_ = false;
          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);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.RememberedShardState result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            shardId_.makeImmutable();
            result.shardId_ = shardId_;
          }
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.marker_ = marker_;
            to_bitField0_ |= 0x00000001;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @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_ |= 0x00000001;
            } else {
              ensureShardIdIsMutable();
              shardId_.addAll(other.shardId_);
            }
            onChanged();
          }
          if (other.hasMarker()) {
            setMarker(other.getMarker());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          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 {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  akka.protobufv3.internal.ByteString bs = input.readBytes();
                  ensureShardIdIsMutable();
                  shardId_.add(bs);
                  break;
                } // case 10
                case 16: {
                  marker_ = input.readBool();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private akka.protobufv3.internal.LazyStringArrayList shardId_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
        private void ensureShardIdIsMutable() {
          if (!shardId_.isModifiable()) {
            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() {
          shardId_.makeImmutable();
          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);
        }
        /**
         * <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);
          bitField0_ |= 0x00000001;
          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);
          bitField0_ |= 0x00000001;
          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_);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>repeated string shardId = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearShardId() {
          shardId_ =
            akka.protobufv3.internal.LazyStringArrayList.emptyList();
          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);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
  
        private boolean marker_ ;
        /**
         * <code>optional bool marker = 2;</code>
         * @return Whether the marker field is set.
         */
        @java.lang.Override
        public boolean hasMarker() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>optional bool marker = 2;</code>
         * @return The marker.
         */
        @java.lang.Override
        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) {
  
          marker_ = value;
          bitField0_ |= 0x00000002;
          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 {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      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_ShardHomesEntry_descriptor;
    private static final 
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internal_static_ShardHomesEntry_fieldAccessorTable;
    private static final akka.protobufv3.internal.Descriptors.Descriptor
      internal_static_ShardHomes_descriptor;
    private static final 
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internal_static_ShardHomes_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_StopShards_descriptor;
    private static final 
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internal_static_StopShards_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\"0\n\017ShardHomesEntry\022\016\n\006" +
        "region\030\001 \002(\t\022\r\n\005shard\030\002 \003(\t\"-\n\nShardHome" +
        "s\022\037\n\005homes\030\001 \003(\0132\020.ShardHomesEntry\"\037\n\013En" +
        "tityState\022\020\n\010entities\030\001 \003(\t\"!\n\rEntitySta" +
        "rted\022\020\n\010entityId\030\001 \002(\t\"#\n\017EntitiesStarte" +
        "d\022\020\n\010entityId\030\001 \003(\t\"!\n\rEntityStopped\022\020\n\010" +
        "entityId\030\001 \002(\t\"#\n\017EntitiesStopped\022\020\n\010ent" +
        "ityId\030\001 \003(\t\"0\n\nShardStats\022\r\n\005shard\030\001 \002(\t" +
        "\022\023\n\013entityCount\030\002 \002(\005\"A\n\020ShardRegionStat" +
        "s\022\035\n\005stats\030\001 \003(\0132\016.MapFieldEntry\022\016\n\006fail" +
        "ed\030\002 \003(\t\"+\n\rMapFieldEntry\022\013\n\003key\030\001 \001(\t\022\r" +
        "\n\005value\030\002 \001(\005\"/\n\027GetClusterShardingStats" +
        "\022\024\n\014timeoutNanos\030\001 \002(\003\"A\n\024ClusterShardin" +
        "gStats\022)\n\005stats\030\001 \003(\0132\032.ClusterShardingS" +
        "tatsEntry\"X\n\031ClusterShardingStatsEntry\022\031" +
        "\n\007address\030\001 \002(\0132\010.Address\022 \n\005stats\030\002 \002(\013" +
        "2\021.ShardRegionStats\"+\n\016CurrentRegions\022\031\n" +
        "\007regions\030\001 \003(\0132\010.Address\"\034\n\nStopShards\022\016" +
        "\n\006shards\030\001 \003(\t\"K\n\007Address\022\020\n\010protocol\030\001 " +
        "\002(\t\022\016\n\006system\030\002 \002(\t\022\020\n\010hostname\030\003 \002(\t\022\014\n" +
        "\004port\030\004 \002(\r\"\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\007shardId\030\002 \002(\t\"7\n\021CurrentShardState\022\017" +
        "\n\007shardId\030\001 \002(\t\022\021\n\tentityIds\030\002 \003(\t\"0\n\nSh" +
        "ardState\022\017\n\007shardId\030\001 \002(\t\022\021\n\tentityIds\030\002" +
        " \003(\t\"F\n\027CurrentShardRegionState\022\033\n\006shard" +
        "s\030\001 \003(\0132\013.ShardState\022\016\n\006failed\030\002 \003(\t\"7\n\024" +
        "RememberedShardState\022\017\n\007shardId\030\001 \003(\t\022\016\n" +
        "\006marker\030\002 \001(\010B&\n\"akka.cluster.sharding.p" +
        "rotobuf.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_ShardHomesEntry_descriptor =
        getDescriptor().getMessageTypes().get(5);
      internal_static_ShardHomesEntry_fieldAccessorTable = new
        akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
          internal_static_ShardHomesEntry_descriptor,
          new java.lang.String[] { "Region", "Shard", });
      internal_static_ShardHomes_descriptor =
        getDescriptor().getMessageTypes().get(6);
      internal_static_ShardHomes_fieldAccessorTable = new
        akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
          internal_static_ShardHomes_descriptor,
          new java.lang.String[] { "Homes", });
      internal_static_EntityState_descriptor =
        getDescriptor().getMessageTypes().get(7);
      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(8);
      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(9);
      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(10);
      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(11);
      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(12);
      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(13);
      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(14);
      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(15);
      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(16);
      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(17);
      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(18);
      internal_static_CurrentRegions_fieldAccessorTable = new
        akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
          internal_static_CurrentRegions_descriptor,
          new java.lang.String[] { "Regions", });
      internal_static_StopShards_descriptor =
        getDescriptor().getMessageTypes().get(19);
      internal_static_StopShards_fieldAccessorTable = new
        akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
          internal_static_StopShards_descriptor,
          new java.lang.String[] { "Shards", });
      internal_static_Address_descriptor =
        getDescriptor().getMessageTypes().get(20);
      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(21);
      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(22);
      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(23);
      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(24);
      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(25);
      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(26);
      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)
  }
  