/*
 * Copyright (C) 2018 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.protobuf.ExtensionRegistry registry) {
  }
  public interface CoordinatorStateOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // repeated .CoordinatorState.ShardEntry shards = 1;
    /**
     * <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);

    // repeated string regions = 2;
    /**
     * <code>repeated string regions = 2;</code>
     */
    java.util.List<java.lang.String>
    getRegionsList();
    /**
     * <code>repeated string regions = 2;</code>
     */
    int getRegionsCount();
    /**
     * <code>repeated string regions = 2;</code>
     */
    java.lang.String getRegions(int index);
    /**
     * <code>repeated string regions = 2;</code>
     */
    akka.protobuf.ByteString
        getRegionsBytes(int index);

    // repeated string regionProxies = 3;
    /**
     * <code>repeated string regionProxies = 3;</code>
     */
    java.util.List<java.lang.String>
    getRegionProxiesList();
    /**
     * <code>repeated string regionProxies = 3;</code>
     */
    int getRegionProxiesCount();
    /**
     * <code>repeated string regionProxies = 3;</code>
     */
    java.lang.String getRegionProxies(int index);
    /**
     * <code>repeated string regionProxies = 3;</code>
     */
    akka.protobuf.ByteString
        getRegionProxiesBytes(int index);

    // repeated string unallocatedShards = 4;
    /**
     * <code>repeated string unallocatedShards = 4;</code>
     */
    java.util.List<java.lang.String>
    getUnallocatedShardsList();
    /**
     * <code>repeated string unallocatedShards = 4;</code>
     */
    int getUnallocatedShardsCount();
    /**
     * <code>repeated string unallocatedShards = 4;</code>
     */
    java.lang.String getUnallocatedShards(int index);
    /**
     * <code>repeated string unallocatedShards = 4;</code>
     */
    akka.protobuf.ByteString
        getUnallocatedShardsBytes(int index);
  }
  /**
   * Protobuf type {@code CoordinatorState}
   */
  public static final class CoordinatorState extends
      akka.protobuf.GeneratedMessage
      implements CoordinatorStateOrBuilder {
    // Use CoordinatorState.newBuilder() to construct.
    private CoordinatorState(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CoordinatorState(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public CoordinatorState getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected akka.protobuf.GeneratedMessage.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 static akka.protobuf.Parser<CoordinatorState> PARSER =
        new akka.protobuf.AbstractParser<CoordinatorState>() {
      public CoordinatorState parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new CoordinatorState(input, extensionRegistry);
      }
    };

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

    public interface ShardEntryOrBuilder
        extends akka.protobuf.MessageOrBuilder {

      // required string shardId = 1;
      /**
       * <code>required string shardId = 1;</code>
       */
      boolean hasShardId();
      /**
       * <code>required string shardId = 1;</code>
       */
      java.lang.String getShardId();
      /**
       * <code>required string shardId = 1;</code>
       */
      akka.protobuf.ByteString
          getShardIdBytes();

      // required string regionRef = 2;
      /**
       * <code>required string regionRef = 2;</code>
       */
      boolean hasRegionRef();
      /**
       * <code>required string regionRef = 2;</code>
       */
      java.lang.String getRegionRef();
      /**
       * <code>required string regionRef = 2;</code>
       */
      akka.protobuf.ByteString
          getRegionRefBytes();
    }
    /**
     * Protobuf type {@code CoordinatorState.ShardEntry}
     */
    public static final class ShardEntry extends
        akka.protobuf.GeneratedMessage
        implements ShardEntryOrBuilder {
      // Use ShardEntry.newBuilder() to construct.
      private ShardEntry(akka.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private ShardEntry(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

      public ShardEntry getDefaultInstanceForType() {
        return defaultInstance;
      }

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

      protected akka.protobuf.GeneratedMessage.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);
      }

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

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

      private int bitField0_;
      // required string shardId = 1;
      public static final int SHARDID_FIELD_NUMBER = 1;
      private java.lang.Object shardId_;
      /**
       * <code>required string shardId = 1;</code>
       */
      public boolean hasShardId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string shardId = 1;</code>
       */
      public java.lang.String getShardId() {
        java.lang.Object ref = shardId_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobuf.ByteString bs = 
              (akka.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            shardId_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string shardId = 1;</code>
       */
      public akka.protobuf.ByteString
          getShardIdBytes() {
        java.lang.Object ref = shardId_;
        if (ref instanceof java.lang.String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shardId_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }

      // required string regionRef = 2;
      public static final int REGIONREF_FIELD_NUMBER = 2;
      private java.lang.Object regionRef_;
      /**
       * <code>required string regionRef = 2;</code>
       */
      public boolean hasRegionRef() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required string regionRef = 2;</code>
       */
      public java.lang.String getRegionRef() {
        java.lang.Object ref = regionRef_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobuf.ByteString bs = 
              (akka.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            regionRef_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string regionRef = 2;</code>
       */
      public akka.protobuf.ByteString
          getRegionRefBytes() {
        java.lang.Object ref = regionRef_;
        if (ref instanceof java.lang.String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          regionRef_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }

      private void initFields() {
        shardId_ = "";
        regionRef_ = "";
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(
          akka.protobuf.ByteString data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(
          akka.protobuf.ByteString data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(byte[] data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(
          byte[] data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.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 PARSER.parseFrom(input);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(
          akka.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry parseFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

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

        protected akka.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CoordinatorState_ShardEntry_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry.Builder.class);
        }

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

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

        public Builder clear() {
          super.clear();
          shardId_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          regionRef_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

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

        public akka.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CoordinatorState_ShardEntry_descriptor;
        }

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

        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;
        }

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

        public Builder mergeFrom(akka.protobuf.Message other) {
          if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry) {
            return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.ShardEntry)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

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

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

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

        // required string shardId = 1;
        private java.lang.Object shardId_ = "";
        /**
         * <code>required string shardId = 1;</code>
         */
        public boolean hasShardId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required string shardId = 1;</code>
         */
        public java.lang.String getShardId() {
          java.lang.Object ref = shardId_;
          if (!(ref instanceof java.lang.String)) {
            java.lang.String s = ((akka.protobuf.ByteString) ref)
                .toStringUtf8();
            shardId_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string shardId = 1;</code>
         */
        public akka.protobuf.ByteString
            getShardIdBytes() {
          java.lang.Object ref = shardId_;
          if (ref instanceof String) {
            akka.protobuf.ByteString b = 
                akka.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            shardId_ = b;
            return b;
          } else {
            return (akka.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>required string shardId = 1;</code>
         */
        public Builder setShardId(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          shardId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required string shardId = 1;</code>
         */
        public Builder clearShardId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          shardId_ = getDefaultInstance().getShardId();
          onChanged();
          return this;
        }
        /**
         * <code>required string shardId = 1;</code>
         */
        public Builder setShardIdBytes(
            akka.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          shardId_ = value;
          onChanged();
          return this;
        }

        // required string regionRef = 2;
        private java.lang.Object regionRef_ = "";
        /**
         * <code>required string regionRef = 2;</code>
         */
        public boolean hasRegionRef() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required string regionRef = 2;</code>
         */
        public java.lang.String getRegionRef() {
          java.lang.Object ref = regionRef_;
          if (!(ref instanceof java.lang.String)) {
            java.lang.String s = ((akka.protobuf.ByteString) ref)
                .toStringUtf8();
            regionRef_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string regionRef = 2;</code>
         */
        public akka.protobuf.ByteString
            getRegionRefBytes() {
          java.lang.Object ref = regionRef_;
          if (ref instanceof String) {
            akka.protobuf.ByteString b = 
                akka.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            regionRef_ = b;
            return b;
          } else {
            return (akka.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>required string regionRef = 2;</code>
         */
        public Builder setRegionRef(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          regionRef_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required string regionRef = 2;</code>
         */
        public Builder clearRegionRef() {
          bitField0_ = (bitField0_ & ~0x00000002);
          regionRef_ = getDefaultInstance().getRegionRef();
          onChanged();
          return this;
        }
        /**
         * <code>required string regionRef = 2;</code>
         */
        public Builder setRegionRefBytes(
            akka.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          regionRef_ = value;
          onChanged();
          return this;
        }

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

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

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

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

    // repeated string regions = 2;
    public static final int REGIONS_FIELD_NUMBER = 2;
    private akka.protobuf.LazyStringList regions_;
    /**
     * <code>repeated string regions = 2;</code>
     */
    public java.util.List<java.lang.String>
        getRegionsList() {
      return regions_;
    }
    /**
     * <code>repeated string regions = 2;</code>
     */
    public int getRegionsCount() {
      return regions_.size();
    }
    /**
     * <code>repeated string regions = 2;</code>
     */
    public java.lang.String getRegions(int index) {
      return regions_.get(index);
    }
    /**
     * <code>repeated string regions = 2;</code>
     */
    public akka.protobuf.ByteString
        getRegionsBytes(int index) {
      return regions_.getByteString(index);
    }

    // repeated string regionProxies = 3;
    public static final int REGIONPROXIES_FIELD_NUMBER = 3;
    private akka.protobuf.LazyStringList regionProxies_;
    /**
     * <code>repeated string regionProxies = 3;</code>
     */
    public java.util.List<java.lang.String>
        getRegionProxiesList() {
      return regionProxies_;
    }
    /**
     * <code>repeated string regionProxies = 3;</code>
     */
    public int getRegionProxiesCount() {
      return regionProxies_.size();
    }
    /**
     * <code>repeated string regionProxies = 3;</code>
     */
    public java.lang.String getRegionProxies(int index) {
      return regionProxies_.get(index);
    }
    /**
     * <code>repeated string regionProxies = 3;</code>
     */
    public akka.protobuf.ByteString
        getRegionProxiesBytes(int index) {
      return regionProxies_.getByteString(index);
    }

    // repeated string unallocatedShards = 4;
    public static final int UNALLOCATEDSHARDS_FIELD_NUMBER = 4;
    private akka.protobuf.LazyStringList unallocatedShards_;
    /**
     * <code>repeated string unallocatedShards = 4;</code>
     */
    public java.util.List<java.lang.String>
        getUnallocatedShardsList() {
      return unallocatedShards_;
    }
    /**
     * <code>repeated string unallocatedShards = 4;</code>
     */
    public int getUnallocatedShardsCount() {
      return unallocatedShards_.size();
    }
    /**
     * <code>repeated string unallocatedShards = 4;</code>
     */
    public java.lang.String getUnallocatedShards(int index) {
      return unallocatedShards_.get(index);
    }
    /**
     * <code>repeated string unallocatedShards = 4;</code>
     */
    public akka.protobuf.ByteString
        getUnallocatedShardsBytes(int index) {
      return unallocatedShards_.getByteString(index);
    }

    private void initFields() {
      shards_ = java.util.Collections.emptyList();
      regions_ = akka.protobuf.LazyStringArrayList.EMPTY;
      regionProxies_ = akka.protobuf.LazyStringArrayList.EMPTY;
      unallocatedShards_ = akka.protobuf.LazyStringArrayList.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < shards_.size(); i++) {
        output.writeMessage(1, shards_.get(i));
      }
      for (int i = 0; i < regions_.size(); i++) {
        output.writeBytes(2, regions_.getByteString(i));
      }
      for (int i = 0; i < regionProxies_.size(); i++) {
        output.writeBytes(3, regionProxies_.getByteString(i));
      }
      for (int i = 0; i < unallocatedShards_.size(); i++) {
        output.writeBytes(4, unallocatedShards_.getByteString(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < shards_.size(); i++) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, shards_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < regions_.size(); i++) {
          dataSize += akka.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(regions_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getRegionsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < regionProxies_.size(); i++) {
          dataSize += akka.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(regionProxies_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getRegionProxiesList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < unallocatedShards_.size(); i++) {
          dataSize += akka.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(unallocatedShards_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getUnallocatedShardsList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

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

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CoordinatorState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.CoordinatorState.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        if (shardsBuilder_ == null) {
          shards_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          shardsBuilder_.clear();
        }
        regions_ = akka.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        regionProxies_ = akka.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        unallocatedShards_ = akka.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_CoordinatorState_descriptor;
      }

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

      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;
      }

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

      public Builder mergeFrom(akka.protobuf.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.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getShardsFieldBuilder() : null;
            } else {
              shardsBuilder_.addAllMessages(other.shards_);
            }
          }
        }
        if (!other.regions_.isEmpty()) {
          if (regions_.isEmpty()) {
            regions_ = other.regions_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureRegionsIsMutable();
            regions_.addAll(other.regions_);
          }
          onChanged();
        }
        if (!other.regionProxies_.isEmpty()) {
          if (regionProxies_.isEmpty()) {
            regionProxies_ = other.regionProxies_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureRegionProxiesIsMutable();
            regionProxies_.addAll(other.regionProxies_);
          }
          onChanged();
        }
        if (!other.unallocatedShards_.isEmpty()) {
          if (unallocatedShards_.isEmpty()) {
            unallocatedShards_ = other.unallocatedShards_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureUnallocatedShardsIsMutable();
            unallocatedShards_.addAll(other.unallocatedShards_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

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

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

      private akka.protobuf.RepeatedFieldBuilder<
          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();
          super.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.protobuf.RepeatedFieldBuilder<
          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.protobuf.RepeatedFieldBuilder<
              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) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          shards_ = null;
        }
        return shardsBuilder_;
      }

      // repeated string regions = 2;
      private akka.protobuf.LazyStringList regions_ = akka.protobuf.LazyStringArrayList.EMPTY;
      private void ensureRegionsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          regions_ = new akka.protobuf.LazyStringArrayList(regions_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated string regions = 2;</code>
       */
      public java.util.List<java.lang.String>
          getRegionsList() {
        return java.util.Collections.unmodifiableList(regions_);
      }
      /**
       * <code>repeated string regions = 2;</code>
       */
      public int getRegionsCount() {
        return regions_.size();
      }
      /**
       * <code>repeated string regions = 2;</code>
       */
      public java.lang.String getRegions(int index) {
        return regions_.get(index);
      }
      /**
       * <code>repeated string regions = 2;</code>
       */
      public akka.protobuf.ByteString
          getRegionsBytes(int index) {
        return regions_.getByteString(index);
      }
      /**
       * <code>repeated string regions = 2;</code>
       */
      public Builder setRegions(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRegionsIsMutable();
        regions_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regions = 2;</code>
       */
      public Builder addRegions(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRegionsIsMutable();
        regions_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regions = 2;</code>
       */
      public Builder addAllRegions(
          java.lang.Iterable<java.lang.String> values) {
        ensureRegionsIsMutable();
        super.addAll(values, regions_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regions = 2;</code>
       */
      public Builder clearRegions() {
        regions_ = akka.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regions = 2;</code>
       */
      public Builder addRegionsBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRegionsIsMutable();
        regions_.add(value);
        onChanged();
        return this;
      }

      // repeated string regionProxies = 3;
      private akka.protobuf.LazyStringList regionProxies_ = akka.protobuf.LazyStringArrayList.EMPTY;
      private void ensureRegionProxiesIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          regionProxies_ = new akka.protobuf.LazyStringArrayList(regionProxies_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       */
      public java.util.List<java.lang.String>
          getRegionProxiesList() {
        return java.util.Collections.unmodifiableList(regionProxies_);
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       */
      public int getRegionProxiesCount() {
        return regionProxies_.size();
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       */
      public java.lang.String getRegionProxies(int index) {
        return regionProxies_.get(index);
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       */
      public akka.protobuf.ByteString
          getRegionProxiesBytes(int index) {
        return regionProxies_.getByteString(index);
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       */
      public Builder setRegionProxies(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRegionProxiesIsMutable();
        regionProxies_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       */
      public Builder addRegionProxies(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRegionProxiesIsMutable();
        regionProxies_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       */
      public Builder addAllRegionProxies(
          java.lang.Iterable<java.lang.String> values) {
        ensureRegionProxiesIsMutable();
        super.addAll(values, regionProxies_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       */
      public Builder clearRegionProxies() {
        regionProxies_ = akka.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string regionProxies = 3;</code>
       */
      public Builder addRegionProxiesBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRegionProxiesIsMutable();
        regionProxies_.add(value);
        onChanged();
        return this;
      }

      // repeated string unallocatedShards = 4;
      private akka.protobuf.LazyStringList unallocatedShards_ = akka.protobuf.LazyStringArrayList.EMPTY;
      private void ensureUnallocatedShardsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          unallocatedShards_ = new akka.protobuf.LazyStringArrayList(unallocatedShards_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       */
      public java.util.List<java.lang.String>
          getUnallocatedShardsList() {
        return java.util.Collections.unmodifiableList(unallocatedShards_);
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       */
      public int getUnallocatedShardsCount() {
        return unallocatedShards_.size();
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       */
      public java.lang.String getUnallocatedShards(int index) {
        return unallocatedShards_.get(index);
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       */
      public akka.protobuf.ByteString
          getUnallocatedShardsBytes(int index) {
        return unallocatedShards_.getByteString(index);
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       */
      public Builder setUnallocatedShards(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureUnallocatedShardsIsMutable();
        unallocatedShards_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       */
      public Builder addUnallocatedShards(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureUnallocatedShardsIsMutable();
        unallocatedShards_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       */
      public Builder addAllUnallocatedShards(
          java.lang.Iterable<java.lang.String> values) {
        ensureUnallocatedShardsIsMutable();
        super.addAll(values, unallocatedShards_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       */
      public Builder clearUnallocatedShards() {
        unallocatedShards_ = akka.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string unallocatedShards = 4;</code>
       */
      public Builder addUnallocatedShardsBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureUnallocatedShardsIsMutable();
        unallocatedShards_.add(value);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CoordinatorState)
    }

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

    // @@protoc_insertion_point(class_scope:CoordinatorState)
  }

  public interface ActorRefMessageOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string ref = 1;
    /**
     * <code>required string ref = 1;</code>
     */
    boolean hasRef();
    /**
     * <code>required string ref = 1;</code>
     */
    java.lang.String getRef();
    /**
     * <code>required string ref = 1;</code>
     */
    akka.protobuf.ByteString
        getRefBytes();
  }
  /**
   * Protobuf type {@code ActorRefMessage}
   */
  public static final class ActorRefMessage extends
      akka.protobuf.GeneratedMessage
      implements ActorRefMessageOrBuilder {
    // Use ActorRefMessage.newBuilder() to construct.
    private ActorRefMessage(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ActorRefMessage(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public ActorRefMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected akka.protobuf.GeneratedMessage.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);
    }

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

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

    private int bitField0_;
    // required string ref = 1;
    public static final int REF_FIELD_NUMBER = 1;
    private java.lang.Object ref_;
    /**
     * <code>required string ref = 1;</code>
     */
    public boolean hasRef() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string ref = 1;</code>
     */
    public java.lang.String getRef() {
      java.lang.Object ref = ref_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          ref_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string ref = 1;</code>
     */
    public akka.protobuf.ByteString
        getRefBytes() {
      java.lang.Object ref = ref_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ref_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

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

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

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

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

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

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

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

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

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ActorRefMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage.Builder.class);
      }

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

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

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

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

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ActorRefMessage_descriptor;
      }

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

      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;
      }

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

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ActorRefMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

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

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

      // required string ref = 1;
      private java.lang.Object ref_ = "";
      /**
       * <code>required string ref = 1;</code>
       */
      public boolean hasRef() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string ref = 1;</code>
       */
      public java.lang.String getRef() {
        java.lang.Object ref = ref_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          ref_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string ref = 1;</code>
       */
      public akka.protobuf.ByteString
          getRefBytes() {
        java.lang.Object ref = ref_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ref_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string ref = 1;</code>
       */
      public Builder setRef(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        ref_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string ref = 1;</code>
       */
      public Builder clearRef() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ref_ = getDefaultInstance().getRef();
        onChanged();
        return this;
      }
      /**
       * <code>required string ref = 1;</code>
       */
      public Builder setRefBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        ref_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ActorRefMessage)
    }

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

    // @@protoc_insertion_point(class_scope:ActorRefMessage)
  }

  public interface ShardIdMessageOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string shard = 1;
    /**
     * <code>required string shard = 1;</code>
     */
    boolean hasShard();
    /**
     * <code>required string shard = 1;</code>
     */
    java.lang.String getShard();
    /**
     * <code>required string shard = 1;</code>
     */
    akka.protobuf.ByteString
        getShardBytes();
  }
  /**
   * Protobuf type {@code ShardIdMessage}
   */
  public static final class ShardIdMessage extends
      akka.protobuf.GeneratedMessage
      implements ShardIdMessageOrBuilder {
    // Use ShardIdMessage.newBuilder() to construct.
    private ShardIdMessage(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ShardIdMessage(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public ShardIdMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected akka.protobuf.GeneratedMessage.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);
    }

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

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

    private int bitField0_;
    // required string shard = 1;
    public static final int SHARD_FIELD_NUMBER = 1;
    private java.lang.Object shard_;
    /**
     * <code>required string shard = 1;</code>
     */
    public boolean hasShard() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string shard = 1;</code>
     */
    public java.lang.String getShard() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          shard_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string shard = 1;</code>
     */
    public akka.protobuf.ByteString
        getShardBytes() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shard_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

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

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

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

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

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

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

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

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

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardIdMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage.Builder.class);
      }

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

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

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

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

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardIdMessage_descriptor;
      }

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

      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;
      }

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

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardIdMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

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

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

      // required string shard = 1;
      private java.lang.Object shard_ = "";
      /**
       * <code>required string shard = 1;</code>
       */
      public boolean hasShard() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public java.lang.String getShard() {
        java.lang.Object ref = shard_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          shard_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public akka.protobuf.ByteString
          getShardBytes() {
        java.lang.Object ref = shard_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shard_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public Builder setShard(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public Builder clearShard() {
        bitField0_ = (bitField0_ & ~0x00000001);
        shard_ = getDefaultInstance().getShard();
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public Builder setShardBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ShardIdMessage)
    }

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

    // @@protoc_insertion_point(class_scope:ShardIdMessage)
  }

  public interface ShardHomeAllocatedOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string shard = 1;
    /**
     * <code>required string shard = 1;</code>
     */
    boolean hasShard();
    /**
     * <code>required string shard = 1;</code>
     */
    java.lang.String getShard();
    /**
     * <code>required string shard = 1;</code>
     */
    akka.protobuf.ByteString
        getShardBytes();

    // required string region = 2;
    /**
     * <code>required string region = 2;</code>
     */
    boolean hasRegion();
    /**
     * <code>required string region = 2;</code>
     */
    java.lang.String getRegion();
    /**
     * <code>required string region = 2;</code>
     */
    akka.protobuf.ByteString
        getRegionBytes();
  }
  /**
   * Protobuf type {@code ShardHomeAllocated}
   */
  public static final class ShardHomeAllocated extends
      akka.protobuf.GeneratedMessage
      implements ShardHomeAllocatedOrBuilder {
    // Use ShardHomeAllocated.newBuilder() to construct.
    private ShardHomeAllocated(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ShardHomeAllocated(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public ShardHomeAllocated getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected akka.protobuf.GeneratedMessage.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);
    }

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

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

    private int bitField0_;
    // required string shard = 1;
    public static final int SHARD_FIELD_NUMBER = 1;
    private java.lang.Object shard_;
    /**
     * <code>required string shard = 1;</code>
     */
    public boolean hasShard() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string shard = 1;</code>
     */
    public java.lang.String getShard() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          shard_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string shard = 1;</code>
     */
    public akka.protobuf.ByteString
        getShardBytes() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shard_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required string region = 2;
    public static final int REGION_FIELD_NUMBER = 2;
    private java.lang.Object region_;
    /**
     * <code>required string region = 2;</code>
     */
    public boolean hasRegion() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required string region = 2;</code>
     */
    public java.lang.String getRegion() {
      java.lang.Object ref = region_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          region_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string region = 2;</code>
     */
    public akka.protobuf.ByteString
        getRegionBytes() {
      java.lang.Object ref = region_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        region_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      shard_ = "";
      region_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

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

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomeAllocated_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        shard_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        region_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHomeAllocated_descriptor;
      }

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

      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;
      }

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

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHomeAllocated)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

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

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

      // required string shard = 1;
      private java.lang.Object shard_ = "";
      /**
       * <code>required string shard = 1;</code>
       */
      public boolean hasShard() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public java.lang.String getShard() {
        java.lang.Object ref = shard_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          shard_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public akka.protobuf.ByteString
          getShardBytes() {
        java.lang.Object ref = shard_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shard_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public Builder setShard(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public Builder clearShard() {
        bitField0_ = (bitField0_ & ~0x00000001);
        shard_ = getDefaultInstance().getShard();
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public Builder setShardBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }

      // required string region = 2;
      private java.lang.Object region_ = "";
      /**
       * <code>required string region = 2;</code>
       */
      public boolean hasRegion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required string region = 2;</code>
       */
      public java.lang.String getRegion() {
        java.lang.Object ref = region_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          region_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string region = 2;</code>
       */
      public akka.protobuf.ByteString
          getRegionBytes() {
        java.lang.Object ref = region_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          region_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string region = 2;</code>
       */
      public Builder setRegion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        region_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string region = 2;</code>
       */
      public Builder clearRegion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        region_ = getDefaultInstance().getRegion();
        onChanged();
        return this;
      }
      /**
       * <code>required string region = 2;</code>
       */
      public Builder setRegionBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        region_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ShardHomeAllocated)
    }

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

    // @@protoc_insertion_point(class_scope:ShardHomeAllocated)
  }

  public interface ShardHomeOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string shard = 1;
    /**
     * <code>required string shard = 1;</code>
     */
    boolean hasShard();
    /**
     * <code>required string shard = 1;</code>
     */
    java.lang.String getShard();
    /**
     * <code>required string shard = 1;</code>
     */
    akka.protobuf.ByteString
        getShardBytes();

    // required string region = 2;
    /**
     * <code>required string region = 2;</code>
     */
    boolean hasRegion();
    /**
     * <code>required string region = 2;</code>
     */
    java.lang.String getRegion();
    /**
     * <code>required string region = 2;</code>
     */
    akka.protobuf.ByteString
        getRegionBytes();
  }
  /**
   * Protobuf type {@code ShardHome}
   */
  public static final class ShardHome extends
      akka.protobuf.GeneratedMessage
      implements ShardHomeOrBuilder {
    // Use ShardHome.newBuilder() to construct.
    private ShardHome(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ShardHome(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public ShardHome getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected akka.protobuf.GeneratedMessage.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);
    }

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

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

    private int bitField0_;
    // required string shard = 1;
    public static final int SHARD_FIELD_NUMBER = 1;
    private java.lang.Object shard_;
    /**
     * <code>required string shard = 1;</code>
     */
    public boolean hasShard() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string shard = 1;</code>
     */
    public java.lang.String getShard() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          shard_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string shard = 1;</code>
     */
    public akka.protobuf.ByteString
        getShardBytes() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shard_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required string region = 2;
    public static final int REGION_FIELD_NUMBER = 2;
    private java.lang.Object region_;
    /**
     * <code>required string region = 2;</code>
     */
    public boolean hasRegion() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required string region = 2;</code>
     */
    public java.lang.String getRegion() {
      java.lang.Object ref = region_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          region_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string region = 2;</code>
     */
    public akka.protobuf.ByteString
        getRegionBytes() {
      java.lang.Object ref = region_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        region_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      shard_ = "";
      region_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

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

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHome_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        shard_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        region_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardHome_descriptor;
      }

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

      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;
      }

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

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardHome)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

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

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

      // required string shard = 1;
      private java.lang.Object shard_ = "";
      /**
       * <code>required string shard = 1;</code>
       */
      public boolean hasShard() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public java.lang.String getShard() {
        java.lang.Object ref = shard_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          shard_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public akka.protobuf.ByteString
          getShardBytes() {
        java.lang.Object ref = shard_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shard_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public Builder setShard(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public Builder clearShard() {
        bitField0_ = (bitField0_ & ~0x00000001);
        shard_ = getDefaultInstance().getShard();
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public Builder setShardBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }

      // required string region = 2;
      private java.lang.Object region_ = "";
      /**
       * <code>required string region = 2;</code>
       */
      public boolean hasRegion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required string region = 2;</code>
       */
      public java.lang.String getRegion() {
        java.lang.Object ref = region_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          region_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string region = 2;</code>
       */
      public akka.protobuf.ByteString
          getRegionBytes() {
        java.lang.Object ref = region_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          region_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string region = 2;</code>
       */
      public Builder setRegion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        region_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string region = 2;</code>
       */
      public Builder clearRegion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        region_ = getDefaultInstance().getRegion();
        onChanged();
        return this;
      }
      /**
       * <code>required string region = 2;</code>
       */
      public Builder setRegionBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        region_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ShardHome)
    }

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

    // @@protoc_insertion_point(class_scope:ShardHome)
  }

  public interface EntityStateOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // repeated string entities = 1;
    /**
     * <code>repeated string entities = 1;</code>
     */
    java.util.List<java.lang.String>
    getEntitiesList();
    /**
     * <code>repeated string entities = 1;</code>
     */
    int getEntitiesCount();
    /**
     * <code>repeated string entities = 1;</code>
     */
    java.lang.String getEntities(int index);
    /**
     * <code>repeated string entities = 1;</code>
     */
    akka.protobuf.ByteString
        getEntitiesBytes(int index);
  }
  /**
   * Protobuf type {@code EntityState}
   */
  public static final class EntityState extends
      akka.protobuf.GeneratedMessage
      implements EntityStateOrBuilder {
    // Use EntityState.newBuilder() to construct.
    private EntityState(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private EntityState(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public EntityState getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected akka.protobuf.GeneratedMessage.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 akka.protobuf.Parser<EntityState> PARSER =
        new akka.protobuf.AbstractParser<EntityState>() {
      public EntityState parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new EntityState(input, extensionRegistry);
      }
    };

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

    // repeated string entities = 1;
    public static final int ENTITIES_FIELD_NUMBER = 1;
    private akka.protobuf.LazyStringList entities_;
    /**
     * <code>repeated string entities = 1;</code>
     */
    public java.util.List<java.lang.String>
        getEntitiesList() {
      return entities_;
    }
    /**
     * <code>repeated string entities = 1;</code>
     */
    public int getEntitiesCount() {
      return entities_.size();
    }
    /**
     * <code>repeated string entities = 1;</code>
     */
    public java.lang.String getEntities(int index) {
      return entities_.get(index);
    }
    /**
     * <code>repeated string entities = 1;</code>
     */
    public akka.protobuf.ByteString
        getEntitiesBytes(int index) {
      return entities_.getByteString(index);
    }

    private void initFields() {
      entities_ = akka.protobuf.LazyStringArrayList.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < entities_.size(); i++) {
        output.writeBytes(1, entities_.getByteString(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < entities_.size(); i++) {
          dataSize += akka.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(entities_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getEntitiesList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

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

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        entities_ = akka.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityState_descriptor;
      }

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

      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;
      }

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

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

      public final boolean isInitialized() {
        return true;
      }

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

      // repeated string entities = 1;
      private akka.protobuf.LazyStringList entities_ = akka.protobuf.LazyStringArrayList.EMPTY;
      private void ensureEntitiesIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          entities_ = new akka.protobuf.LazyStringArrayList(entities_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated string entities = 1;</code>
       */
      public java.util.List<java.lang.String>
          getEntitiesList() {
        return java.util.Collections.unmodifiableList(entities_);
      }
      /**
       * <code>repeated string entities = 1;</code>
       */
      public int getEntitiesCount() {
        return entities_.size();
      }
      /**
       * <code>repeated string entities = 1;</code>
       */
      public java.lang.String getEntities(int index) {
        return entities_.get(index);
      }
      /**
       * <code>repeated string entities = 1;</code>
       */
      public akka.protobuf.ByteString
          getEntitiesBytes(int index) {
        return entities_.getByteString(index);
      }
      /**
       * <code>repeated string entities = 1;</code>
       */
      public Builder setEntities(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntitiesIsMutable();
        entities_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entities = 1;</code>
       */
      public Builder addEntities(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntitiesIsMutable();
        entities_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entities = 1;</code>
       */
      public Builder addAllEntities(
          java.lang.Iterable<java.lang.String> values) {
        ensureEntitiesIsMutable();
        super.addAll(values, entities_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entities = 1;</code>
       */
      public Builder clearEntities() {
        entities_ = akka.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string entities = 1;</code>
       */
      public Builder addEntitiesBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEntitiesIsMutable();
        entities_.add(value);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:EntityState)
    }

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

    // @@protoc_insertion_point(class_scope:EntityState)
  }

  public interface EntityStartedOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string entityId = 1;
    /**
     * <code>required string entityId = 1;</code>
     */
    boolean hasEntityId();
    /**
     * <code>required string entityId = 1;</code>
     */
    java.lang.String getEntityId();
    /**
     * <code>required string entityId = 1;</code>
     */
    akka.protobuf.ByteString
        getEntityIdBytes();
  }
  /**
   * Protobuf type {@code EntityStarted}
   */
  public static final class EntityStarted extends
      akka.protobuf.GeneratedMessage
      implements EntityStartedOrBuilder {
    // Use EntityStarted.newBuilder() to construct.
    private EntityStarted(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private EntityStarted(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public EntityStarted getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected akka.protobuf.GeneratedMessage.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);
    }

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

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

    private int bitField0_;
    // required string entityId = 1;
    public static final int ENTITYID_FIELD_NUMBER = 1;
    private java.lang.Object entityId_;
    /**
     * <code>required string entityId = 1;</code>
     */
    public boolean hasEntityId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string entityId = 1;</code>
     */
    public java.lang.String getEntityId() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          entityId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string entityId = 1;</code>
     */
    public akka.protobuf.ByteString
        getEntityIdBytes() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        entityId_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

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

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

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

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

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

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

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code EntityStarted}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStartedOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStarted_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStarted_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted.Builder.class);
      }

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

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

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

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

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStarted_descriptor;
      }

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

      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;
      }

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

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStarted)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

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

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

      // required string entityId = 1;
      private java.lang.Object entityId_ = "";
      /**
       * <code>required string entityId = 1;</code>
       */
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public java.lang.String getEntityId() {
        java.lang.Object ref = entityId_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          entityId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public akka.protobuf.ByteString
          getEntityIdBytes() {
        java.lang.Object ref = entityId_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          entityId_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public Builder setEntityId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public Builder clearEntityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entityId_ = getDefaultInstance().getEntityId();
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public Builder setEntityIdBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:EntityStarted)
    }

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

    // @@protoc_insertion_point(class_scope:EntityStarted)
  }

  public interface EntityStoppedOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string entityId = 1;
    /**
     * <code>required string entityId = 1;</code>
     */
    boolean hasEntityId();
    /**
     * <code>required string entityId = 1;</code>
     */
    java.lang.String getEntityId();
    /**
     * <code>required string entityId = 1;</code>
     */
    akka.protobuf.ByteString
        getEntityIdBytes();
  }
  /**
   * Protobuf type {@code EntityStopped}
   */
  public static final class EntityStopped extends
      akka.protobuf.GeneratedMessage
      implements EntityStoppedOrBuilder {
    // Use EntityStopped.newBuilder() to construct.
    private EntityStopped(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private EntityStopped(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public EntityStopped getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected akka.protobuf.GeneratedMessage.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);
    }

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

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

    private int bitField0_;
    // required string entityId = 1;
    public static final int ENTITYID_FIELD_NUMBER = 1;
    private java.lang.Object entityId_;
    /**
     * <code>required string entityId = 1;</code>
     */
    public boolean hasEntityId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string entityId = 1;</code>
     */
    public java.lang.String getEntityId() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          entityId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string entityId = 1;</code>
     */
    public akka.protobuf.ByteString
        getEntityIdBytes() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        entityId_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

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

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

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

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

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

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

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code EntityStopped}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStoppedOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStopped_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStopped_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped.Builder.class);
      }

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

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

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

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

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_EntityStopped_descriptor;
      }

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

      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;
      }

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

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.EntityStopped)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

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

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

      // required string entityId = 1;
      private java.lang.Object entityId_ = "";
      /**
       * <code>required string entityId = 1;</code>
       */
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public java.lang.String getEntityId() {
        java.lang.Object ref = entityId_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          entityId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public akka.protobuf.ByteString
          getEntityIdBytes() {
        java.lang.Object ref = entityId_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          entityId_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public Builder setEntityId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public Builder clearEntityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entityId_ = getDefaultInstance().getEntityId();
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public Builder setEntityIdBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:EntityStopped)
    }

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

    // @@protoc_insertion_point(class_scope:EntityStopped)
  }

  public interface ShardStatsOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string shard = 1;
    /**
     * <code>required string shard = 1;</code>
     */
    boolean hasShard();
    /**
     * <code>required string shard = 1;</code>
     */
    java.lang.String getShard();
    /**
     * <code>required string shard = 1;</code>
     */
    akka.protobuf.ByteString
        getShardBytes();

    // required int32 entityCount = 2;
    /**
     * <code>required int32 entityCount = 2;</code>
     */
    boolean hasEntityCount();
    /**
     * <code>required int32 entityCount = 2;</code>
     */
    int getEntityCount();
  }
  /**
   * Protobuf type {@code ShardStats}
   */
  public static final class ShardStats extends
      akka.protobuf.GeneratedMessage
      implements ShardStatsOrBuilder {
    // Use ShardStats.newBuilder() to construct.
    private ShardStats(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ShardStats(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public ShardStats getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected akka.protobuf.GeneratedMessage.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);
    }

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

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

    private int bitField0_;
    // required string shard = 1;
    public static final int SHARD_FIELD_NUMBER = 1;
    private java.lang.Object shard_;
    /**
     * <code>required string shard = 1;</code>
     */
    public boolean hasShard() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string shard = 1;</code>
     */
    public java.lang.String getShard() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          shard_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string shard = 1;</code>
     */
    public akka.protobuf.ByteString
        getShardBytes() {
      java.lang.Object ref = shard_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shard_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required int32 entityCount = 2;
    public static final int ENTITYCOUNT_FIELD_NUMBER = 2;
    private int entityCount_;
    /**
     * <code>required int32 entityCount = 2;</code>
     */
    public boolean hasEntityCount() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int32 entityCount = 2;</code>
     */
    public int getEntityCount() {
      return entityCount_;
    }

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

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

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, getShardBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeInt32Size(2, entityCount_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

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

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardStats_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        shard_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        entityCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardStats_descriptor;
      }

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

      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;
      }

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

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardStats)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

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

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

      // required string shard = 1;
      private java.lang.Object shard_ = "";
      /**
       * <code>required string shard = 1;</code>
       */
      public boolean hasShard() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public java.lang.String getShard() {
        java.lang.Object ref = shard_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          shard_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public akka.protobuf.ByteString
          getShardBytes() {
        java.lang.Object ref = shard_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shard_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public Builder setShard(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public Builder clearShard() {
        bitField0_ = (bitField0_ & ~0x00000001);
        shard_ = getDefaultInstance().getShard();
        onChanged();
        return this;
      }
      /**
       * <code>required string shard = 1;</code>
       */
      public Builder setShardBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        shard_ = value;
        onChanged();
        return this;
      }

      // required int32 entityCount = 2;
      private int entityCount_ ;
      /**
       * <code>required int32 entityCount = 2;</code>
       */
      public boolean hasEntityCount() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 entityCount = 2;</code>
       */
      public int getEntityCount() {
        return entityCount_;
      }
      /**
       * <code>required int32 entityCount = 2;</code>
       */
      public Builder setEntityCount(int value) {
        bitField0_ |= 0x00000002;
        entityCount_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 entityCount = 2;</code>
       */
      public Builder clearEntityCount() {
        bitField0_ = (bitField0_ & ~0x00000002);
        entityCount_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ShardStats)
    }

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

    // @@protoc_insertion_point(class_scope:ShardStats)
  }

  public interface ShardRegionStatsOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // repeated .MapFieldEntry stats = 1;
    /**
     * <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);
  }
  /**
   * Protobuf type {@code ShardRegionStats}
   */
  public static final class ShardRegionStats extends
      akka.protobuf.GeneratedMessage
      implements ShardRegionStatsOrBuilder {
    // Use ShardRegionStats.newBuilder() to construct.
    private ShardRegionStats(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ShardRegionStats(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public ShardRegionStats getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected akka.protobuf.GeneratedMessage.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 akka.protobuf.Parser<ShardRegionStats> PARSER =
        new akka.protobuf.AbstractParser<ShardRegionStats>() {
      public ShardRegionStats parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new ShardRegionStats(input, extensionRegistry);
      }
    };

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

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

    private void initFields() {
      stats_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < stats_.size(); i++) {
        output.writeMessage(1, stats_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < stats_.size(); i++) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, stats_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

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

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardRegionStats_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.ShardRegionStats.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        if (statsBuilder_ == null) {
          stats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          statsBuilder_.clear();
        }
        return this;
      }

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

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_ShardRegionStats_descriptor;
      }

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

      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;
      }

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

      public Builder mergeFrom(akka.protobuf.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.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getStatsFieldBuilder() : null;
            } else {
              statsBuilder_.addAllMessages(other.stats_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

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

      private akka.protobuf.RepeatedFieldBuilder<
          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();
          super.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.protobuf.RepeatedFieldBuilder<
          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.protobuf.RepeatedFieldBuilder<
              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) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          stats_ = null;
        }
        return statsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:ShardRegionStats)
    }

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

    // @@protoc_insertion_point(class_scope:ShardRegionStats)
  }

  public interface MapFieldEntryOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // optional string key = 1;
    /**
     * <code>optional string key = 1;</code>
     */
    boolean hasKey();
    /**
     * <code>optional string key = 1;</code>
     */
    java.lang.String getKey();
    /**
     * <code>optional string key = 1;</code>
     */
    akka.protobuf.ByteString
        getKeyBytes();

    // optional int32 value = 2;
    /**
     * <code>optional int32 value = 2;</code>
     */
    boolean hasValue();
    /**
     * <code>optional int32 value = 2;</code>
     */
    int getValue();
  }
  /**
   * Protobuf type {@code MapFieldEntry}
   */
  public static final class MapFieldEntry extends
      akka.protobuf.GeneratedMessage
      implements MapFieldEntryOrBuilder {
    // Use MapFieldEntry.newBuilder() to construct.
    private MapFieldEntry(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MapFieldEntry(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public MapFieldEntry getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected akka.protobuf.GeneratedMessage.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);
    }

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

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

    private int bitField0_;
    // optional string key = 1;
    public static final int KEY_FIELD_NUMBER = 1;
    private java.lang.Object key_;
    /**
     * <code>optional string key = 1;</code>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional string key = 1;</code>
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string key = 1;</code>
     */
    public akka.protobuf.ByteString
        getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // optional int32 value = 2;
    public static final int VALUE_FIELD_NUMBER = 2;
    private int value_;
    /**
     * <code>optional int32 value = 2;</code>
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional int32 value = 2;</code>
     */
    public int getValue() {
      return value_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, getKeyBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeInt32Size(2, value_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

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

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_MapFieldEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_MapFieldEntry_descriptor;
      }

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

      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;
      }

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

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.MapFieldEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

      public final boolean isInitialized() {
        return true;
      }

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

      // optional string key = 1;
      private java.lang.Object key_ = "";
      /**
       * <code>optional string key = 1;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string key = 1;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          key_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string key = 1;</code>
       */
      public akka.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string key = 1;</code>
       */
      public Builder setKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string key = 1;</code>
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       * <code>optional string key = 1;</code>
       */
      public Builder setKeyBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      // optional int32 value = 2;
      private int value_ ;
      /**
       * <code>optional int32 value = 2;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional int32 value = 2;</code>
       */
      public int getValue() {
        return value_;
      }
      /**
       * <code>optional int32 value = 2;</code>
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 value = 2;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:MapFieldEntry)
    }

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

    // @@protoc_insertion_point(class_scope:MapFieldEntry)
  }

  public interface StartEntityOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string entityId = 1;
    /**
     * <code>required string entityId = 1;</code>
     */
    boolean hasEntityId();
    /**
     * <code>required string entityId = 1;</code>
     */
    java.lang.String getEntityId();
    /**
     * <code>required string entityId = 1;</code>
     */
    akka.protobuf.ByteString
        getEntityIdBytes();
  }
  /**
   * Protobuf type {@code StartEntity}
   */
  public static final class StartEntity extends
      akka.protobuf.GeneratedMessage
      implements StartEntityOrBuilder {
    // Use StartEntity.newBuilder() to construct.
    private StartEntity(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private StartEntity(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public StartEntity getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected akka.protobuf.GeneratedMessage.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);
    }

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

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

    private int bitField0_;
    // required string entityId = 1;
    public static final int ENTITYID_FIELD_NUMBER = 1;
    private java.lang.Object entityId_;
    /**
     * <code>required string entityId = 1;</code>
     */
    public boolean hasEntityId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string entityId = 1;</code>
     */
    public java.lang.String getEntityId() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          entityId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string entityId = 1;</code>
     */
    public akka.protobuf.ByteString
        getEntityIdBytes() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        entityId_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

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

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

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

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

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

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

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

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

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StartEntity_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity.Builder.class);
      }

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

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

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

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

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StartEntity_descriptor;
      }

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

      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;
      }

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

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntity)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

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

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

      // required string entityId = 1;
      private java.lang.Object entityId_ = "";
      /**
       * <code>required string entityId = 1;</code>
       */
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public java.lang.String getEntityId() {
        java.lang.Object ref = entityId_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          entityId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public akka.protobuf.ByteString
          getEntityIdBytes() {
        java.lang.Object ref = entityId_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          entityId_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public Builder setEntityId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public Builder clearEntityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entityId_ = getDefaultInstance().getEntityId();
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public Builder setEntityIdBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:StartEntity)
    }

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

    // @@protoc_insertion_point(class_scope:StartEntity)
  }

  public interface StartEntityAckOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string entityId = 1;
    /**
     * <code>required string entityId = 1;</code>
     */
    boolean hasEntityId();
    /**
     * <code>required string entityId = 1;</code>
     */
    java.lang.String getEntityId();
    /**
     * <code>required string entityId = 1;</code>
     */
    akka.protobuf.ByteString
        getEntityIdBytes();

    // required string shardId = 2;
    /**
     * <code>required string shardId = 2;</code>
     */
    boolean hasShardId();
    /**
     * <code>required string shardId = 2;</code>
     */
    java.lang.String getShardId();
    /**
     * <code>required string shardId = 2;</code>
     */
    akka.protobuf.ByteString
        getShardIdBytes();
  }
  /**
   * Protobuf type {@code StartEntityAck}
   */
  public static final class StartEntityAck extends
      akka.protobuf.GeneratedMessage
      implements StartEntityAckOrBuilder {
    // Use StartEntityAck.newBuilder() to construct.
    private StartEntityAck(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private StartEntityAck(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public StartEntityAck getDefaultInstanceForType() {
      return defaultInstance;
    }

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

    protected akka.protobuf.GeneratedMessage.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);
    }

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

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

    private int bitField0_;
    // required string entityId = 1;
    public static final int ENTITYID_FIELD_NUMBER = 1;
    private java.lang.Object entityId_;
    /**
     * <code>required string entityId = 1;</code>
     */
    public boolean hasEntityId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string entityId = 1;</code>
     */
    public java.lang.String getEntityId() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          entityId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string entityId = 1;</code>
     */
    public akka.protobuf.ByteString
        getEntityIdBytes() {
      java.lang.Object ref = entityId_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        entityId_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required string shardId = 2;
    public static final int SHARDID_FIELD_NUMBER = 2;
    private java.lang.Object shardId_;
    /**
     * <code>required string shardId = 2;</code>
     */
    public boolean hasShardId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required string shardId = 2;</code>
     */
    public java.lang.String getShardId() {
      java.lang.Object ref = shardId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          shardId_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string shardId = 2;</code>
     */
    public akka.protobuf.ByteString
        getShardIdBytes() {
      java.lang.Object ref = shardId_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shardId_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      entityId_ = "";
      shardId_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

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

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

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

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

    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

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

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StartEntityAck_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck.class, akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck.Builder.class);
      }

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

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

      public Builder clear() {
        super.clear();
        entityId_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        shardId_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.internal_static_StartEntityAck_descriptor;
      }

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

      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;
      }

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

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck) {
          return mergeFrom((akka.cluster.sharding.protobuf.msg.ClusterShardingMessages.StartEntityAck)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

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

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

      // required string entityId = 1;
      private java.lang.Object entityId_ = "";
      /**
       * <code>required string entityId = 1;</code>
       */
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public java.lang.String getEntityId() {
        java.lang.Object ref = entityId_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          entityId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public akka.protobuf.ByteString
          getEntityIdBytes() {
        java.lang.Object ref = entityId_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          entityId_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public Builder setEntityId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public Builder clearEntityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entityId_ = getDefaultInstance().getEntityId();
        onChanged();
        return this;
      }
      /**
       * <code>required string entityId = 1;</code>
       */
      public Builder setEntityIdBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        entityId_ = value;
        onChanged();
        return this;
      }

      // required string shardId = 2;
      private java.lang.Object shardId_ = "";
      /**
       * <code>required string shardId = 2;</code>
       */
      public boolean hasShardId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required string shardId = 2;</code>
       */
      public java.lang.String getShardId() {
        java.lang.Object ref = shardId_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          shardId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string shardId = 2;</code>
       */
      public akka.protobuf.ByteString
          getShardIdBytes() {
        java.lang.Object ref = shardId_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shardId_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string shardId = 2;</code>
       */
      public Builder setShardId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        shardId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string shardId = 2;</code>
       */
      public Builder clearShardId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        shardId_ = getDefaultInstance().getShardId();
        onChanged();
        return this;
      }
      /**
       * <code>required string shardId = 2;</code>
       */
      public Builder setShardIdBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        shardId_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:StartEntityAck)
    }

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

    // @@protoc_insertion_point(class_scope:StartEntityAck)
  }

  private static akka.protobuf.Descriptors.Descriptor
    internal_static_CoordinatorState_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CoordinatorState_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_CoordinatorState_ShardEntry_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CoordinatorState_ShardEntry_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_ActorRefMessage_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ActorRefMessage_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_ShardIdMessage_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ShardIdMessage_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_ShardHomeAllocated_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ShardHomeAllocated_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_ShardHome_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ShardHome_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_EntityState_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_EntityState_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_EntityStarted_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_EntityStarted_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_EntityStopped_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_EntityStopped_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_ShardStats_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ShardStats_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_ShardRegionStats_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ShardRegionStats_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_MapFieldEntry_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_MapFieldEntry_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_StartEntity_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_StartEntity_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_StartEntityAck_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_StartEntityAck_fieldAccessorTable;

  public static akka.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static akka.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\035ClusterShardingMessages.proto\"\265\001\n\020Coor" +
      "dinatorState\022,\n\006shards\030\001 \003(\0132\034.Coordinat" +
      "orState.ShardEntry\022\017\n\007regions\030\002 \003(\t\022\025\n\rr" +
      "egionProxies\030\003 \003(\t\022\031\n\021unallocatedShards\030" +
      "\004 \003(\t\0320\n\nShardEntry\022\017\n\007shardId\030\001 \002(\t\022\021\n\t" +
      "regionRef\030\002 \002(\t\"\036\n\017ActorRefMessage\022\013\n\003re" +
      "f\030\001 \002(\t\"\037\n\016ShardIdMessage\022\r\n\005shard\030\001 \002(\t" +
      "\"3\n\022ShardHomeAllocated\022\r\n\005shard\030\001 \002(\t\022\016\n" +
      "\006region\030\002 \002(\t\"*\n\tShardHome\022\r\n\005shard\030\001 \002(" +
      "\t\022\016\n\006region\030\002 \002(\t\"\037\n\013EntityState\022\020\n\010enti",
      "ties\030\001 \003(\t\"!\n\rEntityStarted\022\020\n\010entityId\030" +
      "\001 \002(\t\"!\n\rEntityStopped\022\020\n\010entityId\030\001 \002(\t" +
      "\"0\n\nShardStats\022\r\n\005shard\030\001 \002(\t\022\023\n\013entityC" +
      "ount\030\002 \002(\005\"1\n\020ShardRegionStats\022\035\n\005stats\030" +
      "\001 \003(\0132\016.MapFieldEntry\"+\n\rMapFieldEntry\022\013" +
      "\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\005\"\037\n\013StartEntit" +
      "y\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(\tB&\n\"akka" +
      ".cluster.sharding.protobuf.msgH\001"
    };
    akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public akka.protobuf.ExtensionRegistry assignDescriptors(
            akka.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_CoordinatorState_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_CoordinatorState_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ActorRefMessage_descriptor,
              new java.lang.String[] { "Ref", });
          internal_static_ShardIdMessage_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_ShardIdMessage_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ShardIdMessage_descriptor,
              new java.lang.String[] { "Shard", });
          internal_static_ShardHomeAllocated_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_ShardHomeAllocated_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ShardHome_descriptor,
              new java.lang.String[] { "Shard", "Region", });
          internal_static_EntityState_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_EntityState_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_EntityState_descriptor,
              new java.lang.String[] { "Entities", });
          internal_static_EntityStarted_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_EntityStarted_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_EntityStarted_descriptor,
              new java.lang.String[] { "EntityId", });
          internal_static_EntityStopped_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_EntityStopped_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_EntityStopped_descriptor,
              new java.lang.String[] { "EntityId", });
          internal_static_ShardStats_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_ShardStats_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ShardStats_descriptor,
              new java.lang.String[] { "Shard", "EntityCount", });
          internal_static_ShardRegionStats_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_ShardRegionStats_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ShardRegionStats_descriptor,
              new java.lang.String[] { "Stats", });
          internal_static_MapFieldEntry_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_MapFieldEntry_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_MapFieldEntry_descriptor,
              new java.lang.String[] { "Key", "Value", });
          internal_static_StartEntity_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_StartEntity_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_StartEntity_descriptor,
              new java.lang.String[] { "EntityId", });
          internal_static_StartEntityAck_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_StartEntityAck_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_StartEntityAck_descriptor,
              new java.lang.String[] { "EntityId", "ShardId", });
          return null;
        }
      };
    akka.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new akka.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }

  // @@protoc_insertion_point(outer_class_scope)
}
