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

package pb.xiugou.x1.protobuf.hero;

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

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface HeroListResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.HeroListResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> 
        getHeroesList();
    /**
     * <pre>
     *英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    pb.xiugou.x1.protobuf.hero.Hero.PbHero getHeroes(int index);
    /**
     * <pre>
     *英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    int getHeroesCount();
    /**
     * <pre>
     *英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
        getHeroesOrBuilderList();
    /**
     * <pre>
     *英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getHeroesOrBuilder(
        int index);

    /**
     * <pre>
     *未激活的英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> 
        getUnactiveHeroesList();
    /**
     * <pre>
     *未激活的英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
     */
    pb.xiugou.x1.protobuf.hero.Hero.PbHero getUnactiveHeroes(int index);
    /**
     * <pre>
     *未激活的英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
     */
    int getUnactiveHeroesCount();
    /**
     * <pre>
     *未激活的英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
        getUnactiveHeroesOrBuilderList();
    /**
     * <pre>
     *未激活的英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
     */
    pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getUnactiveHeroesOrBuilder(
        int index);
  }
  /**
   * <pre>
   *英雄列表数据
   * </pre>
   *
   * Protobuf type {@code pb.HeroListResponse}
   */
  public  static final class HeroListResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.HeroListResponse)
      HeroListResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HeroListResponse.newBuilder() to construct.
    private HeroListResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HeroListResponse() {
      heroes_ = java.util.Collections.emptyList();
      unactiveHeroes_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HeroListResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                heroes_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.hero.Hero.PbHero>();
                mutable_bitField0_ |= 0x00000001;
              }
              heroes_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.hero.Hero.PbHero.parser(), extensionRegistry));
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                unactiveHeroes_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.hero.Hero.PbHero>();
                mutable_bitField0_ |= 0x00000002;
              }
              unactiveHeroes_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.hero.Hero.PbHero.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          heroes_ = java.util.Collections.unmodifiableList(heroes_);
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          unactiveHeroes_ = java.util.Collections.unmodifiableList(unactiveHeroes_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroListResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroListResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse.class, pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.HeroListResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 700001;</code>
       */
      ID(700001),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 700001;</code>
       */
      public static final int ID_VALUE = 700001;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 700001: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.HeroListResponse.Proto)
    }

    public static final int HEROES_FIELD_NUMBER = 1;
    private java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> heroes_;
    /**
     * <pre>
     *英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> getHeroesList() {
      return heroes_;
    }
    /**
     * <pre>
     *英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
        getHeroesOrBuilderList() {
      return heroes_;
    }
    /**
     * <pre>
     *英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    public int getHeroesCount() {
      return heroes_.size();
    }
    /**
     * <pre>
     *英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    public pb.xiugou.x1.protobuf.hero.Hero.PbHero getHeroes(int index) {
      return heroes_.get(index);
    }
    /**
     * <pre>
     *英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    public pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getHeroesOrBuilder(
        int index) {
      return heroes_.get(index);
    }

    public static final int UNACTIVE_HEROES_FIELD_NUMBER = 2;
    private java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> unactiveHeroes_;
    /**
     * <pre>
     *未激活的英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> getUnactiveHeroesList() {
      return unactiveHeroes_;
    }
    /**
     * <pre>
     *未激活的英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
        getUnactiveHeroesOrBuilderList() {
      return unactiveHeroes_;
    }
    /**
     * <pre>
     *未激活的英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
     */
    public int getUnactiveHeroesCount() {
      return unactiveHeroes_.size();
    }
    /**
     * <pre>
     *未激活的英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
     */
    public pb.xiugou.x1.protobuf.hero.Hero.PbHero getUnactiveHeroes(int index) {
      return unactiveHeroes_.get(index);
    }
    /**
     * <pre>
     *未激活的英雄列表
     * </pre>
     *
     * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
     */
    public pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getUnactiveHeroesOrBuilder(
        int index) {
      return unactiveHeroes_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < heroes_.size(); i++) {
        output.writeMessage(1, heroes_.get(i));
      }
      for (int i = 0; i < unactiveHeroes_.size(); i++) {
        output.writeMessage(2, unactiveHeroes_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < heroes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, heroes_.get(i));
      }
      for (int i = 0; i < unactiveHeroes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, unactiveHeroes_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse other = (pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getHeroesCount() > 0) {
        hash = (37 * hash) + HEROES_FIELD_NUMBER;
        hash = (53 * hash) + getHeroesList().hashCode();
      }
      if (getUnactiveHeroesCount() > 0) {
        hash = (37 * hash) + UNACTIVE_HEROES_FIELD_NUMBER;
        hash = (53 * hash) + getUnactiveHeroesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *英雄列表数据
     * </pre>
     *
     * Protobuf type {@code pb.HeroListResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.HeroListResponse)
        pb.xiugou.x1.protobuf.hero.Hero.HeroListResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroListResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroListResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse.class, pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeroesFieldBuilder();
          getUnactiveHeroesFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (heroesBuilder_ == null) {
          heroes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          heroesBuilder_.clear();
        }
        if (unactiveHeroesBuilder_ == null) {
          unactiveHeroes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          unactiveHeroesBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroListResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse build() {
        pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse buildPartial() {
        pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse result = new pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse(this);
        int from_bitField0_ = bitField0_;
        if (heroesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            heroes_ = java.util.Collections.unmodifiableList(heroes_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.heroes_ = heroes_;
        } else {
          result.heroes_ = heroesBuilder_.build();
        }
        if (unactiveHeroesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            unactiveHeroes_ = java.util.Collections.unmodifiableList(unactiveHeroes_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.unactiveHeroes_ = unactiveHeroes_;
        } else {
          result.unactiveHeroes_ = unactiveHeroesBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse other) {
        if (other == pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse.getDefaultInstance()) return this;
        if (heroesBuilder_ == null) {
          if (!other.heroes_.isEmpty()) {
            if (heroes_.isEmpty()) {
              heroes_ = other.heroes_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureHeroesIsMutable();
              heroes_.addAll(other.heroes_);
            }
            onChanged();
          }
        } else {
          if (!other.heroes_.isEmpty()) {
            if (heroesBuilder_.isEmpty()) {
              heroesBuilder_.dispose();
              heroesBuilder_ = null;
              heroes_ = other.heroes_;
              bitField0_ = (bitField0_ & ~0x00000001);
              heroesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getHeroesFieldBuilder() : null;
            } else {
              heroesBuilder_.addAllMessages(other.heroes_);
            }
          }
        }
        if (unactiveHeroesBuilder_ == null) {
          if (!other.unactiveHeroes_.isEmpty()) {
            if (unactiveHeroes_.isEmpty()) {
              unactiveHeroes_ = other.unactiveHeroes_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureUnactiveHeroesIsMutable();
              unactiveHeroes_.addAll(other.unactiveHeroes_);
            }
            onChanged();
          }
        } else {
          if (!other.unactiveHeroes_.isEmpty()) {
            if (unactiveHeroesBuilder_.isEmpty()) {
              unactiveHeroesBuilder_.dispose();
              unactiveHeroesBuilder_ = null;
              unactiveHeroes_ = other.unactiveHeroes_;
              bitField0_ = (bitField0_ & ~0x00000002);
              unactiveHeroesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getUnactiveHeroesFieldBuilder() : null;
            } else {
              unactiveHeroesBuilder_.addAllMessages(other.unactiveHeroes_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> heroes_ =
        java.util.Collections.emptyList();
      private void ensureHeroesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          heroes_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.hero.Hero.PbHero>(heroes_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> heroesBuilder_;

      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> getHeroesList() {
        if (heroesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(heroes_);
        } else {
          return heroesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public int getHeroesCount() {
        if (heroesBuilder_ == null) {
          return heroes_.size();
        } else {
          return heroesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero getHeroes(int index) {
        if (heroesBuilder_ == null) {
          return heroes_.get(index);
        } else {
          return heroesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder setHeroes(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (heroesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroesIsMutable();
          heroes_.set(index, value);
          onChanged();
        } else {
          heroesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder setHeroes(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder builderForValue) {
        if (heroesBuilder_ == null) {
          ensureHeroesIsMutable();
          heroes_.set(index, builderForValue.build());
          onChanged();
        } else {
          heroesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder addHeroes(pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (heroesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroesIsMutable();
          heroes_.add(value);
          onChanged();
        } else {
          heroesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder addHeroes(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (heroesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroesIsMutable();
          heroes_.add(index, value);
          onChanged();
        } else {
          heroesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder addHeroes(
          pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder builderForValue) {
        if (heroesBuilder_ == null) {
          ensureHeroesIsMutable();
          heroes_.add(builderForValue.build());
          onChanged();
        } else {
          heroesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder addHeroes(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder builderForValue) {
        if (heroesBuilder_ == null) {
          ensureHeroesIsMutable();
          heroes_.add(index, builderForValue.build());
          onChanged();
        } else {
          heroesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder addAllHeroes(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHero> values) {
        if (heroesBuilder_ == null) {
          ensureHeroesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, heroes_);
          onChanged();
        } else {
          heroesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder clearHeroes() {
        if (heroesBuilder_ == null) {
          heroes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          heroesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder removeHeroes(int index) {
        if (heroesBuilder_ == null) {
          ensureHeroesIsMutable();
          heroes_.remove(index);
          onChanged();
        } else {
          heroesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder getHeroesBuilder(
          int index) {
        return getHeroesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getHeroesOrBuilder(
          int index) {
        if (heroesBuilder_ == null) {
          return heroes_.get(index);  } else {
          return heroesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
           getHeroesOrBuilderList() {
        if (heroesBuilder_ != null) {
          return heroesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(heroes_);
        }
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder addHeroesBuilder() {
        return getHeroesFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance());
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder addHeroesBuilder(
          int index) {
        return getHeroesFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance());
      }
      /**
       * <pre>
       *英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder> 
           getHeroesBuilderList() {
        return getHeroesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
          getHeroesFieldBuilder() {
        if (heroesBuilder_ == null) {
          heroesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder>(
                  heroes_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          heroes_ = null;
        }
        return heroesBuilder_;
      }

      private java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> unactiveHeroes_ =
        java.util.Collections.emptyList();
      private void ensureUnactiveHeroesIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          unactiveHeroes_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.hero.Hero.PbHero>(unactiveHeroes_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> unactiveHeroesBuilder_;

      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> getUnactiveHeroesList() {
        if (unactiveHeroesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(unactiveHeroes_);
        } else {
          return unactiveHeroesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public int getUnactiveHeroesCount() {
        if (unactiveHeroesBuilder_ == null) {
          return unactiveHeroes_.size();
        } else {
          return unactiveHeroesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero getUnactiveHeroes(int index) {
        if (unactiveHeroesBuilder_ == null) {
          return unactiveHeroes_.get(index);
        } else {
          return unactiveHeroesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public Builder setUnactiveHeroes(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (unactiveHeroesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUnactiveHeroesIsMutable();
          unactiveHeroes_.set(index, value);
          onChanged();
        } else {
          unactiveHeroesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public Builder setUnactiveHeroes(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder builderForValue) {
        if (unactiveHeroesBuilder_ == null) {
          ensureUnactiveHeroesIsMutable();
          unactiveHeroes_.set(index, builderForValue.build());
          onChanged();
        } else {
          unactiveHeroesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public Builder addUnactiveHeroes(pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (unactiveHeroesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUnactiveHeroesIsMutable();
          unactiveHeroes_.add(value);
          onChanged();
        } else {
          unactiveHeroesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public Builder addUnactiveHeroes(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (unactiveHeroesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUnactiveHeroesIsMutable();
          unactiveHeroes_.add(index, value);
          onChanged();
        } else {
          unactiveHeroesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public Builder addUnactiveHeroes(
          pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder builderForValue) {
        if (unactiveHeroesBuilder_ == null) {
          ensureUnactiveHeroesIsMutable();
          unactiveHeroes_.add(builderForValue.build());
          onChanged();
        } else {
          unactiveHeroesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public Builder addUnactiveHeroes(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder builderForValue) {
        if (unactiveHeroesBuilder_ == null) {
          ensureUnactiveHeroesIsMutable();
          unactiveHeroes_.add(index, builderForValue.build());
          onChanged();
        } else {
          unactiveHeroesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public Builder addAllUnactiveHeroes(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHero> values) {
        if (unactiveHeroesBuilder_ == null) {
          ensureUnactiveHeroesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, unactiveHeroes_);
          onChanged();
        } else {
          unactiveHeroesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public Builder clearUnactiveHeroes() {
        if (unactiveHeroesBuilder_ == null) {
          unactiveHeroes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          unactiveHeroesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public Builder removeUnactiveHeroes(int index) {
        if (unactiveHeroesBuilder_ == null) {
          ensureUnactiveHeroesIsMutable();
          unactiveHeroes_.remove(index);
          onChanged();
        } else {
          unactiveHeroesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder getUnactiveHeroesBuilder(
          int index) {
        return getUnactiveHeroesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getUnactiveHeroesOrBuilder(
          int index) {
        if (unactiveHeroesBuilder_ == null) {
          return unactiveHeroes_.get(index);  } else {
          return unactiveHeroesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
           getUnactiveHeroesOrBuilderList() {
        if (unactiveHeroesBuilder_ != null) {
          return unactiveHeroesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(unactiveHeroes_);
        }
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder addUnactiveHeroesBuilder() {
        return getUnactiveHeroesFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance());
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder addUnactiveHeroesBuilder(
          int index) {
        return getUnactiveHeroesFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance());
      }
      /**
       * <pre>
       *未激活的英雄列表
       * </pre>
       *
       * <code>repeated .pb.PbHero unactive_heroes = 2;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder> 
           getUnactiveHeroesBuilderList() {
        return getUnactiveHeroesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
          getUnactiveHeroesFieldBuilder() {
        if (unactiveHeroesBuilder_ == null) {
          unactiveHeroesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder>(
                  unactiveHeroes_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          unactiveHeroes_ = null;
        }
        return unactiveHeroesBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:pb.HeroListResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.HeroListResponse)
    private static final pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse();
    }

    public static pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<HeroListResponse>
        PARSER = new com.google.protobuf.AbstractParser<HeroListResponse>() {
      @java.lang.Override
      public HeroListResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HeroListResponse(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.hero.Hero.HeroListResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HeroLevelUpRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.HeroLevelUpRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *英雄类型
     * </pre>
     *
     * <code>int32 identity = 1;</code>
     * @return The identity.
     */
    int getIdentity();
  }
  /**
   * <pre>
   *英雄升级
   * </pre>
   *
   * Protobuf type {@code pb.HeroLevelUpRequest}
   */
  public  static final class HeroLevelUpRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.HeroLevelUpRequest)
      HeroLevelUpRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HeroLevelUpRequest.newBuilder() to construct.
    private HeroLevelUpRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HeroLevelUpRequest() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HeroLevelUpRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              identity_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroLevelUpRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroLevelUpRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest.class, pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.HeroLevelUpRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 700002;</code>
       */
      ID(700002),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 700002;</code>
       */
      public static final int ID_VALUE = 700002;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 700002: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.HeroLevelUpRequest.Proto)
    }

    public static final int IDENTITY_FIELD_NUMBER = 1;
    private int identity_;
    /**
     * <pre>
     *英雄类型
     * </pre>
     *
     * <code>int32 identity = 1;</code>
     * @return The identity.
     */
    public int getIdentity() {
      return identity_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (identity_ != 0) {
        output.writeInt32(1, identity_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (identity_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, identity_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest other = (pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest) obj;

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

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

    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *英雄升级
     * </pre>
     *
     * Protobuf type {@code pb.HeroLevelUpRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.HeroLevelUpRequest)
        pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroLevelUpRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroLevelUpRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest.class, pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        identity_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroLevelUpRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest build() {
        pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest buildPartial() {
        pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest result = new pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest(this);
        result.identity_ = identity_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest other) {
        if (other == pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest.getDefaultInstance()) return this;
        if (other.getIdentity() != 0) {
          setIdentity(other.getIdentity());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int identity_ ;
      /**
       * <pre>
       *英雄类型
       * </pre>
       *
       * <code>int32 identity = 1;</code>
       * @return The identity.
       */
      public int getIdentity() {
        return identity_;
      }
      /**
       * <pre>
       *英雄类型
       * </pre>
       *
       * <code>int32 identity = 1;</code>
       * @param value The identity to set.
       * @return This builder for chaining.
       */
      public Builder setIdentity(int value) {
        
        identity_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *英雄类型
       * </pre>
       *
       * <code>int32 identity = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearIdentity() {
        
        identity_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:pb.HeroLevelUpRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.HeroLevelUpRequest)
    private static final pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest();
    }

    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<HeroLevelUpRequest>
        PARSER = new com.google.protobuf.AbstractParser<HeroLevelUpRequest>() {
      @java.lang.Override
      public HeroLevelUpRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HeroLevelUpRequest(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HeroLevelUpResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.HeroLevelUpResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *英雄数据
     * </pre>
     *
     * <code>.pb.PbHero hero = 1;</code>
     * @return Whether the hero field is set.
     */
    boolean hasHero();
    /**
     * <pre>
     *英雄数据
     * </pre>
     *
     * <code>.pb.PbHero hero = 1;</code>
     * @return The hero.
     */
    pb.xiugou.x1.protobuf.hero.Hero.PbHero getHero();
    /**
     * <pre>
     *英雄数据
     * </pre>
     *
     * <code>.pb.PbHero hero = 1;</code>
     */
    pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getHeroOrBuilder();
  }
  /**
   * Protobuf type {@code pb.HeroLevelUpResponse}
   */
  public  static final class HeroLevelUpResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.HeroLevelUpResponse)
      HeroLevelUpResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HeroLevelUpResponse.newBuilder() to construct.
    private HeroLevelUpResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HeroLevelUpResponse() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HeroLevelUpResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder subBuilder = null;
              if (hero_ != null) {
                subBuilder = hero_.toBuilder();
              }
              hero_ = input.readMessage(pb.xiugou.x1.protobuf.hero.Hero.PbHero.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(hero_);
                hero_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroLevelUpResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroLevelUpResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse.class, pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.HeroLevelUpResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 700002;</code>
       */
      ID(700002),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 700002;</code>
       */
      public static final int ID_VALUE = 700002;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 700002: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.HeroLevelUpResponse.Proto)
    }

    public static final int HERO_FIELD_NUMBER = 1;
    private pb.xiugou.x1.protobuf.hero.Hero.PbHero hero_;
    /**
     * <pre>
     *英雄数据
     * </pre>
     *
     * <code>.pb.PbHero hero = 1;</code>
     * @return Whether the hero field is set.
     */
    public boolean hasHero() {
      return hero_ != null;
    }
    /**
     * <pre>
     *英雄数据
     * </pre>
     *
     * <code>.pb.PbHero hero = 1;</code>
     * @return The hero.
     */
    public pb.xiugou.x1.protobuf.hero.Hero.PbHero getHero() {
      return hero_ == null ? pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance() : hero_;
    }
    /**
     * <pre>
     *英雄数据
     * </pre>
     *
     * <code>.pb.PbHero hero = 1;</code>
     */
    public pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getHeroOrBuilder() {
      return getHero();
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (hero_ != null) {
        output.writeMessage(1, getHero());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (hero_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHero());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse other = (pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse) obj;

      if (hasHero() != other.hasHero()) return false;
      if (hasHero()) {
        if (!getHero()
            .equals(other.getHero())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

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

    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.HeroLevelUpResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.HeroLevelUpResponse)
        pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroLevelUpResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroLevelUpResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse.class, pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (heroBuilder_ == null) {
          hero_ = null;
        } else {
          hero_ = null;
          heroBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroLevelUpResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse build() {
        pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse buildPartial() {
        pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse result = new pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse(this);
        if (heroBuilder_ == null) {
          result.hero_ = hero_;
        } else {
          result.hero_ = heroBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse other) {
        if (other == pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse.getDefaultInstance()) return this;
        if (other.hasHero()) {
          mergeHero(other.getHero());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private pb.xiugou.x1.protobuf.hero.Hero.PbHero hero_;
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> heroBuilder_;
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       * @return Whether the hero field is set.
       */
      public boolean hasHero() {
        return heroBuilder_ != null || hero_ != null;
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       * @return The hero.
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero getHero() {
        if (heroBuilder_ == null) {
          return hero_ == null ? pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance() : hero_;
        } else {
          return heroBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       */
      public Builder setHero(pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (heroBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          hero_ = value;
          onChanged();
        } else {
          heroBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       */
      public Builder setHero(
          pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder builderForValue) {
        if (heroBuilder_ == null) {
          hero_ = builderForValue.build();
          onChanged();
        } else {
          heroBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       */
      public Builder mergeHero(pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (heroBuilder_ == null) {
          if (hero_ != null) {
            hero_ =
              pb.xiugou.x1.protobuf.hero.Hero.PbHero.newBuilder(hero_).mergeFrom(value).buildPartial();
          } else {
            hero_ = value;
          }
          onChanged();
        } else {
          heroBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       */
      public Builder clearHero() {
        if (heroBuilder_ == null) {
          hero_ = null;
          onChanged();
        } else {
          hero_ = null;
          heroBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder getHeroBuilder() {
        
        onChanged();
        return getHeroFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getHeroOrBuilder() {
        if (heroBuilder_ != null) {
          return heroBuilder_.getMessageOrBuilder();
        } else {
          return hero_ == null ?
              pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance() : hero_;
        }
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
          getHeroFieldBuilder() {
        if (heroBuilder_ == null) {
          heroBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder>(
                  getHero(),
                  getParentForChildren(),
                  isClean());
          hero_ = null;
        }
        return heroBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:pb.HeroLevelUpResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.HeroLevelUpResponse)
    private static final pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse();
    }

    public static pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<HeroLevelUpResponse>
        PARSER = new com.google.protobuf.AbstractParser<HeroLevelUpResponse>() {
      @java.lang.Override
      public HeroLevelUpResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HeroLevelUpResponse(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.hero.Hero.HeroLevelUpResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HeroFightingChangeMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.HeroFightingChangeMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *属性发生变化的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> 
        getHeroesList();
    /**
     * <pre>
     *属性发生变化的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    pb.xiugou.x1.protobuf.hero.Hero.PbHero getHeroes(int index);
    /**
     * <pre>
     *属性发生变化的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    int getHeroesCount();
    /**
     * <pre>
     *属性发生变化的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
        getHeroesOrBuilderList();
    /**
     * <pre>
     *属性发生变化的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getHeroesOrBuilder(
        int index);
  }
  /**
   * <pre>
   *英雄战力属性发生变化的推送
   * </pre>
   *
   * Protobuf type {@code pb.HeroFightingChangeMessage}
   */
  public  static final class HeroFightingChangeMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.HeroFightingChangeMessage)
      HeroFightingChangeMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HeroFightingChangeMessage.newBuilder() to construct.
    private HeroFightingChangeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HeroFightingChangeMessage() {
      heroes_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HeroFightingChangeMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                heroes_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.hero.Hero.PbHero>();
                mutable_bitField0_ |= 0x00000001;
              }
              heroes_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.hero.Hero.PbHero.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          heroes_ = java.util.Collections.unmodifiableList(heroes_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroFightingChangeMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroFightingChangeMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage.class, pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.HeroFightingChangeMessage.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 700003;</code>
       */
      ID(700003),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 700003;</code>
       */
      public static final int ID_VALUE = 700003;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 700003: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.HeroFightingChangeMessage.Proto)
    }

    public static final int HEROES_FIELD_NUMBER = 1;
    private java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> heroes_;
    /**
     * <pre>
     *属性发生变化的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> getHeroesList() {
      return heroes_;
    }
    /**
     * <pre>
     *属性发生变化的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
        getHeroesOrBuilderList() {
      return heroes_;
    }
    /**
     * <pre>
     *属性发生变化的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    public int getHeroesCount() {
      return heroes_.size();
    }
    /**
     * <pre>
     *属性发生变化的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    public pb.xiugou.x1.protobuf.hero.Hero.PbHero getHeroes(int index) {
      return heroes_.get(index);
    }
    /**
     * <pre>
     *属性发生变化的英雄
     * </pre>
     *
     * <code>repeated .pb.PbHero heroes = 1;</code>
     */
    public pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getHeroesOrBuilder(
        int index) {
      return heroes_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < heroes_.size(); i++) {
        output.writeMessage(1, heroes_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < heroes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, heroes_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage other = (pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage) obj;

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

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

    public static pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *英雄战力属性发生变化的推送
     * </pre>
     *
     * Protobuf type {@code pb.HeroFightingChangeMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.HeroFightingChangeMessage)
        pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroFightingChangeMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroFightingChangeMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage.class, pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeroesFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (heroesBuilder_ == null) {
          heroes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          heroesBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroFightingChangeMessage_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage build() {
        pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage buildPartial() {
        pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage result = new pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage(this);
        int from_bitField0_ = bitField0_;
        if (heroesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            heroes_ = java.util.Collections.unmodifiableList(heroes_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.heroes_ = heroes_;
        } else {
          result.heroes_ = heroesBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage) {
          return mergeFrom((pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage other) {
        if (other == pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage.getDefaultInstance()) return this;
        if (heroesBuilder_ == null) {
          if (!other.heroes_.isEmpty()) {
            if (heroes_.isEmpty()) {
              heroes_ = other.heroes_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureHeroesIsMutable();
              heroes_.addAll(other.heroes_);
            }
            onChanged();
          }
        } else {
          if (!other.heroes_.isEmpty()) {
            if (heroesBuilder_.isEmpty()) {
              heroesBuilder_.dispose();
              heroesBuilder_ = null;
              heroes_ = other.heroes_;
              bitField0_ = (bitField0_ & ~0x00000001);
              heroesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getHeroesFieldBuilder() : null;
            } else {
              heroesBuilder_.addAllMessages(other.heroes_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> heroes_ =
        java.util.Collections.emptyList();
      private void ensureHeroesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          heroes_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.hero.Hero.PbHero>(heroes_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> heroesBuilder_;

      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero> getHeroesList() {
        if (heroesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(heroes_);
        } else {
          return heroesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public int getHeroesCount() {
        if (heroesBuilder_ == null) {
          return heroes_.size();
        } else {
          return heroesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero getHeroes(int index) {
        if (heroesBuilder_ == null) {
          return heroes_.get(index);
        } else {
          return heroesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder setHeroes(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (heroesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroesIsMutable();
          heroes_.set(index, value);
          onChanged();
        } else {
          heroesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder setHeroes(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder builderForValue) {
        if (heroesBuilder_ == null) {
          ensureHeroesIsMutable();
          heroes_.set(index, builderForValue.build());
          onChanged();
        } else {
          heroesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder addHeroes(pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (heroesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroesIsMutable();
          heroes_.add(value);
          onChanged();
        } else {
          heroesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder addHeroes(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (heroesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroesIsMutable();
          heroes_.add(index, value);
          onChanged();
        } else {
          heroesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder addHeroes(
          pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder builderForValue) {
        if (heroesBuilder_ == null) {
          ensureHeroesIsMutable();
          heroes_.add(builderForValue.build());
          onChanged();
        } else {
          heroesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder addHeroes(
          int index, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder builderForValue) {
        if (heroesBuilder_ == null) {
          ensureHeroesIsMutable();
          heroes_.add(index, builderForValue.build());
          onChanged();
        } else {
          heroesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder addAllHeroes(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHero> values) {
        if (heroesBuilder_ == null) {
          ensureHeroesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, heroes_);
          onChanged();
        } else {
          heroesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder clearHeroes() {
        if (heroesBuilder_ == null) {
          heroes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          heroesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public Builder removeHeroes(int index) {
        if (heroesBuilder_ == null) {
          ensureHeroesIsMutable();
          heroes_.remove(index);
          onChanged();
        } else {
          heroesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder getHeroesBuilder(
          int index) {
        return getHeroesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getHeroesOrBuilder(
          int index) {
        if (heroesBuilder_ == null) {
          return heroes_.get(index);  } else {
          return heroesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
           getHeroesOrBuilderList() {
        if (heroesBuilder_ != null) {
          return heroesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(heroes_);
        }
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder addHeroesBuilder() {
        return getHeroesFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance());
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder addHeroesBuilder(
          int index) {
        return getHeroesFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance());
      }
      /**
       * <pre>
       *属性发生变化的英雄
       * </pre>
       *
       * <code>repeated .pb.PbHero heroes = 1;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder> 
           getHeroesBuilderList() {
        return getHeroesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
          getHeroesFieldBuilder() {
        if (heroesBuilder_ == null) {
          heroesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder>(
                  heroes_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          heroes_ = null;
        }
        return heroesBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:pb.HeroFightingChangeMessage)
    }

    // @@protoc_insertion_point(class_scope:pb.HeroFightingChangeMessage)
    private static final pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage();
    }

    public static pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<HeroFightingChangeMessage>
        PARSER = new com.google.protobuf.AbstractParser<HeroFightingChangeMessage>() {
      @java.lang.Override
      public HeroFightingChangeMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HeroFightingChangeMessage(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.hero.Hero.HeroFightingChangeMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HeroAwakenRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.HeroAwakenRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *英雄标识
     * </pre>
     *
     * <code>int32 identity = 1;</code>
     * @return The identity.
     */
    int getIdentity();

    /**
     * <pre>
     *选用的素材英雄碎片
     * </pre>
     *
     * <code>repeated .pb.PbItem items = 2;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem> 
        getItemsList();
    /**
     * <pre>
     *选用的素材英雄碎片
     * </pre>
     *
     * <code>repeated .pb.PbItem items = 2;</code>
     */
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem getItems(int index);
    /**
     * <pre>
     *选用的素材英雄碎片
     * </pre>
     *
     * <code>repeated .pb.PbItem items = 2;</code>
     */
    int getItemsCount();
    /**
     * <pre>
     *选用的素材英雄碎片
     * </pre>
     *
     * <code>repeated .pb.PbItem items = 2;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItemOrBuilder> 
        getItemsOrBuilderList();
    /**
     * <pre>
     *选用的素材英雄碎片
     * </pre>
     *
     * <code>repeated .pb.PbItem items = 2;</code>
     */
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItemOrBuilder getItemsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code pb.HeroAwakenRequest}
   */
  public  static final class HeroAwakenRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.HeroAwakenRequest)
      HeroAwakenRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HeroAwakenRequest.newBuilder() to construct.
    private HeroAwakenRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HeroAwakenRequest() {
      items_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HeroAwakenRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              identity_ = input.readInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                items_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem>();
                mutable_bitField0_ |= 0x00000001;
              }
              items_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroAwakenRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroAwakenRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest.class, pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.HeroAwakenRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 700004;</code>
       */
      ID(700004),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 700004;</code>
       */
      public static final int ID_VALUE = 700004;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 700004: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.HeroAwakenRequest.Proto)
    }

    public static final int IDENTITY_FIELD_NUMBER = 1;
    private int identity_;
    /**
     * <pre>
     *英雄标识
     * </pre>
     *
     * <code>int32 identity = 1;</code>
     * @return The identity.
     */
    public int getIdentity() {
      return identity_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem> items_;
    /**
     * <pre>
     *选用的素材英雄碎片
     * </pre>
     *
     * <code>repeated .pb.PbItem items = 2;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem> getItemsList() {
      return items_;
    }
    /**
     * <pre>
     *选用的素材英雄碎片
     * </pre>
     *
     * <code>repeated .pb.PbItem items = 2;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItemOrBuilder> 
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     * <pre>
     *选用的素材英雄碎片
     * </pre>
     *
     * <code>repeated .pb.PbItem items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     * <pre>
     *选用的素材英雄碎片
     * </pre>
     *
     * <code>repeated .pb.PbItem items = 2;</code>
     */
    public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem getItems(int index) {
      return items_.get(index);
    }
    /**
     * <pre>
     *选用的素材英雄碎片
     * </pre>
     *
     * <code>repeated .pb.PbItem items = 2;</code>
     */
    public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItemOrBuilder getItemsOrBuilder(
        int index) {
      return items_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (identity_ != 0) {
        output.writeInt32(1, identity_);
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (identity_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, identity_);
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest other = (pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest) obj;

      if (getIdentity()
          != other.getIdentity()) return false;
      if (!getItemsList()
          .equals(other.getItemsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + IDENTITY_FIELD_NUMBER;
      hash = (53 * hash) + getIdentity();
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.HeroAwakenRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.HeroAwakenRequest)
        pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroAwakenRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroAwakenRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest.class, pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getItemsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        identity_ = 0;

        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroAwakenRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest build() {
        pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest buildPartial() {
        pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest result = new pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest(this);
        int from_bitField0_ = bitField0_;
        result.identity_ = identity_;
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest other) {
        if (other == pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest.getDefaultInstance()) return this;
        if (other.getIdentity() != 0) {
          setIdentity(other.getIdentity());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000001);
              itemsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getItemsFieldBuilder() : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int identity_ ;
      /**
       * <pre>
       *英雄标识
       * </pre>
       *
       * <code>int32 identity = 1;</code>
       * @return The identity.
       */
      public int getIdentity() {
        return identity_;
      }
      /**
       * <pre>
       *英雄标识
       * </pre>
       *
       * <code>int32 identity = 1;</code>
       * @param value The identity to set.
       * @return This builder for chaining.
       */
      public Builder setIdentity(int value) {
        
        identity_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *英雄标识
       * </pre>
       *
       * <code>int32 identity = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearIdentity() {
        
        identity_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem> items_ =
        java.util.Collections.emptyList();
      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          items_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem>(items_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItemOrBuilder> itemsBuilder_;

      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public Builder setItems(
          int index, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public Builder setItems(
          int index, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public Builder addItems(pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public Builder addItems(
          int index, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public Builder addItems(
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public Builder addItems(
          int index, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem.Builder getItemsBuilder(
          int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItemOrBuilder getItemsOrBuilder(
          int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);  } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItemOrBuilder> 
           getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem.Builder addItemsBuilder() {
        return getItemsFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem.getDefaultInstance());
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem.Builder addItemsBuilder(
          int index) {
        return getItemsFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem.getDefaultInstance());
      }
      /**
       * <pre>
       *选用的素材英雄碎片
       * </pre>
       *
       * <code>repeated .pb.PbItem items = 2;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem.Builder> 
           getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItemOrBuilder> 
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItem.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbItemOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:pb.HeroAwakenRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.HeroAwakenRequest)
    private static final pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest();
    }

    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<HeroAwakenRequest>
        PARSER = new com.google.protobuf.AbstractParser<HeroAwakenRequest>() {
      @java.lang.Override
      public HeroAwakenRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HeroAwakenRequest(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HeroAwakenResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.HeroAwakenResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *英雄数据
     * </pre>
     *
     * <code>.pb.PbHero hero = 1;</code>
     * @return Whether the hero field is set.
     */
    boolean hasHero();
    /**
     * <pre>
     *英雄数据
     * </pre>
     *
     * <code>.pb.PbHero hero = 1;</code>
     * @return The hero.
     */
    pb.xiugou.x1.protobuf.hero.Hero.PbHero getHero();
    /**
     * <pre>
     *英雄数据
     * </pre>
     *
     * <code>.pb.PbHero hero = 1;</code>
     */
    pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getHeroOrBuilder();
  }
  /**
   * Protobuf type {@code pb.HeroAwakenResponse}
   */
  public  static final class HeroAwakenResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.HeroAwakenResponse)
      HeroAwakenResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HeroAwakenResponse.newBuilder() to construct.
    private HeroAwakenResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HeroAwakenResponse() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HeroAwakenResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder subBuilder = null;
              if (hero_ != null) {
                subBuilder = hero_.toBuilder();
              }
              hero_ = input.readMessage(pb.xiugou.x1.protobuf.hero.Hero.PbHero.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(hero_);
                hero_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroAwakenResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroAwakenResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse.class, pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.HeroAwakenResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 700004;</code>
       */
      ID(700004),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 700004;</code>
       */
      public static final int ID_VALUE = 700004;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 700004: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.HeroAwakenResponse.Proto)
    }

    public static final int HERO_FIELD_NUMBER = 1;
    private pb.xiugou.x1.protobuf.hero.Hero.PbHero hero_;
    /**
     * <pre>
     *英雄数据
     * </pre>
     *
     * <code>.pb.PbHero hero = 1;</code>
     * @return Whether the hero field is set.
     */
    public boolean hasHero() {
      return hero_ != null;
    }
    /**
     * <pre>
     *英雄数据
     * </pre>
     *
     * <code>.pb.PbHero hero = 1;</code>
     * @return The hero.
     */
    public pb.xiugou.x1.protobuf.hero.Hero.PbHero getHero() {
      return hero_ == null ? pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance() : hero_;
    }
    /**
     * <pre>
     *英雄数据
     * </pre>
     *
     * <code>.pb.PbHero hero = 1;</code>
     */
    public pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getHeroOrBuilder() {
      return getHero();
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (hero_ != null) {
        output.writeMessage(1, getHero());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (hero_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHero());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse other = (pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse) obj;

      if (hasHero() != other.hasHero()) return false;
      if (hasHero()) {
        if (!getHero()
            .equals(other.getHero())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

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

    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.HeroAwakenResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.HeroAwakenResponse)
        pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroAwakenResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroAwakenResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse.class, pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (heroBuilder_ == null) {
          hero_ = null;
        } else {
          hero_ = null;
          heroBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_HeroAwakenResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse build() {
        pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse buildPartial() {
        pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse result = new pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse(this);
        if (heroBuilder_ == null) {
          result.hero_ = hero_;
        } else {
          result.hero_ = heroBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse other) {
        if (other == pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse.getDefaultInstance()) return this;
        if (other.hasHero()) {
          mergeHero(other.getHero());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private pb.xiugou.x1.protobuf.hero.Hero.PbHero hero_;
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> heroBuilder_;
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       * @return Whether the hero field is set.
       */
      public boolean hasHero() {
        return heroBuilder_ != null || hero_ != null;
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       * @return The hero.
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero getHero() {
        if (heroBuilder_ == null) {
          return hero_ == null ? pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance() : hero_;
        } else {
          return heroBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       */
      public Builder setHero(pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (heroBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          hero_ = value;
          onChanged();
        } else {
          heroBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       */
      public Builder setHero(
          pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder builderForValue) {
        if (heroBuilder_ == null) {
          hero_ = builderForValue.build();
          onChanged();
        } else {
          heroBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       */
      public Builder mergeHero(pb.xiugou.x1.protobuf.hero.Hero.PbHero value) {
        if (heroBuilder_ == null) {
          if (hero_ != null) {
            hero_ =
              pb.xiugou.x1.protobuf.hero.Hero.PbHero.newBuilder(hero_).mergeFrom(value).buildPartial();
          } else {
            hero_ = value;
          }
          onChanged();
        } else {
          heroBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       */
      public Builder clearHero() {
        if (heroBuilder_ == null) {
          hero_ = null;
          onChanged();
        } else {
          hero_ = null;
          heroBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder getHeroBuilder() {
        
        onChanged();
        return getHeroFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       */
      public pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder getHeroOrBuilder() {
        if (heroBuilder_ != null) {
          return heroBuilder_.getMessageOrBuilder();
        } else {
          return hero_ == null ?
              pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance() : hero_;
        }
      }
      /**
       * <pre>
       *英雄数据
       * </pre>
       *
       * <code>.pb.PbHero hero = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder> 
          getHeroFieldBuilder() {
        if (heroBuilder_ == null) {
          heroBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              pb.xiugou.x1.protobuf.hero.Hero.PbHero, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder, pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder>(
                  getHero(),
                  getParentForChildren(),
                  isClean());
          hero_ = null;
        }
        return heroBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:pb.HeroAwakenResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.HeroAwakenResponse)
    private static final pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse();
    }

    public static pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<HeroAwakenResponse>
        PARSER = new com.google.protobuf.AbstractParser<HeroAwakenResponse>() {
      @java.lang.Override
      public HeroAwakenResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HeroAwakenResponse(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.hero.Hero.HeroAwakenResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PbHeroOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PbHero)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *英雄类型
     * </pre>
     *
     * <code>int32 identity = 1;</code>
     * @return The identity.
     */
    int getIdentity();

    /**
     * <pre>
     *英雄等级
     * </pre>
     *
     * <code>int32 level = 2;</code>
     * @return The level.
     */
    int getLevel();

    /**
     * <pre>
     *碎片数量
     * </pre>
     *
     * <code>int64 fragment = 3;</code>
     * @return The fragment.
     */
    long getFragment();

    /**
     * <pre>
     *战斗力
     * </pre>
     *
     * <code>int64 fighting = 4;</code>
     * @return The fighting.
     */
    long getFighting();

    /**
     * <pre>
     *面板属性
     * </pre>
     *
     * <code>.pb.PbBattleAttr panel_attr = 5;</code>
     * @return Whether the panelAttr field is set.
     */
    boolean hasPanelAttr();
    /**
     * <pre>
     *面板属性
     * </pre>
     *
     * <code>.pb.PbBattleAttr panel_attr = 5;</code>
     * @return The panelAttr.
     */
    pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr getPanelAttr();
    /**
     * <pre>
     *面板属性
     * </pre>
     *
     * <code>.pb.PbBattleAttr panel_attr = 5;</code>
     */
    pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttrOrBuilder getPanelAttrOrBuilder();

    /**
     * <pre>
     *是否首次得到英雄
     * </pre>
     *
     * <code>bool first_get = 6;</code>
     * @return The firstGet.
     */
    boolean getFirstGet();

    /**
     * <pre>
     *觉醒等级
     * </pre>
     *
     * <code>int32 awaken_level = 7;</code>
     * @return The awakenLevel.
     */
    int getAwakenLevel();
  }
  /**
   * <pre>
   *英雄数据 
   * </pre>
   *
   * Protobuf type {@code pb.PbHero}
   */
  public  static final class PbHero extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PbHero)
      PbHeroOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PbHero.newBuilder() to construct.
    private PbHero(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PbHero() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PbHero(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              identity_ = input.readInt32();
              break;
            }
            case 16: {

              level_ = input.readInt32();
              break;
            }
            case 24: {

              fragment_ = input.readInt64();
              break;
            }
            case 32: {

              fighting_ = input.readInt64();
              break;
            }
            case 42: {
              pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr.Builder subBuilder = null;
              if (panelAttr_ != null) {
                subBuilder = panelAttr_.toBuilder();
              }
              panelAttr_ = input.readMessage(pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(panelAttr_);
                panelAttr_ = subBuilder.buildPartial();
              }

              break;
            }
            case 48: {

              firstGet_ = input.readBool();
              break;
            }
            case 56: {

              awakenLevel_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_PbHero_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_PbHero_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.hero.Hero.PbHero.class, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder.class);
    }

    public static final int IDENTITY_FIELD_NUMBER = 1;
    private int identity_;
    /**
     * <pre>
     *英雄类型
     * </pre>
     *
     * <code>int32 identity = 1;</code>
     * @return The identity.
     */
    public int getIdentity() {
      return identity_;
    }

    public static final int LEVEL_FIELD_NUMBER = 2;
    private int level_;
    /**
     * <pre>
     *英雄等级
     * </pre>
     *
     * <code>int32 level = 2;</code>
     * @return The level.
     */
    public int getLevel() {
      return level_;
    }

    public static final int FRAGMENT_FIELD_NUMBER = 3;
    private long fragment_;
    /**
     * <pre>
     *碎片数量
     * </pre>
     *
     * <code>int64 fragment = 3;</code>
     * @return The fragment.
     */
    public long getFragment() {
      return fragment_;
    }

    public static final int FIGHTING_FIELD_NUMBER = 4;
    private long fighting_;
    /**
     * <pre>
     *战斗力
     * </pre>
     *
     * <code>int64 fighting = 4;</code>
     * @return The fighting.
     */
    public long getFighting() {
      return fighting_;
    }

    public static final int PANEL_ATTR_FIELD_NUMBER = 5;
    private pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr panelAttr_;
    /**
     * <pre>
     *面板属性
     * </pre>
     *
     * <code>.pb.PbBattleAttr panel_attr = 5;</code>
     * @return Whether the panelAttr field is set.
     */
    public boolean hasPanelAttr() {
      return panelAttr_ != null;
    }
    /**
     * <pre>
     *面板属性
     * </pre>
     *
     * <code>.pb.PbBattleAttr panel_attr = 5;</code>
     * @return The panelAttr.
     */
    public pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr getPanelAttr() {
      return panelAttr_ == null ? pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr.getDefaultInstance() : panelAttr_;
    }
    /**
     * <pre>
     *面板属性
     * </pre>
     *
     * <code>.pb.PbBattleAttr panel_attr = 5;</code>
     */
    public pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttrOrBuilder getPanelAttrOrBuilder() {
      return getPanelAttr();
    }

    public static final int FIRST_GET_FIELD_NUMBER = 6;
    private boolean firstGet_;
    /**
     * <pre>
     *是否首次得到英雄
     * </pre>
     *
     * <code>bool first_get = 6;</code>
     * @return The firstGet.
     */
    public boolean getFirstGet() {
      return firstGet_;
    }

    public static final int AWAKEN_LEVEL_FIELD_NUMBER = 7;
    private int awakenLevel_;
    /**
     * <pre>
     *觉醒等级
     * </pre>
     *
     * <code>int32 awaken_level = 7;</code>
     * @return The awakenLevel.
     */
    public int getAwakenLevel() {
      return awakenLevel_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (identity_ != 0) {
        output.writeInt32(1, identity_);
      }
      if (level_ != 0) {
        output.writeInt32(2, level_);
      }
      if (fragment_ != 0L) {
        output.writeInt64(3, fragment_);
      }
      if (fighting_ != 0L) {
        output.writeInt64(4, fighting_);
      }
      if (panelAttr_ != null) {
        output.writeMessage(5, getPanelAttr());
      }
      if (firstGet_ != false) {
        output.writeBool(6, firstGet_);
      }
      if (awakenLevel_ != 0) {
        output.writeInt32(7, awakenLevel_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (identity_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, identity_);
      }
      if (level_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, level_);
      }
      if (fragment_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, fragment_);
      }
      if (fighting_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, fighting_);
      }
      if (panelAttr_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getPanelAttr());
      }
      if (firstGet_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, firstGet_);
      }
      if (awakenLevel_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, awakenLevel_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.hero.Hero.PbHero)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.hero.Hero.PbHero other = (pb.xiugou.x1.protobuf.hero.Hero.PbHero) obj;

      if (getIdentity()
          != other.getIdentity()) return false;
      if (getLevel()
          != other.getLevel()) return false;
      if (getFragment()
          != other.getFragment()) return false;
      if (getFighting()
          != other.getFighting()) return false;
      if (hasPanelAttr() != other.hasPanelAttr()) return false;
      if (hasPanelAttr()) {
        if (!getPanelAttr()
            .equals(other.getPanelAttr())) return false;
      }
      if (getFirstGet()
          != other.getFirstGet()) return false;
      if (getAwakenLevel()
          != other.getAwakenLevel()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + IDENTITY_FIELD_NUMBER;
      hash = (53 * hash) + getIdentity();
      hash = (37 * hash) + LEVEL_FIELD_NUMBER;
      hash = (53 * hash) + getLevel();
      hash = (37 * hash) + FRAGMENT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getFragment());
      hash = (37 * hash) + FIGHTING_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getFighting());
      if (hasPanelAttr()) {
        hash = (37 * hash) + PANEL_ATTR_FIELD_NUMBER;
        hash = (53 * hash) + getPanelAttr().hashCode();
      }
      hash = (37 * hash) + FIRST_GET_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getFirstGet());
      hash = (37 * hash) + AWAKEN_LEVEL_FIELD_NUMBER;
      hash = (53 * hash) + getAwakenLevel();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.hero.Hero.PbHero parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.PbHero parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.PbHero parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.PbHero parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.PbHero parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.PbHero parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.PbHero parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.PbHero parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.PbHero parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.PbHero parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.PbHero parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.hero.Hero.PbHero parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.hero.Hero.PbHero prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *英雄数据 
     * </pre>
     *
     * Protobuf type {@code pb.PbHero}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PbHero)
        pb.xiugou.x1.protobuf.hero.Hero.PbHeroOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_PbHero_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_PbHero_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.hero.Hero.PbHero.class, pb.xiugou.x1.protobuf.hero.Hero.PbHero.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.hero.Hero.PbHero.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        identity_ = 0;

        level_ = 0;

        fragment_ = 0L;

        fighting_ = 0L;

        if (panelAttrBuilder_ == null) {
          panelAttr_ = null;
        } else {
          panelAttr_ = null;
          panelAttrBuilder_ = null;
        }
        firstGet_ = false;

        awakenLevel_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.hero.Hero.internal_static_pb_PbHero_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero build() {
        pb.xiugou.x1.protobuf.hero.Hero.PbHero result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.hero.Hero.PbHero buildPartial() {
        pb.xiugou.x1.protobuf.hero.Hero.PbHero result = new pb.xiugou.x1.protobuf.hero.Hero.PbHero(this);
        result.identity_ = identity_;
        result.level_ = level_;
        result.fragment_ = fragment_;
        result.fighting_ = fighting_;
        if (panelAttrBuilder_ == null) {
          result.panelAttr_ = panelAttr_;
        } else {
          result.panelAttr_ = panelAttrBuilder_.build();
        }
        result.firstGet_ = firstGet_;
        result.awakenLevel_ = awakenLevel_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.hero.Hero.PbHero) {
          return mergeFrom((pb.xiugou.x1.protobuf.hero.Hero.PbHero)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.hero.Hero.PbHero other) {
        if (other == pb.xiugou.x1.protobuf.hero.Hero.PbHero.getDefaultInstance()) return this;
        if (other.getIdentity() != 0) {
          setIdentity(other.getIdentity());
        }
        if (other.getLevel() != 0) {
          setLevel(other.getLevel());
        }
        if (other.getFragment() != 0L) {
          setFragment(other.getFragment());
        }
        if (other.getFighting() != 0L) {
          setFighting(other.getFighting());
        }
        if (other.hasPanelAttr()) {
          mergePanelAttr(other.getPanelAttr());
        }
        if (other.getFirstGet() != false) {
          setFirstGet(other.getFirstGet());
        }
        if (other.getAwakenLevel() != 0) {
          setAwakenLevel(other.getAwakenLevel());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.hero.Hero.PbHero parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.hero.Hero.PbHero) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int identity_ ;
      /**
       * <pre>
       *英雄类型
       * </pre>
       *
       * <code>int32 identity = 1;</code>
       * @return The identity.
       */
      public int getIdentity() {
        return identity_;
      }
      /**
       * <pre>
       *英雄类型
       * </pre>
       *
       * <code>int32 identity = 1;</code>
       * @param value The identity to set.
       * @return This builder for chaining.
       */
      public Builder setIdentity(int value) {
        
        identity_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *英雄类型
       * </pre>
       *
       * <code>int32 identity = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearIdentity() {
        
        identity_ = 0;
        onChanged();
        return this;
      }

      private int level_ ;
      /**
       * <pre>
       *英雄等级
       * </pre>
       *
       * <code>int32 level = 2;</code>
       * @return The level.
       */
      public int getLevel() {
        return level_;
      }
      /**
       * <pre>
       *英雄等级
       * </pre>
       *
       * <code>int32 level = 2;</code>
       * @param value The level to set.
       * @return This builder for chaining.
       */
      public Builder setLevel(int value) {
        
        level_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *英雄等级
       * </pre>
       *
       * <code>int32 level = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearLevel() {
        
        level_ = 0;
        onChanged();
        return this;
      }

      private long fragment_ ;
      /**
       * <pre>
       *碎片数量
       * </pre>
       *
       * <code>int64 fragment = 3;</code>
       * @return The fragment.
       */
      public long getFragment() {
        return fragment_;
      }
      /**
       * <pre>
       *碎片数量
       * </pre>
       *
       * <code>int64 fragment = 3;</code>
       * @param value The fragment to set.
       * @return This builder for chaining.
       */
      public Builder setFragment(long value) {
        
        fragment_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *碎片数量
       * </pre>
       *
       * <code>int64 fragment = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearFragment() {
        
        fragment_ = 0L;
        onChanged();
        return this;
      }

      private long fighting_ ;
      /**
       * <pre>
       *战斗力
       * </pre>
       *
       * <code>int64 fighting = 4;</code>
       * @return The fighting.
       */
      public long getFighting() {
        return fighting_;
      }
      /**
       * <pre>
       *战斗力
       * </pre>
       *
       * <code>int64 fighting = 4;</code>
       * @param value The fighting to set.
       * @return This builder for chaining.
       */
      public Builder setFighting(long value) {
        
        fighting_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *战斗力
       * </pre>
       *
       * <code>int64 fighting = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearFighting() {
        
        fighting_ = 0L;
        onChanged();
        return this;
      }

      private pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr panelAttr_;
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr, pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr.Builder, pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttrOrBuilder> panelAttrBuilder_;
      /**
       * <pre>
       *面板属性
       * </pre>
       *
       * <code>.pb.PbBattleAttr panel_attr = 5;</code>
       * @return Whether the panelAttr field is set.
       */
      public boolean hasPanelAttr() {
        return panelAttrBuilder_ != null || panelAttr_ != null;
      }
      /**
       * <pre>
       *面板属性
       * </pre>
       *
       * <code>.pb.PbBattleAttr panel_attr = 5;</code>
       * @return The panelAttr.
       */
      public pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr getPanelAttr() {
        if (panelAttrBuilder_ == null) {
          return panelAttr_ == null ? pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr.getDefaultInstance() : panelAttr_;
        } else {
          return panelAttrBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *面板属性
       * </pre>
       *
       * <code>.pb.PbBattleAttr panel_attr = 5;</code>
       */
      public Builder setPanelAttr(pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr value) {
        if (panelAttrBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          panelAttr_ = value;
          onChanged();
        } else {
          panelAttrBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       *面板属性
       * </pre>
       *
       * <code>.pb.PbBattleAttr panel_attr = 5;</code>
       */
      public Builder setPanelAttr(
          pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr.Builder builderForValue) {
        if (panelAttrBuilder_ == null) {
          panelAttr_ = builderForValue.build();
          onChanged();
        } else {
          panelAttrBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       *面板属性
       * </pre>
       *
       * <code>.pb.PbBattleAttr panel_attr = 5;</code>
       */
      public Builder mergePanelAttr(pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr value) {
        if (panelAttrBuilder_ == null) {
          if (panelAttr_ != null) {
            panelAttr_ =
              pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr.newBuilder(panelAttr_).mergeFrom(value).buildPartial();
          } else {
            panelAttr_ = value;
          }
          onChanged();
        } else {
          panelAttrBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       *面板属性
       * </pre>
       *
       * <code>.pb.PbBattleAttr panel_attr = 5;</code>
       */
      public Builder clearPanelAttr() {
        if (panelAttrBuilder_ == null) {
          panelAttr_ = null;
          onChanged();
        } else {
          panelAttr_ = null;
          panelAttrBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       *面板属性
       * </pre>
       *
       * <code>.pb.PbBattleAttr panel_attr = 5;</code>
       */
      public pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr.Builder getPanelAttrBuilder() {
        
        onChanged();
        return getPanelAttrFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *面板属性
       * </pre>
       *
       * <code>.pb.PbBattleAttr panel_attr = 5;</code>
       */
      public pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttrOrBuilder getPanelAttrOrBuilder() {
        if (panelAttrBuilder_ != null) {
          return panelAttrBuilder_.getMessageOrBuilder();
        } else {
          return panelAttr_ == null ?
              pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr.getDefaultInstance() : panelAttr_;
        }
      }
      /**
       * <pre>
       *面板属性
       * </pre>
       *
       * <code>.pb.PbBattleAttr panel_attr = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr, pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr.Builder, pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttrOrBuilder> 
          getPanelAttrFieldBuilder() {
        if (panelAttrBuilder_ == null) {
          panelAttrBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr, pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttr.Builder, pb.xiugou.x1.protobuf.battleattr.BattleAttr.PbBattleAttrOrBuilder>(
                  getPanelAttr(),
                  getParentForChildren(),
                  isClean());
          panelAttr_ = null;
        }
        return panelAttrBuilder_;
      }

      private boolean firstGet_ ;
      /**
       * <pre>
       *是否首次得到英雄
       * </pre>
       *
       * <code>bool first_get = 6;</code>
       * @return The firstGet.
       */
      public boolean getFirstGet() {
        return firstGet_;
      }
      /**
       * <pre>
       *是否首次得到英雄
       * </pre>
       *
       * <code>bool first_get = 6;</code>
       * @param value The firstGet to set.
       * @return This builder for chaining.
       */
      public Builder setFirstGet(boolean value) {
        
        firstGet_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *是否首次得到英雄
       * </pre>
       *
       * <code>bool first_get = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearFirstGet() {
        
        firstGet_ = false;
        onChanged();
        return this;
      }

      private int awakenLevel_ ;
      /**
       * <pre>
       *觉醒等级
       * </pre>
       *
       * <code>int32 awaken_level = 7;</code>
       * @return The awakenLevel.
       */
      public int getAwakenLevel() {
        return awakenLevel_;
      }
      /**
       * <pre>
       *觉醒等级
       * </pre>
       *
       * <code>int32 awaken_level = 7;</code>
       * @param value The awakenLevel to set.
       * @return This builder for chaining.
       */
      public Builder setAwakenLevel(int value) {
        
        awakenLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *觉醒等级
       * </pre>
       *
       * <code>int32 awaken_level = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearAwakenLevel() {
        
        awakenLevel_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:pb.PbHero)
    }

    // @@protoc_insertion_point(class_scope:pb.PbHero)
    private static final pb.xiugou.x1.protobuf.hero.Hero.PbHero DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.hero.Hero.PbHero();
    }

    public static pb.xiugou.x1.protobuf.hero.Hero.PbHero getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PbHero>
        PARSER = new com.google.protobuf.AbstractParser<PbHero>() {
      @java.lang.Override
      public PbHero parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PbHero(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.hero.Hero.PbHero getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_HeroListResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_HeroListResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_HeroLevelUpRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_HeroLevelUpRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_HeroLevelUpResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_HeroLevelUpResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_HeroFightingChangeMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_HeroFightingChangeMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_HeroAwakenRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_HeroAwakenRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_HeroAwakenResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_HeroAwakenResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PbHero_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PbHero_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\nHero.proto\022\002pb\032\020BattleAttr.proto\032\020Mini" +
      "Struct.proto\"s\n\020HeroListResponse\022\032\n\006hero" +
      "es\030\001 \003(\0132\n.pb.PbHero\022#\n\017unactive_heroes\030" +
      "\002 \003(\0132\n.pb.PbHero\"\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022" +
      "\010\n\002ID\020\341\334*\"F\n\022HeroLevelUpRequest\022\020\n\010ident" +
      "ity\030\001 \001(\005\"\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\342\334" +
      "*\"O\n\023HeroLevelUpResponse\022\030\n\004hero\030\001 \001(\0132\n" +
      ".pb.PbHero\"\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\342" +
      "\334*\"W\n\031HeroFightingChangeMessage\022\032\n\006heroe" +
      "s\030\001 \003(\0132\n.pb.PbHero\"\036\n\005Proto\022\013\n\007UNKNOWN\020" +
      "\000\022\010\n\002ID\020\343\334*\"`\n\021HeroAwakenRequest\022\020\n\010iden" +
      "tity\030\001 \001(\005\022\031\n\005items\030\002 \003(\0132\n.pb.PbItem\"\036\n" +
      "\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\344\334*\"N\n\022HeroAwa" +
      "kenResponse\022\030\n\004hero\030\001 \001(\0132\n.pb.PbHero\"\036\n" +
      "\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\344\334*\"\234\001\n\006PbHero" +
      "\022\020\n\010identity\030\001 \001(\005\022\r\n\005level\030\002 \001(\005\022\020\n\010fra" +
      "gment\030\003 \001(\003\022\020\n\010fighting\030\004 \001(\003\022$\n\npanel_a" +
      "ttr\030\005 \001(\0132\020.pb.PbBattleAttr\022\021\n\tfirst_get" +
      "\030\006 \001(\010\022\024\n\014awaken_level\030\007 \001(\005B4\n\032pb.xiugo" +
      "u.x1.protobuf.hero\252\002\025pb.xiugou.x1.protob" +
      "ufb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          pb.xiugou.x1.protobuf.battleattr.BattleAttr.getDescriptor(),
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.getDescriptor(),
        });
    internal_static_pb_HeroListResponse_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_pb_HeroListResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_HeroListResponse_descriptor,
        new java.lang.String[] { "Heroes", "UnactiveHeroes", });
    internal_static_pb_HeroLevelUpRequest_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_pb_HeroLevelUpRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_HeroLevelUpRequest_descriptor,
        new java.lang.String[] { "Identity", });
    internal_static_pb_HeroLevelUpResponse_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_pb_HeroLevelUpResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_HeroLevelUpResponse_descriptor,
        new java.lang.String[] { "Hero", });
    internal_static_pb_HeroFightingChangeMessage_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_pb_HeroFightingChangeMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_HeroFightingChangeMessage_descriptor,
        new java.lang.String[] { "Heroes", });
    internal_static_pb_HeroAwakenRequest_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_pb_HeroAwakenRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_HeroAwakenRequest_descriptor,
        new java.lang.String[] { "Identity", "Items", });
    internal_static_pb_HeroAwakenResponse_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_pb_HeroAwakenResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_HeroAwakenResponse_descriptor,
        new java.lang.String[] { "Hero", });
    internal_static_pb_PbHero_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_pb_PbHero_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PbHero_descriptor,
        new java.lang.String[] { "Identity", "Level", "Fragment", "Fighting", "PanelAttr", "FirstGet", "AwakenLevel", });
    pb.xiugou.x1.protobuf.battleattr.BattleAttr.getDescriptor();
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
