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

package pb.xiugou.x1.protobuf.treasure;

public final class Treasure {
  private Treasure() {}
  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 TreasureInfoResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.TreasureInfoResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop> 
        getRechargeShopsList();
    /**
     * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
     */
    pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop getRechargeShops(int index);
    /**
     * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
     */
    int getRechargeShopsCount();
    /**
     * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShopOrBuilder> 
        getRechargeShopsOrBuilderList();
    /**
     * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
     */
    pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShopOrBuilder getRechargeShopsOrBuilder(
        int index);

    /**
     * <pre>
     *服务器开服天数
     * </pre>
     *
     * <code>int32 server_open_day = 2;</code>
     * @return The serverOpenDay.
     */
    int getServerOpenDay();
  }
  /**
   * Protobuf type {@code pb.TreasureInfoResponse}
   */
  public  static final class TreasureInfoResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.TreasureInfoResponse)
      TreasureInfoResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TreasureInfoResponse.newBuilder() to construct.
    private TreasureInfoResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TreasureInfoResponse() {
      rechargeShops_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TreasureInfoResponse(
        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)) {
                rechargeShops_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop>();
                mutable_bitField0_ |= 0x00000001;
              }
              rechargeShops_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.parser(), extensionRegistry));
              break;
            }
            case 16: {

              serverOpenDay_ = 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 {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          rechargeShops_ = java.util.Collections.unmodifiableList(rechargeShops_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureInfoResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureInfoResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse.class, pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse.Builder.class);
    }

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

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


      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 3000001: 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.treasure.Treasure.TreasureInfoResponse.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.TreasureInfoResponse.Proto)
    }

    public static final int RECHARGE_SHOPS_FIELD_NUMBER = 1;
    private java.util.List<pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop> rechargeShops_;
    /**
     * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop> getRechargeShopsList() {
      return rechargeShops_;
    }
    /**
     * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShopOrBuilder> 
        getRechargeShopsOrBuilderList() {
      return rechargeShops_;
    }
    /**
     * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
     */
    public int getRechargeShopsCount() {
      return rechargeShops_.size();
    }
    /**
     * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
     */
    public pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop getRechargeShops(int index) {
      return rechargeShops_.get(index);
    }
    /**
     * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
     */
    public pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShopOrBuilder getRechargeShopsOrBuilder(
        int index) {
      return rechargeShops_.get(index);
    }

    public static final int SERVER_OPEN_DAY_FIELD_NUMBER = 2;
    private int serverOpenDay_;
    /**
     * <pre>
     *服务器开服天数
     * </pre>
     *
     * <code>int32 server_open_day = 2;</code>
     * @return The serverOpenDay.
     */
    public int getServerOpenDay() {
      return serverOpenDay_;
    }

    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 < rechargeShops_.size(); i++) {
        output.writeMessage(1, rechargeShops_.get(i));
      }
      if (serverOpenDay_ != 0) {
        output.writeInt32(2, serverOpenDay_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < rechargeShops_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, rechargeShops_.get(i));
      }
      if (serverOpenDay_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, serverOpenDay_);
      }
      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.treasure.Treasure.TreasureInfoResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse other = (pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse) obj;

      if (!getRechargeShopsList()
          .equals(other.getRechargeShopsList())) return false;
      if (getServerOpenDay()
          != other.getServerOpenDay()) 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 (getRechargeShopsCount() > 0) {
        hash = (37 * hash) + RECHARGE_SHOPS_FIELD_NUMBER;
        hash = (53 * hash) + getRechargeShopsList().hashCode();
      }
      hash = (37 * hash) + SERVER_OPEN_DAY_FIELD_NUMBER;
      hash = (53 * hash) + getServerOpenDay();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse 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.treasure.Treasure.TreasureInfoResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse 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.treasure.Treasure.TreasureInfoResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse 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.treasure.Treasure.TreasureInfoResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse 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.treasure.Treasure.TreasureInfoResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse 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.treasure.Treasure.TreasureInfoResponse 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.TreasureInfoResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.TreasureInfoResponse)
        pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureInfoResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureInfoResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse.class, pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureInfoResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse buildPartial() {
        pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse result = new pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse(this);
        int from_bitField0_ = bitField0_;
        if (rechargeShopsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            rechargeShops_ = java.util.Collections.unmodifiableList(rechargeShops_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.rechargeShops_ = rechargeShops_;
        } else {
          result.rechargeShops_ = rechargeShopsBuilder_.build();
        }
        result.serverOpenDay_ = serverOpenDay_;
        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.treasure.Treasure.TreasureInfoResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse other) {
        if (other == pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse.getDefaultInstance()) return this;
        if (rechargeShopsBuilder_ == null) {
          if (!other.rechargeShops_.isEmpty()) {
            if (rechargeShops_.isEmpty()) {
              rechargeShops_ = other.rechargeShops_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureRechargeShopsIsMutable();
              rechargeShops_.addAll(other.rechargeShops_);
            }
            onChanged();
          }
        } else {
          if (!other.rechargeShops_.isEmpty()) {
            if (rechargeShopsBuilder_.isEmpty()) {
              rechargeShopsBuilder_.dispose();
              rechargeShopsBuilder_ = null;
              rechargeShops_ = other.rechargeShops_;
              bitField0_ = (bitField0_ & ~0x00000001);
              rechargeShopsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRechargeShopsFieldBuilder() : null;
            } else {
              rechargeShopsBuilder_.addAllMessages(other.rechargeShops_);
            }
          }
        }
        if (other.getServerOpenDay() != 0) {
          setServerOpenDay(other.getServerOpenDay());
        }
        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.treasure.Treasure.TreasureInfoResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop> rechargeShops_ =
        java.util.Collections.emptyList();
      private void ensureRechargeShopsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          rechargeShops_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop>(rechargeShops_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop, pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.Builder, pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShopOrBuilder> rechargeShopsBuilder_;

      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop> getRechargeShopsList() {
        if (rechargeShopsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rechargeShops_);
        } else {
          return rechargeShopsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public int getRechargeShopsCount() {
        if (rechargeShopsBuilder_ == null) {
          return rechargeShops_.size();
        } else {
          return rechargeShopsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop getRechargeShops(int index) {
        if (rechargeShopsBuilder_ == null) {
          return rechargeShops_.get(index);
        } else {
          return rechargeShopsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public Builder setRechargeShops(
          int index, pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop value) {
        if (rechargeShopsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRechargeShopsIsMutable();
          rechargeShops_.set(index, value);
          onChanged();
        } else {
          rechargeShopsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public Builder setRechargeShops(
          int index, pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.Builder builderForValue) {
        if (rechargeShopsBuilder_ == null) {
          ensureRechargeShopsIsMutable();
          rechargeShops_.set(index, builderForValue.build());
          onChanged();
        } else {
          rechargeShopsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public Builder addRechargeShops(pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop value) {
        if (rechargeShopsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRechargeShopsIsMutable();
          rechargeShops_.add(value);
          onChanged();
        } else {
          rechargeShopsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public Builder addRechargeShops(
          int index, pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop value) {
        if (rechargeShopsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRechargeShopsIsMutable();
          rechargeShops_.add(index, value);
          onChanged();
        } else {
          rechargeShopsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public Builder addRechargeShops(
          pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.Builder builderForValue) {
        if (rechargeShopsBuilder_ == null) {
          ensureRechargeShopsIsMutable();
          rechargeShops_.add(builderForValue.build());
          onChanged();
        } else {
          rechargeShopsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public Builder addRechargeShops(
          int index, pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.Builder builderForValue) {
        if (rechargeShopsBuilder_ == null) {
          ensureRechargeShopsIsMutable();
          rechargeShops_.add(index, builderForValue.build());
          onChanged();
        } else {
          rechargeShopsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public Builder addAllRechargeShops(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop> values) {
        if (rechargeShopsBuilder_ == null) {
          ensureRechargeShopsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rechargeShops_);
          onChanged();
        } else {
          rechargeShopsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public Builder clearRechargeShops() {
        if (rechargeShopsBuilder_ == null) {
          rechargeShops_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          rechargeShopsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public Builder removeRechargeShops(int index) {
        if (rechargeShopsBuilder_ == null) {
          ensureRechargeShopsIsMutable();
          rechargeShops_.remove(index);
          onChanged();
        } else {
          rechargeShopsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.Builder getRechargeShopsBuilder(
          int index) {
        return getRechargeShopsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShopOrBuilder getRechargeShopsOrBuilder(
          int index) {
        if (rechargeShopsBuilder_ == null) {
          return rechargeShops_.get(index);  } else {
          return rechargeShopsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShopOrBuilder> 
           getRechargeShopsOrBuilderList() {
        if (rechargeShopsBuilder_ != null) {
          return rechargeShopsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rechargeShops_);
        }
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.Builder addRechargeShopsBuilder() {
        return getRechargeShopsFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.getDefaultInstance());
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.Builder addRechargeShopsBuilder(
          int index) {
        return getRechargeShopsFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.getDefaultInstance());
      }
      /**
       * <code>repeated .pb.PbRechargeShop recharge_shops = 1;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.Builder> 
           getRechargeShopsBuilderList() {
        return getRechargeShopsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop, pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.Builder, pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShopOrBuilder> 
          getRechargeShopsFieldBuilder() {
        if (rechargeShopsBuilder_ == null) {
          rechargeShopsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop, pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.Builder, pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShopOrBuilder>(
                  rechargeShops_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          rechargeShops_ = null;
        }
        return rechargeShopsBuilder_;
      }

      private int serverOpenDay_ ;
      /**
       * <pre>
       *服务器开服天数
       * </pre>
       *
       * <code>int32 server_open_day = 2;</code>
       * @return The serverOpenDay.
       */
      public int getServerOpenDay() {
        return serverOpenDay_;
      }
      /**
       * <pre>
       *服务器开服天数
       * </pre>
       *
       * <code>int32 server_open_day = 2;</code>
       * @param value The serverOpenDay to set.
       * @return This builder for chaining.
       */
      public Builder setServerOpenDay(int value) {
        
        serverOpenDay_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *服务器开服天数
       * </pre>
       *
       * <code>int32 server_open_day = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerOpenDay() {
        
        serverOpenDay_ = 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.TreasureInfoResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.TreasureInfoResponse)
    private static final pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse();
    }

    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.treasure.Treasure.TreasureInfoResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *商店ID
     * </pre>
     *
     * <code>int32 shop_id = 1;</code>
     * @return The shopId.
     */
    int getShopId();

    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>.pb.PbKeyV product = 2;</code>
     * @return Whether the product field is set.
     */
    boolean hasProduct();
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>.pb.PbKeyV product = 2;</code>
     * @return The product.
     */
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV getProduct();
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>.pb.PbKeyV product = 2;</code>
     */
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder getProductOrBuilder();
  }
  /**
   * <pre>
   *珍宝阁购买成功推送
   * </pre>
   *
   * Protobuf type {@code pb.TreasureBuyMessage}
   */
  public  static final class TreasureBuyMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.TreasureBuyMessage)
      TreasureBuyMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TreasureBuyMessage.newBuilder() to construct.
    private TreasureBuyMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TreasureBuyMessage() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TreasureBuyMessage(
        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: {

              shopId_ = input.readInt32();
              break;
            }
            case 18: {
              pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder subBuilder = null;
              if (product_ != null) {
                subBuilder = product_.toBuilder();
              }
              product_ = input.readMessage(pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(product_);
                product_ = 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.treasure.Treasure.internal_static_pb_TreasureBuyMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureBuyMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage.class, pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage.Builder.class);
    }

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

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


      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 3000002: 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.treasure.Treasure.TreasureBuyMessage.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.TreasureBuyMessage.Proto)
    }

    public static final int SHOP_ID_FIELD_NUMBER = 1;
    private int shopId_;
    /**
     * <pre>
     *商店ID
     * </pre>
     *
     * <code>int32 shop_id = 1;</code>
     * @return The shopId.
     */
    public int getShopId() {
      return shopId_;
    }

    public static final int PRODUCT_FIELD_NUMBER = 2;
    private pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV product_;
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>.pb.PbKeyV product = 2;</code>
     * @return Whether the product field is set.
     */
    public boolean hasProduct() {
      return product_ != null;
    }
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>.pb.PbKeyV product = 2;</code>
     * @return The product.
     */
    public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV getProduct() {
      return product_ == null ? pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.getDefaultInstance() : product_;
    }
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>.pb.PbKeyV product = 2;</code>
     */
    public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder getProductOrBuilder() {
      return getProduct();
    }

    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 (shopId_ != 0) {
        output.writeInt32(1, shopId_);
      }
      if (product_ != null) {
        output.writeMessage(2, getProduct());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (shopId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, shopId_);
      }
      if (product_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getProduct());
      }
      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.treasure.Treasure.TreasureBuyMessage)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage other = (pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage) obj;

      if (getShopId()
          != other.getShopId()) return false;
      if (hasProduct() != other.hasProduct()) return false;
      if (hasProduct()) {
        if (!getProduct()
            .equals(other.getProduct())) 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) + SHOP_ID_FIELD_NUMBER;
      hash = (53 * hash) + getShopId();
      if (hasProduct()) {
        hash = (37 * hash) + PRODUCT_FIELD_NUMBER;
        hash = (53 * hash) + getProduct().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage 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.treasure.Treasure.TreasureBuyMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage 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.treasure.Treasure.TreasureBuyMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage 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.treasure.Treasure.TreasureBuyMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage 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.treasure.Treasure.TreasureBuyMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage 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.treasure.Treasure.TreasureBuyMessage 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.TreasureBuyMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.TreasureBuyMessage)
        pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureBuyMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureBuyMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage.class, pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage.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();
        shopId_ = 0;

        if (productBuilder_ == null) {
          product_ = null;
        } else {
          product_ = null;
          productBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureBuyMessage_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage buildPartial() {
        pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage result = new pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage(this);
        result.shopId_ = shopId_;
        if (productBuilder_ == null) {
          result.product_ = product_;
        } else {
          result.product_ = productBuilder_.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.treasure.Treasure.TreasureBuyMessage) {
          return mergeFrom((pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage other) {
        if (other == pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage.getDefaultInstance()) return this;
        if (other.getShopId() != 0) {
          setShopId(other.getShopId());
        }
        if (other.hasProduct()) {
          mergeProduct(other.getProduct());
        }
        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.treasure.Treasure.TreasureBuyMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int shopId_ ;
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @return The shopId.
       */
      public int getShopId() {
        return shopId_;
      }
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @param value The shopId to set.
       * @return This builder for chaining.
       */
      public Builder setShopId(int value) {
        
        shopId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearShopId() {
        
        shopId_ = 0;
        onChanged();
        return this;
      }

      private pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV product_;
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder> productBuilder_;
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       * @return Whether the product field is set.
       */
      public boolean hasProduct() {
        return productBuilder_ != null || product_ != null;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       * @return The product.
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV getProduct() {
        if (productBuilder_ == null) {
          return product_ == null ? pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.getDefaultInstance() : product_;
        } else {
          return productBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       */
      public Builder setProduct(pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV value) {
        if (productBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          product_ = value;
          onChanged();
        } else {
          productBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       */
      public Builder setProduct(
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder builderForValue) {
        if (productBuilder_ == null) {
          product_ = builderForValue.build();
          onChanged();
        } else {
          productBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       */
      public Builder mergeProduct(pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV value) {
        if (productBuilder_ == null) {
          if (product_ != null) {
            product_ =
              pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.newBuilder(product_).mergeFrom(value).buildPartial();
          } else {
            product_ = value;
          }
          onChanged();
        } else {
          productBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       */
      public Builder clearProduct() {
        if (productBuilder_ == null) {
          product_ = null;
          onChanged();
        } else {
          product_ = null;
          productBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder getProductBuilder() {
        
        onChanged();
        return getProductFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder getProductOrBuilder() {
        if (productBuilder_ != null) {
          return productBuilder_.getMessageOrBuilder();
        } else {
          return product_ == null ?
              pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.getDefaultInstance() : product_;
        }
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder> 
          getProductFieldBuilder() {
        if (productBuilder_ == null) {
          productBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder>(
                  getProduct(),
                  getParentForChildren(),
                  isClean());
          product_ = null;
        }
        return productBuilder_;
      }
      @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.TreasureBuyMessage)
    }

    // @@protoc_insertion_point(class_scope:pb.TreasureBuyMessage)
    private static final pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage();
    }

    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.treasure.Treasure.TreasureBuyMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *商店ID
     * </pre>
     *
     * <code>int32 shop_id = 1;</code>
     * @return The shopId.
     */
    int getShopId();

    /**
     * <pre>
     *免费商品ID
     * </pre>
     *
     * <code>int32 reward_id = 2;</code>
     * @return The rewardId.
     */
    int getRewardId();
  }
  /**
   * <pre>
   *领取免费商品
   * </pre>
   *
   * Protobuf type {@code pb.TreasureTakeRewardRequest}
   */
  public  static final class TreasureTakeRewardRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.TreasureTakeRewardRequest)
      TreasureTakeRewardRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TreasureTakeRewardRequest.newBuilder() to construct.
    private TreasureTakeRewardRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TreasureTakeRewardRequest() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TreasureTakeRewardRequest(
        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: {

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

              rewardId_ = 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.treasure.Treasure.internal_static_pb_TreasureTakeRewardRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureTakeRewardRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest.class, pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest.Builder.class);
    }

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

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


      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 3000003: 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.treasure.Treasure.TreasureTakeRewardRequest.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.TreasureTakeRewardRequest.Proto)
    }

    public static final int SHOP_ID_FIELD_NUMBER = 1;
    private int shopId_;
    /**
     * <pre>
     *商店ID
     * </pre>
     *
     * <code>int32 shop_id = 1;</code>
     * @return The shopId.
     */
    public int getShopId() {
      return shopId_;
    }

    public static final int REWARD_ID_FIELD_NUMBER = 2;
    private int rewardId_;
    /**
     * <pre>
     *免费商品ID
     * </pre>
     *
     * <code>int32 reward_id = 2;</code>
     * @return The rewardId.
     */
    public int getRewardId() {
      return rewardId_;
    }

    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 (shopId_ != 0) {
        output.writeInt32(1, shopId_);
      }
      if (rewardId_ != 0) {
        output.writeInt32(2, rewardId_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (shopId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, shopId_);
      }
      if (rewardId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, rewardId_);
      }
      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.treasure.Treasure.TreasureTakeRewardRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest other = (pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest) obj;

      if (getShopId()
          != other.getShopId()) return false;
      if (getRewardId()
          != other.getRewardId()) 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) + SHOP_ID_FIELD_NUMBER;
      hash = (53 * hash) + getShopId();
      hash = (37 * hash) + REWARD_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRewardId();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest 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.treasure.Treasure.TreasureTakeRewardRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest 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.treasure.Treasure.TreasureTakeRewardRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest 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.treasure.Treasure.TreasureTakeRewardRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest 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.treasure.Treasure.TreasureTakeRewardRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest 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.treasure.Treasure.TreasureTakeRewardRequest 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.TreasureTakeRewardRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.TreasureTakeRewardRequest)
        pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureTakeRewardRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureTakeRewardRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest.class, pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest.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();
        shopId_ = 0;

        rewardId_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureTakeRewardRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest buildPartial() {
        pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest result = new pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest(this);
        result.shopId_ = shopId_;
        result.rewardId_ = rewardId_;
        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.treasure.Treasure.TreasureTakeRewardRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest other) {
        if (other == pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest.getDefaultInstance()) return this;
        if (other.getShopId() != 0) {
          setShopId(other.getShopId());
        }
        if (other.getRewardId() != 0) {
          setRewardId(other.getRewardId());
        }
        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.treasure.Treasure.TreasureTakeRewardRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int shopId_ ;
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @return The shopId.
       */
      public int getShopId() {
        return shopId_;
      }
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @param value The shopId to set.
       * @return This builder for chaining.
       */
      public Builder setShopId(int value) {
        
        shopId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearShopId() {
        
        shopId_ = 0;
        onChanged();
        return this;
      }

      private int rewardId_ ;
      /**
       * <pre>
       *免费商品ID
       * </pre>
       *
       * <code>int32 reward_id = 2;</code>
       * @return The rewardId.
       */
      public int getRewardId() {
        return rewardId_;
      }
      /**
       * <pre>
       *免费商品ID
       * </pre>
       *
       * <code>int32 reward_id = 2;</code>
       * @param value The rewardId to set.
       * @return This builder for chaining.
       */
      public Builder setRewardId(int value) {
        
        rewardId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *免费商品ID
       * </pre>
       *
       * <code>int32 reward_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRewardId() {
        
        rewardId_ = 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.TreasureTakeRewardRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.TreasureTakeRewardRequest)
    private static final pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest();
    }

    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *商店ID
     * </pre>
     *
     * <code>int32 shop_id = 1;</code>
     * @return The shopId.
     */
    int getShopId();

    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>.pb.PbKeyV product = 2;</code>
     * @return Whether the product field is set.
     */
    boolean hasProduct();
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>.pb.PbKeyV product = 2;</code>
     * @return The product.
     */
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV getProduct();
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>.pb.PbKeyV product = 2;</code>
     */
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder getProductOrBuilder();
  }
  /**
   * Protobuf type {@code pb.TreasureTakeRewardResponse}
   */
  public  static final class TreasureTakeRewardResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.TreasureTakeRewardResponse)
      TreasureTakeRewardResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TreasureTakeRewardResponse.newBuilder() to construct.
    private TreasureTakeRewardResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TreasureTakeRewardResponse() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TreasureTakeRewardResponse(
        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: {

              shopId_ = input.readInt32();
              break;
            }
            case 18: {
              pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder subBuilder = null;
              if (product_ != null) {
                subBuilder = product_.toBuilder();
              }
              product_ = input.readMessage(pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(product_);
                product_ = 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.treasure.Treasure.internal_static_pb_TreasureTakeRewardResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureTakeRewardResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse.class, pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse.Builder.class);
    }

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

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


      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 3000003: 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.treasure.Treasure.TreasureTakeRewardResponse.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.TreasureTakeRewardResponse.Proto)
    }

    public static final int SHOP_ID_FIELD_NUMBER = 1;
    private int shopId_;
    /**
     * <pre>
     *商店ID
     * </pre>
     *
     * <code>int32 shop_id = 1;</code>
     * @return The shopId.
     */
    public int getShopId() {
      return shopId_;
    }

    public static final int PRODUCT_FIELD_NUMBER = 2;
    private pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV product_;
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>.pb.PbKeyV product = 2;</code>
     * @return Whether the product field is set.
     */
    public boolean hasProduct() {
      return product_ != null;
    }
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>.pb.PbKeyV product = 2;</code>
     * @return The product.
     */
    public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV getProduct() {
      return product_ == null ? pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.getDefaultInstance() : product_;
    }
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>.pb.PbKeyV product = 2;</code>
     */
    public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder getProductOrBuilder() {
      return getProduct();
    }

    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 (shopId_ != 0) {
        output.writeInt32(1, shopId_);
      }
      if (product_ != null) {
        output.writeMessage(2, getProduct());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (shopId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, shopId_);
      }
      if (product_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getProduct());
      }
      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.treasure.Treasure.TreasureTakeRewardResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse other = (pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse) obj;

      if (getShopId()
          != other.getShopId()) return false;
      if (hasProduct() != other.hasProduct()) return false;
      if (hasProduct()) {
        if (!getProduct()
            .equals(other.getProduct())) 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) + SHOP_ID_FIELD_NUMBER;
      hash = (53 * hash) + getShopId();
      if (hasProduct()) {
        hash = (37 * hash) + PRODUCT_FIELD_NUMBER;
        hash = (53 * hash) + getProduct().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse 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.treasure.Treasure.TreasureTakeRewardResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse 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.treasure.Treasure.TreasureTakeRewardResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse 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.treasure.Treasure.TreasureTakeRewardResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse 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.treasure.Treasure.TreasureTakeRewardResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse 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.treasure.Treasure.TreasureTakeRewardResponse 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.TreasureTakeRewardResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.TreasureTakeRewardResponse)
        pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureTakeRewardResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureTakeRewardResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse.class, pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse.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();
        shopId_ = 0;

        if (productBuilder_ == null) {
          product_ = null;
        } else {
          product_ = null;
          productBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_TreasureTakeRewardResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse buildPartial() {
        pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse result = new pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse(this);
        result.shopId_ = shopId_;
        if (productBuilder_ == null) {
          result.product_ = product_;
        } else {
          result.product_ = productBuilder_.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.treasure.Treasure.TreasureTakeRewardResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse other) {
        if (other == pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse.getDefaultInstance()) return this;
        if (other.getShopId() != 0) {
          setShopId(other.getShopId());
        }
        if (other.hasProduct()) {
          mergeProduct(other.getProduct());
        }
        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.treasure.Treasure.TreasureTakeRewardResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int shopId_ ;
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @return The shopId.
       */
      public int getShopId() {
        return shopId_;
      }
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @param value The shopId to set.
       * @return This builder for chaining.
       */
      public Builder setShopId(int value) {
        
        shopId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearShopId() {
        
        shopId_ = 0;
        onChanged();
        return this;
      }

      private pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV product_;
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder> productBuilder_;
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       * @return Whether the product field is set.
       */
      public boolean hasProduct() {
        return productBuilder_ != null || product_ != null;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       * @return The product.
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV getProduct() {
        if (productBuilder_ == null) {
          return product_ == null ? pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.getDefaultInstance() : product_;
        } else {
          return productBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       */
      public Builder setProduct(pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV value) {
        if (productBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          product_ = value;
          onChanged();
        } else {
          productBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       */
      public Builder setProduct(
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder builderForValue) {
        if (productBuilder_ == null) {
          product_ = builderForValue.build();
          onChanged();
        } else {
          productBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       */
      public Builder mergeProduct(pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV value) {
        if (productBuilder_ == null) {
          if (product_ != null) {
            product_ =
              pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.newBuilder(product_).mergeFrom(value).buildPartial();
          } else {
            product_ = value;
          }
          onChanged();
        } else {
          productBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       */
      public Builder clearProduct() {
        if (productBuilder_ == null) {
          product_ = null;
          onChanged();
        } else {
          product_ = null;
          productBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder getProductBuilder() {
        
        onChanged();
        return getProductFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder getProductOrBuilder() {
        if (productBuilder_ != null) {
          return productBuilder_.getMessageOrBuilder();
        } else {
          return product_ == null ?
              pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.getDefaultInstance() : product_;
        }
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>.pb.PbKeyV product = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder> 
          getProductFieldBuilder() {
        if (productBuilder_ == null) {
          productBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder>(
                  getProduct(),
                  getParentForChildren(),
                  isClean());
          product_ = null;
        }
        return productBuilder_;
      }
      @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.TreasureTakeRewardResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.TreasureTakeRewardResponse)
    private static final pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse();
    }

    public static pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.treasure.Treasure.TreasureTakeRewardResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *商店ID
     * </pre>
     *
     * <code>int32 shop_id = 1;</code>
     * @return The shopId.
     */
    int getShopId();

    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>repeated .pb.PbKeyV product = 2;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV> 
        getProductList();
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>repeated .pb.PbKeyV product = 2;</code>
     */
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV getProduct(int index);
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>repeated .pb.PbKeyV product = 2;</code>
     */
    int getProductCount();
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>repeated .pb.PbKeyV product = 2;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder> 
        getProductOrBuilderList();
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>repeated .pb.PbKeyV product = 2;</code>
     */
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder getProductOrBuilder(
        int index);

    /**
     * <pre>
     *下次重置时间单位毫秒
     * </pre>
     *
     * <code>int64 reset_time = 3;</code>
     * @return The resetTime.
     */
    long getResetTime();

    /**
     * <pre>
     *期数
     * </pre>
     *
     * <code>int32 period = 4;</code>
     * @return The period.
     */
    int getPeriod();
  }
  /**
   * Protobuf type {@code pb.PbRechargeShop}
   */
  public  static final class PbRechargeShop extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PbRechargeShop)
      PbRechargeShopOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PbRechargeShop.newBuilder() to construct.
    private PbRechargeShop(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PbRechargeShop() {
      product_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PbRechargeShop(
        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: {

              shopId_ = input.readInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                product_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV>();
                mutable_bitField0_ |= 0x00000001;
              }
              product_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.parser(), extensionRegistry));
              break;
            }
            case 24: {

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

              period_ = 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 {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          product_ = java.util.Collections.unmodifiableList(product_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_PbRechargeShop_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_PbRechargeShop_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.class, pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.Builder.class);
    }

    public static final int SHOP_ID_FIELD_NUMBER = 1;
    private int shopId_;
    /**
     * <pre>
     *商店ID
     * </pre>
     *
     * <code>int32 shop_id = 1;</code>
     * @return The shopId.
     */
    public int getShopId() {
      return shopId_;
    }

    public static final int PRODUCT_FIELD_NUMBER = 2;
    private java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV> product_;
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>repeated .pb.PbKeyV product = 2;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV> getProductList() {
      return product_;
    }
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>repeated .pb.PbKeyV product = 2;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder> 
        getProductOrBuilderList() {
      return product_;
    }
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>repeated .pb.PbKeyV product = 2;</code>
     */
    public int getProductCount() {
      return product_.size();
    }
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>repeated .pb.PbKeyV product = 2;</code>
     */
    public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV getProduct(int index) {
      return product_.get(index);
    }
    /**
     * <pre>
     *充值商品ID-购买数量
     * </pre>
     *
     * <code>repeated .pb.PbKeyV product = 2;</code>
     */
    public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder getProductOrBuilder(
        int index) {
      return product_.get(index);
    }

    public static final int RESET_TIME_FIELD_NUMBER = 3;
    private long resetTime_;
    /**
     * <pre>
     *下次重置时间单位毫秒
     * </pre>
     *
     * <code>int64 reset_time = 3;</code>
     * @return The resetTime.
     */
    public long getResetTime() {
      return resetTime_;
    }

    public static final int PERIOD_FIELD_NUMBER = 4;
    private int period_;
    /**
     * <pre>
     *期数
     * </pre>
     *
     * <code>int32 period = 4;</code>
     * @return The period.
     */
    public int getPeriod() {
      return period_;
    }

    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 (shopId_ != 0) {
        output.writeInt32(1, shopId_);
      }
      for (int i = 0; i < product_.size(); i++) {
        output.writeMessage(2, product_.get(i));
      }
      if (resetTime_ != 0L) {
        output.writeInt64(3, resetTime_);
      }
      if (period_ != 0) {
        output.writeInt32(4, period_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (shopId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, shopId_);
      }
      for (int i = 0; i < product_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, product_.get(i));
      }
      if (resetTime_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, resetTime_);
      }
      if (period_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, period_);
      }
      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.treasure.Treasure.PbRechargeShop)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop other = (pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop) obj;

      if (getShopId()
          != other.getShopId()) return false;
      if (!getProductList()
          .equals(other.getProductList())) return false;
      if (getResetTime()
          != other.getResetTime()) return false;
      if (getPeriod()
          != other.getPeriod()) 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) + SHOP_ID_FIELD_NUMBER;
      hash = (53 * hash) + getShopId();
      if (getProductCount() > 0) {
        hash = (37 * hash) + PRODUCT_FIELD_NUMBER;
        hash = (53 * hash) + getProductList().hashCode();
      }
      hash = (37 * hash) + RESET_TIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getResetTime());
      hash = (37 * hash) + PERIOD_FIELD_NUMBER;
      hash = (53 * hash) + getPeriod();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop 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.treasure.Treasure.PbRechargeShop parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop 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.treasure.Treasure.PbRechargeShop parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop 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.treasure.Treasure.PbRechargeShop parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop 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.treasure.Treasure.PbRechargeShop parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop 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.treasure.Treasure.PbRechargeShop 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.PbRechargeShop}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PbRechargeShop)
        pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShopOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_PbRechargeShop_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_PbRechargeShop_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.class, pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        if (productBuilder_ == null) {
          product_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          productBuilder_.clear();
        }
        resetTime_ = 0L;

        period_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.internal_static_pb_PbRechargeShop_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop buildPartial() {
        pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop result = new pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop(this);
        int from_bitField0_ = bitField0_;
        result.shopId_ = shopId_;
        if (productBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            product_ = java.util.Collections.unmodifiableList(product_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.product_ = product_;
        } else {
          result.product_ = productBuilder_.build();
        }
        result.resetTime_ = resetTime_;
        result.period_ = period_;
        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.treasure.Treasure.PbRechargeShop) {
          return mergeFrom((pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop other) {
        if (other == pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop.getDefaultInstance()) return this;
        if (other.getShopId() != 0) {
          setShopId(other.getShopId());
        }
        if (productBuilder_ == null) {
          if (!other.product_.isEmpty()) {
            if (product_.isEmpty()) {
              product_ = other.product_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureProductIsMutable();
              product_.addAll(other.product_);
            }
            onChanged();
          }
        } else {
          if (!other.product_.isEmpty()) {
            if (productBuilder_.isEmpty()) {
              productBuilder_.dispose();
              productBuilder_ = null;
              product_ = other.product_;
              bitField0_ = (bitField0_ & ~0x00000001);
              productBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getProductFieldBuilder() : null;
            } else {
              productBuilder_.addAllMessages(other.product_);
            }
          }
        }
        if (other.getResetTime() != 0L) {
          setResetTime(other.getResetTime());
        }
        if (other.getPeriod() != 0) {
          setPeriod(other.getPeriod());
        }
        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.treasure.Treasure.PbRechargeShop parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int shopId_ ;
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @return The shopId.
       */
      public int getShopId() {
        return shopId_;
      }
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @param value The shopId to set.
       * @return This builder for chaining.
       */
      public Builder setShopId(int value) {
        
        shopId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearShopId() {
        
        shopId_ = 0;
        onChanged();
        return this;
      }

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder> productBuilder_;

      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV> getProductList() {
        if (productBuilder_ == null) {
          return java.util.Collections.unmodifiableList(product_);
        } else {
          return productBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public int getProductCount() {
        if (productBuilder_ == null) {
          return product_.size();
        } else {
          return productBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV getProduct(int index) {
        if (productBuilder_ == null) {
          return product_.get(index);
        } else {
          return productBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public Builder setProduct(
          int index, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV value) {
        if (productBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureProductIsMutable();
          product_.set(index, value);
          onChanged();
        } else {
          productBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public Builder setProduct(
          int index, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder builderForValue) {
        if (productBuilder_ == null) {
          ensureProductIsMutable();
          product_.set(index, builderForValue.build());
          onChanged();
        } else {
          productBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public Builder addProduct(pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV value) {
        if (productBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureProductIsMutable();
          product_.add(value);
          onChanged();
        } else {
          productBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public Builder addProduct(
          int index, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV value) {
        if (productBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureProductIsMutable();
          product_.add(index, value);
          onChanged();
        } else {
          productBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public Builder addProduct(
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder builderForValue) {
        if (productBuilder_ == null) {
          ensureProductIsMutable();
          product_.add(builderForValue.build());
          onChanged();
        } else {
          productBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public Builder addProduct(
          int index, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder builderForValue) {
        if (productBuilder_ == null) {
          ensureProductIsMutable();
          product_.add(index, builderForValue.build());
          onChanged();
        } else {
          productBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public Builder addAllProduct(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV> values) {
        if (productBuilder_ == null) {
          ensureProductIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, product_);
          onChanged();
        } else {
          productBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public Builder clearProduct() {
        if (productBuilder_ == null) {
          product_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          productBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public Builder removeProduct(int index) {
        if (productBuilder_ == null) {
          ensureProductIsMutable();
          product_.remove(index);
          onChanged();
        } else {
          productBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder getProductBuilder(
          int index) {
        return getProductFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder getProductOrBuilder(
          int index) {
        if (productBuilder_ == null) {
          return product_.get(index);  } else {
          return productBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder> 
           getProductOrBuilderList() {
        if (productBuilder_ != null) {
          return productBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(product_);
        }
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder addProductBuilder() {
        return getProductFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.getDefaultInstance());
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder addProductBuilder(
          int index) {
        return getProductFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.getDefaultInstance());
      }
      /**
       * <pre>
       *充值商品ID-购买数量
       * </pre>
       *
       * <code>repeated .pb.PbKeyV product = 2;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder> 
           getProductBuilderList() {
        return getProductFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder> 
          getProductFieldBuilder() {
        if (productBuilder_ == null) {
          productBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyV.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbKeyVOrBuilder>(
                  product_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          product_ = null;
        }
        return productBuilder_;
      }

      private long resetTime_ ;
      /**
       * <pre>
       *下次重置时间单位毫秒
       * </pre>
       *
       * <code>int64 reset_time = 3;</code>
       * @return The resetTime.
       */
      public long getResetTime() {
        return resetTime_;
      }
      /**
       * <pre>
       *下次重置时间单位毫秒
       * </pre>
       *
       * <code>int64 reset_time = 3;</code>
       * @param value The resetTime to set.
       * @return This builder for chaining.
       */
      public Builder setResetTime(long value) {
        
        resetTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *下次重置时间单位毫秒
       * </pre>
       *
       * <code>int64 reset_time = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearResetTime() {
        
        resetTime_ = 0L;
        onChanged();
        return this;
      }

      private int period_ ;
      /**
       * <pre>
       *期数
       * </pre>
       *
       * <code>int32 period = 4;</code>
       * @return The period.
       */
      public int getPeriod() {
        return period_;
      }
      /**
       * <pre>
       *期数
       * </pre>
       *
       * <code>int32 period = 4;</code>
       * @param value The period to set.
       * @return This builder for chaining.
       */
      public Builder setPeriod(int value) {
        
        period_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *期数
       * </pre>
       *
       * <code>int32 period = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearPeriod() {
        
        period_ = 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.PbRechargeShop)
    }

    // @@protoc_insertion_point(class_scope:pb.PbRechargeShop)
    private static final pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop();
    }

    public static pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.treasure.Treasure.PbRechargeShop getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_TreasureInfoResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_TreasureInfoResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_TreasureBuyMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_TreasureBuyMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_TreasureTakeRewardRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_TreasureTakeRewardRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_TreasureTakeRewardResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_TreasureTakeRewardResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PbRechargeShop_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PbRechargeShop_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\016Treasure.proto\022\002pb\032\020MiniStruct.proto\"|" +
      "\n\024TreasureInfoResponse\022*\n\016recharge_shops" +
      "\030\001 \003(\0132\022.pb.PbRechargeShop\022\027\n\017server_ope" +
      "n_day\030\002 \001(\005\"\037\n\005Proto\022\013\n\007UNKNOWN\020\000\022\t\n\002ID\020" +
      "\301\215\267\001\"c\n\022TreasureBuyMessage\022\017\n\007shop_id\030\001 " +
      "\001(\005\022\033\n\007product\030\002 \001(\0132\n.pb.PbKeyV\"\037\n\005Prot" +
      "o\022\013\n\007UNKNOWN\020\000\022\t\n\002ID\020\302\215\267\001\"`\n\031TreasureTak" +
      "eRewardRequest\022\017\n\007shop_id\030\001 \001(\005\022\021\n\trewar" +
      "d_id\030\002 \001(\005\"\037\n\005Proto\022\013\n\007UNKNOWN\020\000\022\t\n\002ID\020\303" +
      "\215\267\001\"k\n\032TreasureTakeRewardResponse\022\017\n\007sho" +
      "p_id\030\001 \001(\005\022\033\n\007product\030\002 \001(\0132\n.pb.PbKeyV\"" +
      "\037\n\005Proto\022\013\n\007UNKNOWN\020\000\022\t\n\002ID\020\303\215\267\001\"b\n\016PbRe" +
      "chargeShop\022\017\n\007shop_id\030\001 \001(\005\022\033\n\007product\030\002" +
      " \003(\0132\n.pb.PbKeyV\022\022\n\nreset_time\030\003 \001(\003\022\016\n\006" +
      "period\030\004 \001(\005B8\n\036pb.xiugou.x1.protobuf.tr" +
      "easure\252\002\025pb.xiugou.x1.protobufb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.getDescriptor(),
        });
    internal_static_pb_TreasureInfoResponse_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_pb_TreasureInfoResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_TreasureInfoResponse_descriptor,
        new java.lang.String[] { "RechargeShops", "ServerOpenDay", });
    internal_static_pb_TreasureBuyMessage_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_pb_TreasureBuyMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_TreasureBuyMessage_descriptor,
        new java.lang.String[] { "ShopId", "Product", });
    internal_static_pb_TreasureTakeRewardRequest_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_pb_TreasureTakeRewardRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_TreasureTakeRewardRequest_descriptor,
        new java.lang.String[] { "ShopId", "RewardId", });
    internal_static_pb_TreasureTakeRewardResponse_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_pb_TreasureTakeRewardResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_TreasureTakeRewardResponse_descriptor,
        new java.lang.String[] { "ShopId", "Product", });
    internal_static_pb_PbRechargeShop_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_pb_PbRechargeShop_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PbRechargeShop_descriptor,
        new java.lang.String[] { "ShopId", "Product", "ResetTime", "Period", });
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
