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

package cn.muchinfo.rma.protobuf.protoclasses;

public final class ErmcpMI1 {
  private ErmcpMI1() {}
  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 HedgePlanInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ErmcpMI1.HedgePlanInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * string �ױ��ƻ����
     * </pre>
     *
     * <code>optional string HedgePlanNo = 1;</code>
     * @return Whether the hedgePlanNo field is set.
     */
    boolean hasHedgePlanNo();
    /**
     * <pre>
     * string �ױ��ƻ����
     * </pre>
     *
     * <code>optional string HedgePlanNo = 1;</code>
     * @return The hedgePlanNo.
     */
    java.lang.String getHedgePlanNo();
    /**
     * <pre>
     * string �ױ��ƻ����
     * </pre>
     *
     * <code>optional string HedgePlanNo = 1;</code>
     * @return The bytes for hedgePlanNo.
     */
    com.google.protobuf.ByteString
        getHedgePlanNoBytes();

    /**
     * <pre>
     * int32 �ƻ�����-1:�ɹ�-1:����
     * </pre>
     *
     * <code>optional int32 ContractType = 2;</code>
     * @return Whether the contractType field is set.
     */
    boolean hasContractType();
    /**
     * <pre>
     * int32 �ƻ�����-1:�ɹ�-1:����
     * </pre>
     *
     * <code>optional int32 ContractType = 2;</code>
     * @return The contractType.
     */
    int getContractType();

    /**
     * <pre>
     * uint32 ����ID
     * </pre>
     *
     * <code>optional uint32 AreaUserID = 3;</code>
     * @return Whether the areaUserID field is set.
     */
    boolean hasAreaUserID();
    /**
     * <pre>
     * uint32 ����ID
     * </pre>
     *
     * <code>optional uint32 AreaUserID = 3;</code>
     * @return The areaUserID.
     */
    int getAreaUserID();

    /**
     * <pre>
     * uint32 �ֻ�Ʒ��ID
     * </pre>
     *
     * <code>optional uint32 DeliveryGoodsID = 4;</code>
     * @return Whether the deliveryGoodsID field is set.
     */
    boolean hasDeliveryGoodsID();
    /**
     * <pre>
     * uint32 �ֻ�Ʒ��ID
     * </pre>
     *
     * <code>optional uint32 DeliveryGoodsID = 4;</code>
     * @return The deliveryGoodsID.
     */
    int getDeliveryGoodsID();

    /**
     * <pre>
     * uint32 �ֻ���ƷID
     * </pre>
     *
     * <code>optional uint32 WrStandardID = 5;</code>
     * @return Whether the wrStandardID field is set.
     */
    boolean hasWrStandardID();
    /**
     * <pre>
     * uint32 �ֻ���ƷID
     * </pre>
     *
     * <code>optional uint32 WrStandardID = 5;</code>
     * @return The wrStandardID.
     */
    int getWrStandardID();

    /**
     * <pre>
     * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
     * </pre>
     *
     * <code>optional uint32 ProductType = 6;</code>
     * @return Whether the productType field is set.
     */
    boolean hasProductType();
    /**
     * <pre>
     * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
     * </pre>
     *
     * <code>optional uint32 ProductType = 6;</code>
     * @return The productType.
     */
    int getProductType();

    /**
     * <pre>
     * string ��Ʒ�ͺ�
     * </pre>
     *
     * <code>optional string SpotGoodsDesc = 7;</code>
     * @return Whether the spotGoodsDesc field is set.
     */
    boolean hasSpotGoodsDesc();
    /**
     * <pre>
     * string ��Ʒ�ͺ�
     * </pre>
     *
     * <code>optional string SpotGoodsDesc = 7;</code>
     * @return The spotGoodsDesc.
     */
    java.lang.String getSpotGoodsDesc();
    /**
     * <pre>
     * string ��Ʒ�ͺ�
     * </pre>
     *
     * <code>optional string SpotGoodsDesc = 7;</code>
     * @return The bytes for spotGoodsDesc.
     */
    com.google.protobuf.ByteString
        getSpotGoodsDescBytes();

    /**
     * <pre>
     * double �ƻ�����
     * </pre>
     *
     * <code>optional double PlanQty = 8;</code>
     * @return Whether the planQty field is set.
     */
    boolean hasPlanQty();
    /**
     * <pre>
     * double �ƻ�����
     * </pre>
     *
     * <code>optional double PlanQty = 8;</code>
     * @return The planQty.
     */
    double getPlanQty();

    /**
     * <pre>
     * double ���ϵ��
     * </pre>
     *
     * <code>optional double ConvertFactor = 9;</code>
     * @return Whether the convertFactor field is set.
     */
    boolean hasConvertFactor();
    /**
     * <pre>
     * double ���ϵ��
     * </pre>
     *
     * <code>optional double ConvertFactor = 9;</code>
     * @return The convertFactor.
     */
    double getConvertFactor();

    /**
     * <pre>
     * string �ƻ�ʱ��
     * </pre>
     *
     * <code>optional string PlanTime = 10;</code>
     * @return Whether the planTime field is set.
     */
    boolean hasPlanTime();
    /**
     * <pre>
     * string �ƻ�ʱ��
     * </pre>
     *
     * <code>optional string PlanTime = 10;</code>
     * @return The planTime.
     */
    java.lang.String getPlanTime();
    /**
     * <pre>
     * string �ƻ�ʱ��
     * </pre>
     *
     * <code>optional string PlanTime = 10;</code>
     * @return The bytes for planTime.
     */
    com.google.protobuf.ByteString
        getPlanTimeBytes();
  }
  /**
   * <pre>
   * �ױ��ƻ���Ϣ 0 18 1
   * </pre>
   *
   * Protobuf type {@code ErmcpMI1.HedgePlanInfo}
   */
  public static final class HedgePlanInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ErmcpMI1.HedgePlanInfo)
      HedgePlanInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HedgePlanInfo.newBuilder() to construct.
    private HedgePlanInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HedgePlanInfo() {
      hedgePlanNo_ = "";
      spotGoodsDesc_ = "";
      planTime_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HedgePlanInfo(
        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: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              hedgePlanNo_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              contractType_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              areaUserID_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              deliveryGoodsID_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              wrStandardID_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              productType_ = input.readUInt32();
              break;
            }
            case 58: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000040;
              spotGoodsDesc_ = bs;
              break;
            }
            case 65: {
              bitField0_ |= 0x00000080;
              planQty_ = input.readDouble();
              break;
            }
            case 73: {
              bitField0_ |= 0x00000100;
              convertFactor_ = input.readDouble();
              break;
            }
            case 82: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000200;
              planTime_ = bs;
              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 ErmcpMI1.internal_static_ErmcpMI1_HedgePlanInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ErmcpMI1.internal_static_ErmcpMI1_HedgePlanInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ErmcpMI1.HedgePlanInfo.class, ErmcpMI1.HedgePlanInfo.Builder.class);
    }

    private int bitField0_;
    public static final int HEDGEPLANNO_FIELD_NUMBER = 1;
    private volatile java.lang.Object hedgePlanNo_;
    /**
     * <pre>
     * string �ױ��ƻ����
     * </pre>
     *
     * <code>optional string HedgePlanNo = 1;</code>
     * @return Whether the hedgePlanNo field is set.
     */
    @java.lang.Override
    public boolean hasHedgePlanNo() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * string �ױ��ƻ����
     * </pre>
     *
     * <code>optional string HedgePlanNo = 1;</code>
     * @return The hedgePlanNo.
     */
    @java.lang.Override
    public java.lang.String getHedgePlanNo() {
      java.lang.Object ref = hedgePlanNo_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          hedgePlanNo_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string �ױ��ƻ����
     * </pre>
     *
     * <code>optional string HedgePlanNo = 1;</code>
     * @return The bytes for hedgePlanNo.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHedgePlanNoBytes() {
      java.lang.Object ref = hedgePlanNo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hedgePlanNo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CONTRACTTYPE_FIELD_NUMBER = 2;
    private int contractType_;
    /**
     * <pre>
     * int32 �ƻ�����-1:�ɹ�-1:����
     * </pre>
     *
     * <code>optional int32 ContractType = 2;</code>
     * @return Whether the contractType field is set.
     */
    @java.lang.Override
    public boolean hasContractType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 �ƻ�����-1:�ɹ�-1:����
     * </pre>
     *
     * <code>optional int32 ContractType = 2;</code>
     * @return The contractType.
     */
    @java.lang.Override
    public int getContractType() {
      return contractType_;
    }

    public static final int AREAUSERID_FIELD_NUMBER = 3;
    private int areaUserID_;
    /**
     * <pre>
     * uint32 ����ID
     * </pre>
     *
     * <code>optional uint32 AreaUserID = 3;</code>
     * @return Whether the areaUserID field is set.
     */
    @java.lang.Override
    public boolean hasAreaUserID() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * uint32 ����ID
     * </pre>
     *
     * <code>optional uint32 AreaUserID = 3;</code>
     * @return The areaUserID.
     */
    @java.lang.Override
    public int getAreaUserID() {
      return areaUserID_;
    }

    public static final int DELIVERYGOODSID_FIELD_NUMBER = 4;
    private int deliveryGoodsID_;
    /**
     * <pre>
     * uint32 �ֻ�Ʒ��ID
     * </pre>
     *
     * <code>optional uint32 DeliveryGoodsID = 4;</code>
     * @return Whether the deliveryGoodsID field is set.
     */
    @java.lang.Override
    public boolean hasDeliveryGoodsID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint32 �ֻ�Ʒ��ID
     * </pre>
     *
     * <code>optional uint32 DeliveryGoodsID = 4;</code>
     * @return The deliveryGoodsID.
     */
    @java.lang.Override
    public int getDeliveryGoodsID() {
      return deliveryGoodsID_;
    }

    public static final int WRSTANDARDID_FIELD_NUMBER = 5;
    private int wrStandardID_;
    /**
     * <pre>
     * uint32 �ֻ���ƷID
     * </pre>
     *
     * <code>optional uint32 WrStandardID = 5;</code>
     * @return Whether the wrStandardID field is set.
     */
    @java.lang.Override
    public boolean hasWrStandardID() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint32 �ֻ���ƷID
     * </pre>
     *
     * <code>optional uint32 WrStandardID = 5;</code>
     * @return The wrStandardID.
     */
    @java.lang.Override
    public int getWrStandardID() {
      return wrStandardID_;
    }

    public static final int PRODUCTTYPE_FIELD_NUMBER = 6;
    private int productType_;
    /**
     * <pre>
     * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
     * </pre>
     *
     * <code>optional uint32 ProductType = 6;</code>
     * @return Whether the productType field is set.
     */
    @java.lang.Override
    public boolean hasProductType() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
     * </pre>
     *
     * <code>optional uint32 ProductType = 6;</code>
     * @return The productType.
     */
    @java.lang.Override
    public int getProductType() {
      return productType_;
    }

    public static final int SPOTGOODSDESC_FIELD_NUMBER = 7;
    private volatile java.lang.Object spotGoodsDesc_;
    /**
     * <pre>
     * string ��Ʒ�ͺ�
     * </pre>
     *
     * <code>optional string SpotGoodsDesc = 7;</code>
     * @return Whether the spotGoodsDesc field is set.
     */
    @java.lang.Override
    public boolean hasSpotGoodsDesc() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * string ��Ʒ�ͺ�
     * </pre>
     *
     * <code>optional string SpotGoodsDesc = 7;</code>
     * @return The spotGoodsDesc.
     */
    @java.lang.Override
    public java.lang.String getSpotGoodsDesc() {
      java.lang.Object ref = spotGoodsDesc_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          spotGoodsDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string ��Ʒ�ͺ�
     * </pre>
     *
     * <code>optional string SpotGoodsDesc = 7;</code>
     * @return The bytes for spotGoodsDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSpotGoodsDescBytes() {
      java.lang.Object ref = spotGoodsDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        spotGoodsDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PLANQTY_FIELD_NUMBER = 8;
    private double planQty_;
    /**
     * <pre>
     * double �ƻ�����
     * </pre>
     *
     * <code>optional double PlanQty = 8;</code>
     * @return Whether the planQty field is set.
     */
    @java.lang.Override
    public boolean hasPlanQty() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * double �ƻ�����
     * </pre>
     *
     * <code>optional double PlanQty = 8;</code>
     * @return The planQty.
     */
    @java.lang.Override
    public double getPlanQty() {
      return planQty_;
    }

    public static final int CONVERTFACTOR_FIELD_NUMBER = 9;
    private double convertFactor_;
    /**
     * <pre>
     * double ���ϵ��
     * </pre>
     *
     * <code>optional double ConvertFactor = 9;</code>
     * @return Whether the convertFactor field is set.
     */
    @java.lang.Override
    public boolean hasConvertFactor() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * double ���ϵ��
     * </pre>
     *
     * <code>optional double ConvertFactor = 9;</code>
     * @return The convertFactor.
     */
    @java.lang.Override
    public double getConvertFactor() {
      return convertFactor_;
    }

    public static final int PLANTIME_FIELD_NUMBER = 10;
    private volatile java.lang.Object planTime_;
    /**
     * <pre>
     * string �ƻ�ʱ��
     * </pre>
     *
     * <code>optional string PlanTime = 10;</code>
     * @return Whether the planTime field is set.
     */
    @java.lang.Override
    public boolean hasPlanTime() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * string �ƻ�ʱ��
     * </pre>
     *
     * <code>optional string PlanTime = 10;</code>
     * @return The planTime.
     */
    @java.lang.Override
    public java.lang.String getPlanTime() {
      java.lang.Object ref = planTime_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          planTime_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string �ƻ�ʱ��
     * </pre>
     *
     * <code>optional string PlanTime = 10;</code>
     * @return The bytes for planTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPlanTimeBytes() {
      java.lang.Object ref = planTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        planTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, hedgePlanNo_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, contractType_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, areaUserID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, deliveryGoodsID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, wrStandardID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt32(6, productType_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, spotGoodsDesc_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeDouble(8, planQty_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeDouble(9, convertFactor_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, planTime_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, hedgePlanNo_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, contractType_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, areaUserID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, deliveryGoodsID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, wrStandardID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, productType_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, spotGoodsDesc_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(8, planQty_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(9, convertFactor_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, planTime_);
      }
      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 ErmcpMI1.HedgePlanInfo)) {
        return super.equals(obj);
      }
      ErmcpMI1.HedgePlanInfo other = (ErmcpMI1.HedgePlanInfo) obj;

      if (hasHedgePlanNo() != other.hasHedgePlanNo()) return false;
      if (hasHedgePlanNo()) {
        if (!getHedgePlanNo()
            .equals(other.getHedgePlanNo())) return false;
      }
      if (hasContractType() != other.hasContractType()) return false;
      if (hasContractType()) {
        if (getContractType()
            != other.getContractType()) return false;
      }
      if (hasAreaUserID() != other.hasAreaUserID()) return false;
      if (hasAreaUserID()) {
        if (getAreaUserID()
            != other.getAreaUserID()) return false;
      }
      if (hasDeliveryGoodsID() != other.hasDeliveryGoodsID()) return false;
      if (hasDeliveryGoodsID()) {
        if (getDeliveryGoodsID()
            != other.getDeliveryGoodsID()) return false;
      }
      if (hasWrStandardID() != other.hasWrStandardID()) return false;
      if (hasWrStandardID()) {
        if (getWrStandardID()
            != other.getWrStandardID()) return false;
      }
      if (hasProductType() != other.hasProductType()) return false;
      if (hasProductType()) {
        if (getProductType()
            != other.getProductType()) return false;
      }
      if (hasSpotGoodsDesc() != other.hasSpotGoodsDesc()) return false;
      if (hasSpotGoodsDesc()) {
        if (!getSpotGoodsDesc()
            .equals(other.getSpotGoodsDesc())) return false;
      }
      if (hasPlanQty() != other.hasPlanQty()) return false;
      if (hasPlanQty()) {
        if (java.lang.Double.doubleToLongBits(getPlanQty())
            != java.lang.Double.doubleToLongBits(
                other.getPlanQty())) return false;
      }
      if (hasConvertFactor() != other.hasConvertFactor()) return false;
      if (hasConvertFactor()) {
        if (java.lang.Double.doubleToLongBits(getConvertFactor())
            != java.lang.Double.doubleToLongBits(
                other.getConvertFactor())) return false;
      }
      if (hasPlanTime() != other.hasPlanTime()) return false;
      if (hasPlanTime()) {
        if (!getPlanTime()
            .equals(other.getPlanTime())) 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 (hasHedgePlanNo()) {
        hash = (37 * hash) + HEDGEPLANNO_FIELD_NUMBER;
        hash = (53 * hash) + getHedgePlanNo().hashCode();
      }
      if (hasContractType()) {
        hash = (37 * hash) + CONTRACTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getContractType();
      }
      if (hasAreaUserID()) {
        hash = (37 * hash) + AREAUSERID_FIELD_NUMBER;
        hash = (53 * hash) + getAreaUserID();
      }
      if (hasDeliveryGoodsID()) {
        hash = (37 * hash) + DELIVERYGOODSID_FIELD_NUMBER;
        hash = (53 * hash) + getDeliveryGoodsID();
      }
      if (hasWrStandardID()) {
        hash = (37 * hash) + WRSTANDARDID_FIELD_NUMBER;
        hash = (53 * hash) + getWrStandardID();
      }
      if (hasProductType()) {
        hash = (37 * hash) + PRODUCTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getProductType();
      }
      if (hasSpotGoodsDesc()) {
        hash = (37 * hash) + SPOTGOODSDESC_FIELD_NUMBER;
        hash = (53 * hash) + getSpotGoodsDesc().hashCode();
      }
      if (hasPlanQty()) {
        hash = (37 * hash) + PLANQTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getPlanQty()));
      }
      if (hasConvertFactor()) {
        hash = (37 * hash) + CONVERTFACTOR_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getConvertFactor()));
      }
      if (hasPlanTime()) {
        hash = (37 * hash) + PLANTIME_FIELD_NUMBER;
        hash = (53 * hash) + getPlanTime().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ErmcpMI1.HedgePlanInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.HedgePlanInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.HedgePlanInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.HedgePlanInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.HedgePlanInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.HedgePlanInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.HedgePlanInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.HedgePlanInfo 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 ErmcpMI1.HedgePlanInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static ErmcpMI1.HedgePlanInfo 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 ErmcpMI1.HedgePlanInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.HedgePlanInfo 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(ErmcpMI1.HedgePlanInfo 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>
     * �ױ��ƻ���Ϣ 0 18 1
     * </pre>
     *
     * Protobuf type {@code ErmcpMI1.HedgePlanInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ErmcpMI1.HedgePlanInfo)
        ErmcpMI1.HedgePlanInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ErmcpMI1.internal_static_ErmcpMI1_HedgePlanInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ErmcpMI1.internal_static_ErmcpMI1_HedgePlanInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ErmcpMI1.HedgePlanInfo.class, ErmcpMI1.HedgePlanInfo.Builder.class);
      }

      // Construct using ErmcpMI1.HedgePlanInfo.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();
        hedgePlanNo_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        contractType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        areaUserID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        deliveryGoodsID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        wrStandardID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        productType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        spotGoodsDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        planQty_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000080);
        convertFactor_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000100);
        planTime_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ErmcpMI1.internal_static_ErmcpMI1_HedgePlanInfo_descriptor;
      }

      @java.lang.Override
      public ErmcpMI1.HedgePlanInfo getDefaultInstanceForType() {
        return ErmcpMI1.HedgePlanInfo.getDefaultInstance();
      }

      @java.lang.Override
      public ErmcpMI1.HedgePlanInfo build() {
        ErmcpMI1.HedgePlanInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ErmcpMI1.HedgePlanInfo buildPartial() {
        ErmcpMI1.HedgePlanInfo result = new ErmcpMI1.HedgePlanInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.hedgePlanNo_ = hedgePlanNo_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.contractType_ = contractType_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.areaUserID_ = areaUserID_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.deliveryGoodsID_ = deliveryGoodsID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.wrStandardID_ = wrStandardID_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.productType_ = productType_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000040;
        }
        result.spotGoodsDesc_ = spotGoodsDesc_;
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.planQty_ = planQty_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.convertFactor_ = convertFactor_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          to_bitField0_ |= 0x00000200;
        }
        result.planTime_ = planTime_;
        result.bitField0_ = to_bitField0_;
        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 ErmcpMI1.HedgePlanInfo) {
          return mergeFrom((ErmcpMI1.HedgePlanInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ErmcpMI1.HedgePlanInfo other) {
        if (other == ErmcpMI1.HedgePlanInfo.getDefaultInstance()) return this;
        if (other.hasHedgePlanNo()) {
          bitField0_ |= 0x00000001;
          hedgePlanNo_ = other.hedgePlanNo_;
          onChanged();
        }
        if (other.hasContractType()) {
          setContractType(other.getContractType());
        }
        if (other.hasAreaUserID()) {
          setAreaUserID(other.getAreaUserID());
        }
        if (other.hasDeliveryGoodsID()) {
          setDeliveryGoodsID(other.getDeliveryGoodsID());
        }
        if (other.hasWrStandardID()) {
          setWrStandardID(other.getWrStandardID());
        }
        if (other.hasProductType()) {
          setProductType(other.getProductType());
        }
        if (other.hasSpotGoodsDesc()) {
          bitField0_ |= 0x00000040;
          spotGoodsDesc_ = other.spotGoodsDesc_;
          onChanged();
        }
        if (other.hasPlanQty()) {
          setPlanQty(other.getPlanQty());
        }
        if (other.hasConvertFactor()) {
          setConvertFactor(other.getConvertFactor());
        }
        if (other.hasPlanTime()) {
          bitField0_ |= 0x00000200;
          planTime_ = other.planTime_;
          onChanged();
        }
        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 {
        ErmcpMI1.HedgePlanInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (ErmcpMI1.HedgePlanInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object hedgePlanNo_ = "";
      /**
       * <pre>
       * string �ױ��ƻ����
       * </pre>
       *
       * <code>optional string HedgePlanNo = 1;</code>
       * @return Whether the hedgePlanNo field is set.
       */
      public boolean hasHedgePlanNo() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * string �ױ��ƻ����
       * </pre>
       *
       * <code>optional string HedgePlanNo = 1;</code>
       * @return The hedgePlanNo.
       */
      public java.lang.String getHedgePlanNo() {
        java.lang.Object ref = hedgePlanNo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            hedgePlanNo_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string �ױ��ƻ����
       * </pre>
       *
       * <code>optional string HedgePlanNo = 1;</code>
       * @return The bytes for hedgePlanNo.
       */
      public com.google.protobuf.ByteString
          getHedgePlanNoBytes() {
        java.lang.Object ref = hedgePlanNo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hedgePlanNo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string �ױ��ƻ����
       * </pre>
       *
       * <code>optional string HedgePlanNo = 1;</code>
       * @param value The hedgePlanNo to set.
       * @return This builder for chaining.
       */
      public Builder setHedgePlanNo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        hedgePlanNo_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ױ��ƻ����
       * </pre>
       *
       * <code>optional string HedgePlanNo = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearHedgePlanNo() {
        bitField0_ = (bitField0_ & ~0x00000001);
        hedgePlanNo_ = getDefaultInstance().getHedgePlanNo();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ױ��ƻ����
       * </pre>
       *
       * <code>optional string HedgePlanNo = 1;</code>
       * @param value The bytes for hedgePlanNo to set.
       * @return This builder for chaining.
       */
      public Builder setHedgePlanNoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        hedgePlanNo_ = value;
        onChanged();
        return this;
      }

      private int contractType_ ;
      /**
       * <pre>
       * int32 �ƻ�����-1:�ɹ�-1:����
       * </pre>
       *
       * <code>optional int32 ContractType = 2;</code>
       * @return Whether the contractType field is set.
       */
      @java.lang.Override
      public boolean hasContractType() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 �ƻ�����-1:�ɹ�-1:����
       * </pre>
       *
       * <code>optional int32 ContractType = 2;</code>
       * @return The contractType.
       */
      @java.lang.Override
      public int getContractType() {
        return contractType_;
      }
      /**
       * <pre>
       * int32 �ƻ�����-1:�ɹ�-1:����
       * </pre>
       *
       * <code>optional int32 ContractType = 2;</code>
       * @param value The contractType to set.
       * @return This builder for chaining.
       */
      public Builder setContractType(int value) {
        bitField0_ |= 0x00000002;
        contractType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 �ƻ�����-1:�ɹ�-1:����
       * </pre>
       *
       * <code>optional int32 ContractType = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearContractType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        contractType_ = 0;
        onChanged();
        return this;
      }

      private int areaUserID_ ;
      /**
       * <pre>
       * uint32 ����ID
       * </pre>
       *
       * <code>optional uint32 AreaUserID = 3;</code>
       * @return Whether the areaUserID field is set.
       */
      @java.lang.Override
      public boolean hasAreaUserID() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * uint32 ����ID
       * </pre>
       *
       * <code>optional uint32 AreaUserID = 3;</code>
       * @return The areaUserID.
       */
      @java.lang.Override
      public int getAreaUserID() {
        return areaUserID_;
      }
      /**
       * <pre>
       * uint32 ����ID
       * </pre>
       *
       * <code>optional uint32 AreaUserID = 3;</code>
       * @param value The areaUserID to set.
       * @return This builder for chaining.
       */
      public Builder setAreaUserID(int value) {
        bitField0_ |= 0x00000004;
        areaUserID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ����ID
       * </pre>
       *
       * <code>optional uint32 AreaUserID = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAreaUserID() {
        bitField0_ = (bitField0_ & ~0x00000004);
        areaUserID_ = 0;
        onChanged();
        return this;
      }

      private int deliveryGoodsID_ ;
      /**
       * <pre>
       * uint32 �ֻ�Ʒ��ID
       * </pre>
       *
       * <code>optional uint32 DeliveryGoodsID = 4;</code>
       * @return Whether the deliveryGoodsID field is set.
       */
      @java.lang.Override
      public boolean hasDeliveryGoodsID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint32 �ֻ�Ʒ��ID
       * </pre>
       *
       * <code>optional uint32 DeliveryGoodsID = 4;</code>
       * @return The deliveryGoodsID.
       */
      @java.lang.Override
      public int getDeliveryGoodsID() {
        return deliveryGoodsID_;
      }
      /**
       * <pre>
       * uint32 �ֻ�Ʒ��ID
       * </pre>
       *
       * <code>optional uint32 DeliveryGoodsID = 4;</code>
       * @param value The deliveryGoodsID to set.
       * @return This builder for chaining.
       */
      public Builder setDeliveryGoodsID(int value) {
        bitField0_ |= 0x00000008;
        deliveryGoodsID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 �ֻ�Ʒ��ID
       * </pre>
       *
       * <code>optional uint32 DeliveryGoodsID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeliveryGoodsID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        deliveryGoodsID_ = 0;
        onChanged();
        return this;
      }

      private int wrStandardID_ ;
      /**
       * <pre>
       * uint32 �ֻ���ƷID
       * </pre>
       *
       * <code>optional uint32 WrStandardID = 5;</code>
       * @return Whether the wrStandardID field is set.
       */
      @java.lang.Override
      public boolean hasWrStandardID() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint32 �ֻ���ƷID
       * </pre>
       *
       * <code>optional uint32 WrStandardID = 5;</code>
       * @return The wrStandardID.
       */
      @java.lang.Override
      public int getWrStandardID() {
        return wrStandardID_;
      }
      /**
       * <pre>
       * uint32 �ֻ���ƷID
       * </pre>
       *
       * <code>optional uint32 WrStandardID = 5;</code>
       * @param value The wrStandardID to set.
       * @return This builder for chaining.
       */
      public Builder setWrStandardID(int value) {
        bitField0_ |= 0x00000010;
        wrStandardID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 �ֻ���ƷID
       * </pre>
       *
       * <code>optional uint32 WrStandardID = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearWrStandardID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        wrStandardID_ = 0;
        onChanged();
        return this;
      }

      private int productType_ ;
      /**
       * <pre>
       * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
       * </pre>
       *
       * <code>optional uint32 ProductType = 6;</code>
       * @return Whether the productType field is set.
       */
      @java.lang.Override
      public boolean hasProductType() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
       * </pre>
       *
       * <code>optional uint32 ProductType = 6;</code>
       * @return The productType.
       */
      @java.lang.Override
      public int getProductType() {
        return productType_;
      }
      /**
       * <pre>
       * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
       * </pre>
       *
       * <code>optional uint32 ProductType = 6;</code>
       * @param value The productType to set.
       * @return This builder for chaining.
       */
      public Builder setProductType(int value) {
        bitField0_ |= 0x00000020;
        productType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
       * </pre>
       *
       * <code>optional uint32 ProductType = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearProductType() {
        bitField0_ = (bitField0_ & ~0x00000020);
        productType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object spotGoodsDesc_ = "";
      /**
       * <pre>
       * string ��Ʒ�ͺ�
       * </pre>
       *
       * <code>optional string SpotGoodsDesc = 7;</code>
       * @return Whether the spotGoodsDesc field is set.
       */
      public boolean hasSpotGoodsDesc() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * string ��Ʒ�ͺ�
       * </pre>
       *
       * <code>optional string SpotGoodsDesc = 7;</code>
       * @return The spotGoodsDesc.
       */
      public java.lang.String getSpotGoodsDesc() {
        java.lang.Object ref = spotGoodsDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            spotGoodsDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string ��Ʒ�ͺ�
       * </pre>
       *
       * <code>optional string SpotGoodsDesc = 7;</code>
       * @return The bytes for spotGoodsDesc.
       */
      public com.google.protobuf.ByteString
          getSpotGoodsDescBytes() {
        java.lang.Object ref = spotGoodsDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          spotGoodsDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string ��Ʒ�ͺ�
       * </pre>
       *
       * <code>optional string SpotGoodsDesc = 7;</code>
       * @param value The spotGoodsDesc to set.
       * @return This builder for chaining.
       */
      public Builder setSpotGoodsDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        spotGoodsDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��Ʒ�ͺ�
       * </pre>
       *
       * <code>optional string SpotGoodsDesc = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpotGoodsDesc() {
        bitField0_ = (bitField0_ & ~0x00000040);
        spotGoodsDesc_ = getDefaultInstance().getSpotGoodsDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��Ʒ�ͺ�
       * </pre>
       *
       * <code>optional string SpotGoodsDesc = 7;</code>
       * @param value The bytes for spotGoodsDesc to set.
       * @return This builder for chaining.
       */
      public Builder setSpotGoodsDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        spotGoodsDesc_ = value;
        onChanged();
        return this;
      }

      private double planQty_ ;
      /**
       * <pre>
       * double �ƻ�����
       * </pre>
       *
       * <code>optional double PlanQty = 8;</code>
       * @return Whether the planQty field is set.
       */
      @java.lang.Override
      public boolean hasPlanQty() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * double �ƻ�����
       * </pre>
       *
       * <code>optional double PlanQty = 8;</code>
       * @return The planQty.
       */
      @java.lang.Override
      public double getPlanQty() {
        return planQty_;
      }
      /**
       * <pre>
       * double �ƻ�����
       * </pre>
       *
       * <code>optional double PlanQty = 8;</code>
       * @param value The planQty to set.
       * @return This builder for chaining.
       */
      public Builder setPlanQty(double value) {
        bitField0_ |= 0x00000080;
        planQty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double �ƻ�����
       * </pre>
       *
       * <code>optional double PlanQty = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlanQty() {
        bitField0_ = (bitField0_ & ~0x00000080);
        planQty_ = 0D;
        onChanged();
        return this;
      }

      private double convertFactor_ ;
      /**
       * <pre>
       * double ���ϵ��
       * </pre>
       *
       * <code>optional double ConvertFactor = 9;</code>
       * @return Whether the convertFactor field is set.
       */
      @java.lang.Override
      public boolean hasConvertFactor() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * double ���ϵ��
       * </pre>
       *
       * <code>optional double ConvertFactor = 9;</code>
       * @return The convertFactor.
       */
      @java.lang.Override
      public double getConvertFactor() {
        return convertFactor_;
      }
      /**
       * <pre>
       * double ���ϵ��
       * </pre>
       *
       * <code>optional double ConvertFactor = 9;</code>
       * @param value The convertFactor to set.
       * @return This builder for chaining.
       */
      public Builder setConvertFactor(double value) {
        bitField0_ |= 0x00000100;
        convertFactor_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double ���ϵ��
       * </pre>
       *
       * <code>optional double ConvertFactor = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearConvertFactor() {
        bitField0_ = (bitField0_ & ~0x00000100);
        convertFactor_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object planTime_ = "";
      /**
       * <pre>
       * string �ƻ�ʱ��
       * </pre>
       *
       * <code>optional string PlanTime = 10;</code>
       * @return Whether the planTime field is set.
       */
      public boolean hasPlanTime() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * string �ƻ�ʱ��
       * </pre>
       *
       * <code>optional string PlanTime = 10;</code>
       * @return The planTime.
       */
      public java.lang.String getPlanTime() {
        java.lang.Object ref = planTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            planTime_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string �ƻ�ʱ��
       * </pre>
       *
       * <code>optional string PlanTime = 10;</code>
       * @return The bytes for planTime.
       */
      public com.google.protobuf.ByteString
          getPlanTimeBytes() {
        java.lang.Object ref = planTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          planTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string �ƻ�ʱ��
       * </pre>
       *
       * <code>optional string PlanTime = 10;</code>
       * @param value The planTime to set.
       * @return This builder for chaining.
       */
      public Builder setPlanTime(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        planTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ƻ�ʱ��
       * </pre>
       *
       * <code>optional string PlanTime = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlanTime() {
        bitField0_ = (bitField0_ & ~0x00000200);
        planTime_ = getDefaultInstance().getPlanTime();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ƻ�ʱ��
       * </pre>
       *
       * <code>optional string PlanTime = 10;</code>
       * @param value The bytes for planTime to set.
       * @return This builder for chaining.
       */
      public Builder setPlanTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        planTime_ = value;
        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:ErmcpMI1.HedgePlanInfo)
    }

    // @@protoc_insertion_point(class_scope:ErmcpMI1.HedgePlanInfo)
    private static final ErmcpMI1.HedgePlanInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ErmcpMI1.HedgePlanInfo();
    }

    public static ErmcpMI1.HedgePlanInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ErmcpMI1.HedgePlanInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HedgePlanOperateReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ErmcpMI1.HedgePlanOperateReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 HedgePlanID = 2;</code>
     * @return Whether the hedgePlanID field is set.
     */
    boolean hasHedgePlanID();
    /**
     * <pre>
     * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 HedgePlanID = 2;</code>
     * @return The hedgePlanID.
     */
    long getHedgePlanID();

    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
     * </pre>
     *
     * <code>optional uint32 OperateType = 3;</code>
     * @return Whether the operateType field is set.
     */
    boolean hasOperateType();
    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
     * </pre>
     *
     * <code>optional uint32 OperateType = 3;</code>
     * @return The operateType.
     */
    int getOperateType();

    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 4;</code>
     * @return Whether the operateSrc field is set.
     */
    boolean hasOperateSrc();
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 4;</code>
     * @return The operateSrc.
     */
    int getOperateSrc();

    /**
     * <pre>
     * uint64 �����û�ID
     * </pre>
     *
     * <code>optional uint64 UserID = 5;</code>
     * @return Whether the userID field is set.
     */
    boolean hasUserID();
    /**
     * <pre>
     * uint64 �����û�ID
     * </pre>
     *
     * <code>optional uint64 UserID = 5;</code>
     * @return The userID.
     */
    long getUserID();

    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return Whether the remark field is set.
     */
    boolean hasRemark();
    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The remark.
     */
    java.lang.String getRemark();
    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The bytes for remark.
     */
    com.google.protobuf.ByteString
        getRemarkBytes();

    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return Whether the clientTicket field is set.
     */
    boolean hasClientTicket();
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The clientTicket.
     */
    java.lang.String getClientTicket();
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The bytes for clientTicket.
     */
    com.google.protobuf.ByteString
        getClientTicketBytes();

    /**
     * <pre>
     * HedgePlanInfo �ױ��ƻ���Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.HedgePlanInfo Info = 8;</code>
     * @return Whether the info field is set.
     */
    boolean hasInfo();
    /**
     * <pre>
     * HedgePlanInfo �ױ��ƻ���Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.HedgePlanInfo Info = 8;</code>
     * @return The info.
     */
    ErmcpMI1.HedgePlanInfo getInfo();
    /**
     * <pre>
     * HedgePlanInfo �ױ��ƻ���Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.HedgePlanInfo Info = 8;</code>
     */
    ErmcpMI1.HedgePlanInfoOrBuilder getInfoOrBuilder();
  }
  /**
   * <pre>
   * �ױ��ƻ��������� 0 18 2
   * </pre>
   *
   * Protobuf type {@code ErmcpMI1.HedgePlanOperateReq}
   */
  public static final class HedgePlanOperateReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ErmcpMI1.HedgePlanOperateReq)
      HedgePlanOperateReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HedgePlanOperateReq.newBuilder() to construct.
    private HedgePlanOperateReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HedgePlanOperateReq() {
      remark_ = "";
      clientTicket_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HedgePlanOperateReq(
        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: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              hedgePlanID_ = input.readUInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              operateType_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              operateSrc_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              userID_ = input.readUInt64();
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              remark_ = bs;
              break;
            }
            case 58: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000040;
              clientTicket_ = bs;
              break;
            }
            case 66: {
              ErmcpMI1.HedgePlanInfo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000080) != 0)) {
                subBuilder = info_.toBuilder();
              }
              info_ = input.readMessage(ErmcpMI1.HedgePlanInfo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(info_);
                info_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000080;
              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 ErmcpMI1.internal_static_ErmcpMI1_HedgePlanOperateReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ErmcpMI1.internal_static_ErmcpMI1_HedgePlanOperateReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ErmcpMI1.HedgePlanOperateReq.class, ErmcpMI1.HedgePlanOperateReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int HEDGEPLANID_FIELD_NUMBER = 2;
    private long hedgePlanID_;
    /**
     * <pre>
     * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 HedgePlanID = 2;</code>
     * @return Whether the hedgePlanID field is set.
     */
    @java.lang.Override
    public boolean hasHedgePlanID() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 HedgePlanID = 2;</code>
     * @return The hedgePlanID.
     */
    @java.lang.Override
    public long getHedgePlanID() {
      return hedgePlanID_;
    }

    public static final int OPERATETYPE_FIELD_NUMBER = 3;
    private int operateType_;
    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
     * </pre>
     *
     * <code>optional uint32 OperateType = 3;</code>
     * @return Whether the operateType field is set.
     */
    @java.lang.Override
    public boolean hasOperateType() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
     * </pre>
     *
     * <code>optional uint32 OperateType = 3;</code>
     * @return The operateType.
     */
    @java.lang.Override
    public int getOperateType() {
      return operateType_;
    }

    public static final int OPERATESRC_FIELD_NUMBER = 4;
    private int operateSrc_;
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 4;</code>
     * @return Whether the operateSrc field is set.
     */
    @java.lang.Override
    public boolean hasOperateSrc() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 4;</code>
     * @return The operateSrc.
     */
    @java.lang.Override
    public int getOperateSrc() {
      return operateSrc_;
    }

    public static final int USERID_FIELD_NUMBER = 5;
    private long userID_;
    /**
     * <pre>
     * uint64 �����û�ID
     * </pre>
     *
     * <code>optional uint64 UserID = 5;</code>
     * @return Whether the userID field is set.
     */
    @java.lang.Override
    public boolean hasUserID() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint64 �����û�ID
     * </pre>
     *
     * <code>optional uint64 UserID = 5;</code>
     * @return The userID.
     */
    @java.lang.Override
    public long getUserID() {
      return userID_;
    }

    public static final int REMARK_FIELD_NUMBER = 6;
    private volatile java.lang.Object remark_;
    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return Whether the remark field is set.
     */
    @java.lang.Override
    public boolean hasRemark() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The remark.
     */
    @java.lang.Override
    public java.lang.String getRemark() {
      java.lang.Object ref = remark_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          remark_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The bytes for remark.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRemarkBytes() {
      java.lang.Object ref = remark_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        remark_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTTICKET_FIELD_NUMBER = 7;
    private volatile java.lang.Object clientTicket_;
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return Whether the clientTicket field is set.
     */
    @java.lang.Override
    public boolean hasClientTicket() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The clientTicket.
     */
    @java.lang.Override
    public java.lang.String getClientTicket() {
      java.lang.Object ref = clientTicket_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          clientTicket_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The bytes for clientTicket.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientTicketBytes() {
      java.lang.Object ref = clientTicket_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientTicket_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INFO_FIELD_NUMBER = 8;
    private ErmcpMI1.HedgePlanInfo info_;
    /**
     * <pre>
     * HedgePlanInfo �ױ��ƻ���Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.HedgePlanInfo Info = 8;</code>
     * @return Whether the info field is set.
     */
    @java.lang.Override
    public boolean hasInfo() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * HedgePlanInfo �ױ��ƻ���Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.HedgePlanInfo Info = 8;</code>
     * @return The info.
     */
    @java.lang.Override
    public ErmcpMI1.HedgePlanInfo getInfo() {
      return info_ == null ? ErmcpMI1.HedgePlanInfo.getDefaultInstance() : info_;
    }
    /**
     * <pre>
     * HedgePlanInfo �ױ��ƻ���Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.HedgePlanInfo Info = 8;</code>
     */
    @java.lang.Override
    public ErmcpMI1.HedgePlanInfoOrBuilder getInfoOrBuilder() {
      return info_ == null ? ErmcpMI1.HedgePlanInfo.getDefaultInstance() : info_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, hedgePlanID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, operateType_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, operateSrc_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt64(5, userID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, remark_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, clientTicket_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeMessage(8, getInfo());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, hedgePlanID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, operateType_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, operateSrc_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, userID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, remark_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, clientTicket_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getInfo());
      }
      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 ErmcpMI1.HedgePlanOperateReq)) {
        return super.equals(obj);
      }
      ErmcpMI1.HedgePlanOperateReq other = (ErmcpMI1.HedgePlanOperateReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasHedgePlanID() != other.hasHedgePlanID()) return false;
      if (hasHedgePlanID()) {
        if (getHedgePlanID()
            != other.getHedgePlanID()) return false;
      }
      if (hasOperateType() != other.hasOperateType()) return false;
      if (hasOperateType()) {
        if (getOperateType()
            != other.getOperateType()) return false;
      }
      if (hasOperateSrc() != other.hasOperateSrc()) return false;
      if (hasOperateSrc()) {
        if (getOperateSrc()
            != other.getOperateSrc()) return false;
      }
      if (hasUserID() != other.hasUserID()) return false;
      if (hasUserID()) {
        if (getUserID()
            != other.getUserID()) return false;
      }
      if (hasRemark() != other.hasRemark()) return false;
      if (hasRemark()) {
        if (!getRemark()
            .equals(other.getRemark())) return false;
      }
      if (hasClientTicket() != other.hasClientTicket()) return false;
      if (hasClientTicket()) {
        if (!getClientTicket()
            .equals(other.getClientTicket())) return false;
      }
      if (hasInfo() != other.hasInfo()) return false;
      if (hasInfo()) {
        if (!getInfo()
            .equals(other.getInfo())) 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 (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasHedgePlanID()) {
        hash = (37 * hash) + HEDGEPLANID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getHedgePlanID());
      }
      if (hasOperateType()) {
        hash = (37 * hash) + OPERATETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getOperateType();
      }
      if (hasOperateSrc()) {
        hash = (37 * hash) + OPERATESRC_FIELD_NUMBER;
        hash = (53 * hash) + getOperateSrc();
      }
      if (hasUserID()) {
        hash = (37 * hash) + USERID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getUserID());
      }
      if (hasRemark()) {
        hash = (37 * hash) + REMARK_FIELD_NUMBER;
        hash = (53 * hash) + getRemark().hashCode();
      }
      if (hasClientTicket()) {
        hash = (37 * hash) + CLIENTTICKET_FIELD_NUMBER;
        hash = (53 * hash) + getClientTicket().hashCode();
      }
      if (hasInfo()) {
        hash = (37 * hash) + INFO_FIELD_NUMBER;
        hash = (53 * hash) + getInfo().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ErmcpMI1.HedgePlanOperateReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.HedgePlanOperateReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.HedgePlanOperateReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.HedgePlanOperateReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.HedgePlanOperateReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.HedgePlanOperateReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.HedgePlanOperateReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.HedgePlanOperateReq 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 ErmcpMI1.HedgePlanOperateReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static ErmcpMI1.HedgePlanOperateReq 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 ErmcpMI1.HedgePlanOperateReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.HedgePlanOperateReq 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(ErmcpMI1.HedgePlanOperateReq 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>
     * �ױ��ƻ��������� 0 18 2
     * </pre>
     *
     * Protobuf type {@code ErmcpMI1.HedgePlanOperateReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ErmcpMI1.HedgePlanOperateReq)
        ErmcpMI1.HedgePlanOperateReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ErmcpMI1.internal_static_ErmcpMI1_HedgePlanOperateReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ErmcpMI1.internal_static_ErmcpMI1_HedgePlanOperateReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ErmcpMI1.HedgePlanOperateReq.class, ErmcpMI1.HedgePlanOperateReq.Builder.class);
      }

      // Construct using ErmcpMI1.HedgePlanOperateReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
          getInfoFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        hedgePlanID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        operateType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        operateSrc_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        userID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        remark_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        clientTicket_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        if (infoBuilder_ == null) {
          info_ = null;
        } else {
          infoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ErmcpMI1.internal_static_ErmcpMI1_HedgePlanOperateReq_descriptor;
      }

      @java.lang.Override
      public ErmcpMI1.HedgePlanOperateReq getDefaultInstanceForType() {
        return ErmcpMI1.HedgePlanOperateReq.getDefaultInstance();
      }

      @java.lang.Override
      public ErmcpMI1.HedgePlanOperateReq build() {
        ErmcpMI1.HedgePlanOperateReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ErmcpMI1.HedgePlanOperateReq buildPartial() {
        ErmcpMI1.HedgePlanOperateReq result = new ErmcpMI1.HedgePlanOperateReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.hedgePlanID_ = hedgePlanID_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.operateType_ = operateType_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.operateSrc_ = operateSrc_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.userID_ = userID_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.remark_ = remark_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000040;
        }
        result.clientTicket_ = clientTicket_;
        if (((from_bitField0_ & 0x00000080) != 0)) {
          if (infoBuilder_ == null) {
            result.info_ = info_;
          } else {
            result.info_ = infoBuilder_.build();
          }
          to_bitField0_ |= 0x00000080;
        }
        result.bitField0_ = to_bitField0_;
        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 ErmcpMI1.HedgePlanOperateReq) {
          return mergeFrom((ErmcpMI1.HedgePlanOperateReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ErmcpMI1.HedgePlanOperateReq other) {
        if (other == ErmcpMI1.HedgePlanOperateReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasHedgePlanID()) {
          setHedgePlanID(other.getHedgePlanID());
        }
        if (other.hasOperateType()) {
          setOperateType(other.getOperateType());
        }
        if (other.hasOperateSrc()) {
          setOperateSrc(other.getOperateSrc());
        }
        if (other.hasUserID()) {
          setUserID(other.getUserID());
        }
        if (other.hasRemark()) {
          bitField0_ |= 0x00000020;
          remark_ = other.remark_;
          onChanged();
        }
        if (other.hasClientTicket()) {
          bitField0_ |= 0x00000040;
          clientTicket_ = other.clientTicket_;
          onChanged();
        }
        if (other.hasInfo()) {
          mergeInfo(other.getInfo());
        }
        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 {
        ErmcpMI1.HedgePlanOperateReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (ErmcpMI1.HedgePlanOperateReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long hedgePlanID_ ;
      /**
       * <pre>
       * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 HedgePlanID = 2;</code>
       * @return Whether the hedgePlanID field is set.
       */
      @java.lang.Override
      public boolean hasHedgePlanID() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 HedgePlanID = 2;</code>
       * @return The hedgePlanID.
       */
      @java.lang.Override
      public long getHedgePlanID() {
        return hedgePlanID_;
      }
      /**
       * <pre>
       * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 HedgePlanID = 2;</code>
       * @param value The hedgePlanID to set.
       * @return This builder for chaining.
       */
      public Builder setHedgePlanID(long value) {
        bitField0_ |= 0x00000002;
        hedgePlanID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 HedgePlanID = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearHedgePlanID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        hedgePlanID_ = 0L;
        onChanged();
        return this;
      }

      private int operateType_ ;
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
       * </pre>
       *
       * <code>optional uint32 OperateType = 3;</code>
       * @return Whether the operateType field is set.
       */
      @java.lang.Override
      public boolean hasOperateType() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
       * </pre>
       *
       * <code>optional uint32 OperateType = 3;</code>
       * @return The operateType.
       */
      @java.lang.Override
      public int getOperateType() {
        return operateType_;
      }
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
       * </pre>
       *
       * <code>optional uint32 OperateType = 3;</code>
       * @param value The operateType to set.
       * @return This builder for chaining.
       */
      public Builder setOperateType(int value) {
        bitField0_ |= 0x00000004;
        operateType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
       * </pre>
       *
       * <code>optional uint32 OperateType = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        operateType_ = 0;
        onChanged();
        return this;
      }

      private int operateSrc_ ;
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 4;</code>
       * @return Whether the operateSrc field is set.
       */
      @java.lang.Override
      public boolean hasOperateSrc() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 4;</code>
       * @return The operateSrc.
       */
      @java.lang.Override
      public int getOperateSrc() {
        return operateSrc_;
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 4;</code>
       * @param value The operateSrc to set.
       * @return This builder for chaining.
       */
      public Builder setOperateSrc(int value) {
        bitField0_ |= 0x00000008;
        operateSrc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateSrc() {
        bitField0_ = (bitField0_ & ~0x00000008);
        operateSrc_ = 0;
        onChanged();
        return this;
      }

      private long userID_ ;
      /**
       * <pre>
       * uint64 �����û�ID
       * </pre>
       *
       * <code>optional uint64 UserID = 5;</code>
       * @return Whether the userID field is set.
       */
      @java.lang.Override
      public boolean hasUserID() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint64 �����û�ID
       * </pre>
       *
       * <code>optional uint64 UserID = 5;</code>
       * @return The userID.
       */
      @java.lang.Override
      public long getUserID() {
        return userID_;
      }
      /**
       * <pre>
       * uint64 �����û�ID
       * </pre>
       *
       * <code>optional uint64 UserID = 5;</code>
       * @param value The userID to set.
       * @return This builder for chaining.
       */
      public Builder setUserID(long value) {
        bitField0_ |= 0x00000010;
        userID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 �����û�ID
       * </pre>
       *
       * <code>optional uint64 UserID = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        userID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object remark_ = "";
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return Whether the remark field is set.
       */
      public boolean hasRemark() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return The remark.
       */
      public java.lang.String getRemark() {
        java.lang.Object ref = remark_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            remark_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return The bytes for remark.
       */
      public com.google.protobuf.ByteString
          getRemarkBytes() {
        java.lang.Object ref = remark_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          remark_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @param value The remark to set.
       * @return This builder for chaining.
       */
      public Builder setRemark(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        remark_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearRemark() {
        bitField0_ = (bitField0_ & ~0x00000020);
        remark_ = getDefaultInstance().getRemark();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @param value The bytes for remark to set.
       * @return This builder for chaining.
       */
      public Builder setRemarkBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        remark_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object clientTicket_ = "";
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return Whether the clientTicket field is set.
       */
      public boolean hasClientTicket() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return The clientTicket.
       */
      public java.lang.String getClientTicket() {
        java.lang.Object ref = clientTicket_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientTicket_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return The bytes for clientTicket.
       */
      public com.google.protobuf.ByteString
          getClientTicketBytes() {
        java.lang.Object ref = clientTicket_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientTicket_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @param value The clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicket(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        clientTicket_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientTicket() {
        bitField0_ = (bitField0_ & ~0x00000040);
        clientTicket_ = getDefaultInstance().getClientTicket();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @param value The bytes for clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicketBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        clientTicket_ = value;
        onChanged();
        return this;
      }

      private ErmcpMI1.HedgePlanInfo info_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ErmcpMI1.HedgePlanInfo, ErmcpMI1.HedgePlanInfo.Builder, ErmcpMI1.HedgePlanInfoOrBuilder> infoBuilder_;
      /**
       * <pre>
       * HedgePlanInfo �ױ��ƻ���Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.HedgePlanInfo Info = 8;</code>
       * @return Whether the info field is set.
       */
      public boolean hasInfo() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * HedgePlanInfo �ױ��ƻ���Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.HedgePlanInfo Info = 8;</code>
       * @return The info.
       */
      public ErmcpMI1.HedgePlanInfo getInfo() {
        if (infoBuilder_ == null) {
          return info_ == null ? ErmcpMI1.HedgePlanInfo.getDefaultInstance() : info_;
        } else {
          return infoBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * HedgePlanInfo �ױ��ƻ���Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.HedgePlanInfo Info = 8;</code>
       */
      public Builder setInfo(ErmcpMI1.HedgePlanInfo value) {
        if (infoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          info_ = value;
          onChanged();
        } else {
          infoBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <pre>
       * HedgePlanInfo �ױ��ƻ���Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.HedgePlanInfo Info = 8;</code>
       */
      public Builder setInfo(
          ErmcpMI1.HedgePlanInfo.Builder builderForValue) {
        if (infoBuilder_ == null) {
          info_ = builderForValue.build();
          onChanged();
        } else {
          infoBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <pre>
       * HedgePlanInfo �ױ��ƻ���Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.HedgePlanInfo Info = 8;</code>
       */
      public Builder mergeInfo(ErmcpMI1.HedgePlanInfo value) {
        if (infoBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0) &&
              info_ != null &&
              info_ != ErmcpMI1.HedgePlanInfo.getDefaultInstance()) {
            info_ =
              ErmcpMI1.HedgePlanInfo.newBuilder(info_).mergeFrom(value).buildPartial();
          } else {
            info_ = value;
          }
          onChanged();
        } else {
          infoBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <pre>
       * HedgePlanInfo �ױ��ƻ���Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.HedgePlanInfo Info = 8;</code>
       */
      public Builder clearInfo() {
        if (infoBuilder_ == null) {
          info_ = null;
          onChanged();
        } else {
          infoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       * <pre>
       * HedgePlanInfo �ױ��ƻ���Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.HedgePlanInfo Info = 8;</code>
       */
      public ErmcpMI1.HedgePlanInfo.Builder getInfoBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getInfoFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * HedgePlanInfo �ױ��ƻ���Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.HedgePlanInfo Info = 8;</code>
       */
      public ErmcpMI1.HedgePlanInfoOrBuilder getInfoOrBuilder() {
        if (infoBuilder_ != null) {
          return infoBuilder_.getMessageOrBuilder();
        } else {
          return info_ == null ?
              ErmcpMI1.HedgePlanInfo.getDefaultInstance() : info_;
        }
      }
      /**
       * <pre>
       * HedgePlanInfo �ױ��ƻ���Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.HedgePlanInfo Info = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ErmcpMI1.HedgePlanInfo, ErmcpMI1.HedgePlanInfo.Builder, ErmcpMI1.HedgePlanInfoOrBuilder>
          getInfoFieldBuilder() {
        if (infoBuilder_ == null) {
          infoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ErmcpMI1.HedgePlanInfo, ErmcpMI1.HedgePlanInfo.Builder, ErmcpMI1.HedgePlanInfoOrBuilder>(
                  getInfo(),
                  getParentForChildren(),
                  isClean());
          info_ = null;
        }
        return infoBuilder_;
      }
      @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:ErmcpMI1.HedgePlanOperateReq)
    }

    // @@protoc_insertion_point(class_scope:ErmcpMI1.HedgePlanOperateReq)
    private static final ErmcpMI1.HedgePlanOperateReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ErmcpMI1.HedgePlanOperateReq();
    }

    public static ErmcpMI1.HedgePlanOperateReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ErmcpMI1.HedgePlanOperateReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HedgePlanOperateRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ErmcpMI1.HedgePlanOperateRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 ������
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 ������
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 HedgePlanID = 4;</code>
     * @return Whether the hedgePlanID field is set.
     */
    boolean hasHedgePlanID();
    /**
     * <pre>
     * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 HedgePlanID = 4;</code>
     * @return The hedgePlanID.
     */
    long getHedgePlanID();

    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return Whether the operateType field is set.
     */
    boolean hasOperateType();
    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return The operateType.
     */
    int getOperateType();

    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 6;</code>
     * @return Whether the operateSrc field is set.
     */
    boolean hasOperateSrc();
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 6;</code>
     * @return The operateSrc.
     */
    int getOperateSrc();

    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return Whether the clientTicket field is set.
     */
    boolean hasClientTicket();
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The clientTicket.
     */
    java.lang.String getClientTicket();
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The bytes for clientTicket.
     */
    com.google.protobuf.ByteString
        getClientTicketBytes();
  }
  /**
   * <pre>
   * �ױ��ƻ�������Ӧ 0 18 3
   * </pre>
   *
   * Protobuf type {@code ErmcpMI1.HedgePlanOperateRsp}
   */
  public static final class HedgePlanOperateRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ErmcpMI1.HedgePlanOperateRsp)
      HedgePlanOperateRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HedgePlanOperateRsp.newBuilder() to construct.
    private HedgePlanOperateRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HedgePlanOperateRsp() {
      retDesc_ = "";
      clientTicket_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HedgePlanOperateRsp(
        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: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              hedgePlanID_ = input.readUInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              operateType_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              operateSrc_ = input.readUInt32();
              break;
            }
            case 58: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000040;
              clientTicket_ = bs;
              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 ErmcpMI1.internal_static_ErmcpMI1_HedgePlanOperateRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ErmcpMI1.internal_static_ErmcpMI1_HedgePlanOperateRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ErmcpMI1.HedgePlanOperateRsp.class, ErmcpMI1.HedgePlanOperateRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 ������
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 ������
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HEDGEPLANID_FIELD_NUMBER = 4;
    private long hedgePlanID_;
    /**
     * <pre>
     * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 HedgePlanID = 4;</code>
     * @return Whether the hedgePlanID field is set.
     */
    @java.lang.Override
    public boolean hasHedgePlanID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 HedgePlanID = 4;</code>
     * @return The hedgePlanID.
     */
    @java.lang.Override
    public long getHedgePlanID() {
      return hedgePlanID_;
    }

    public static final int OPERATETYPE_FIELD_NUMBER = 5;
    private int operateType_;
    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return Whether the operateType field is set.
     */
    @java.lang.Override
    public boolean hasOperateType() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return The operateType.
     */
    @java.lang.Override
    public int getOperateType() {
      return operateType_;
    }

    public static final int OPERATESRC_FIELD_NUMBER = 6;
    private int operateSrc_;
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 6;</code>
     * @return Whether the operateSrc field is set.
     */
    @java.lang.Override
    public boolean hasOperateSrc() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 6;</code>
     * @return The operateSrc.
     */
    @java.lang.Override
    public int getOperateSrc() {
      return operateSrc_;
    }

    public static final int CLIENTTICKET_FIELD_NUMBER = 7;
    private volatile java.lang.Object clientTicket_;
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return Whether the clientTicket field is set.
     */
    @java.lang.Override
    public boolean hasClientTicket() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The clientTicket.
     */
    @java.lang.Override
    public java.lang.String getClientTicket() {
      java.lang.Object ref = clientTicket_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          clientTicket_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The bytes for clientTicket.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientTicketBytes() {
      java.lang.Object ref = clientTicket_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientTicket_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, hedgePlanID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, operateType_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt32(6, operateSrc_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, clientTicket_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, hedgePlanID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, operateType_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, operateSrc_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, clientTicket_);
      }
      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 ErmcpMI1.HedgePlanOperateRsp)) {
        return super.equals(obj);
      }
      ErmcpMI1.HedgePlanOperateRsp other = (ErmcpMI1.HedgePlanOperateRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasHedgePlanID() != other.hasHedgePlanID()) return false;
      if (hasHedgePlanID()) {
        if (getHedgePlanID()
            != other.getHedgePlanID()) return false;
      }
      if (hasOperateType() != other.hasOperateType()) return false;
      if (hasOperateType()) {
        if (getOperateType()
            != other.getOperateType()) return false;
      }
      if (hasOperateSrc() != other.hasOperateSrc()) return false;
      if (hasOperateSrc()) {
        if (getOperateSrc()
            != other.getOperateSrc()) return false;
      }
      if (hasClientTicket() != other.hasClientTicket()) return false;
      if (hasClientTicket()) {
        if (!getClientTicket()
            .equals(other.getClientTicket())) 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 (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasHedgePlanID()) {
        hash = (37 * hash) + HEDGEPLANID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getHedgePlanID());
      }
      if (hasOperateType()) {
        hash = (37 * hash) + OPERATETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getOperateType();
      }
      if (hasOperateSrc()) {
        hash = (37 * hash) + OPERATESRC_FIELD_NUMBER;
        hash = (53 * hash) + getOperateSrc();
      }
      if (hasClientTicket()) {
        hash = (37 * hash) + CLIENTTICKET_FIELD_NUMBER;
        hash = (53 * hash) + getClientTicket().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ErmcpMI1.HedgePlanOperateRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.HedgePlanOperateRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.HedgePlanOperateRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.HedgePlanOperateRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.HedgePlanOperateRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.HedgePlanOperateRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.HedgePlanOperateRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.HedgePlanOperateRsp 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 ErmcpMI1.HedgePlanOperateRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static ErmcpMI1.HedgePlanOperateRsp 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 ErmcpMI1.HedgePlanOperateRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.HedgePlanOperateRsp 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(ErmcpMI1.HedgePlanOperateRsp 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>
     * �ױ��ƻ�������Ӧ 0 18 3
     * </pre>
     *
     * Protobuf type {@code ErmcpMI1.HedgePlanOperateRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ErmcpMI1.HedgePlanOperateRsp)
        ErmcpMI1.HedgePlanOperateRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ErmcpMI1.internal_static_ErmcpMI1_HedgePlanOperateRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ErmcpMI1.internal_static_ErmcpMI1_HedgePlanOperateRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ErmcpMI1.HedgePlanOperateRsp.class, ErmcpMI1.HedgePlanOperateRsp.Builder.class);
      }

      // Construct using ErmcpMI1.HedgePlanOperateRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        hedgePlanID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        operateType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        operateSrc_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        clientTicket_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ErmcpMI1.internal_static_ErmcpMI1_HedgePlanOperateRsp_descriptor;
      }

      @java.lang.Override
      public ErmcpMI1.HedgePlanOperateRsp getDefaultInstanceForType() {
        return ErmcpMI1.HedgePlanOperateRsp.getDefaultInstance();
      }

      @java.lang.Override
      public ErmcpMI1.HedgePlanOperateRsp build() {
        ErmcpMI1.HedgePlanOperateRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ErmcpMI1.HedgePlanOperateRsp buildPartial() {
        ErmcpMI1.HedgePlanOperateRsp result = new ErmcpMI1.HedgePlanOperateRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.hedgePlanID_ = hedgePlanID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.operateType_ = operateType_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.operateSrc_ = operateSrc_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000040;
        }
        result.clientTicket_ = clientTicket_;
        result.bitField0_ = to_bitField0_;
        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 ErmcpMI1.HedgePlanOperateRsp) {
          return mergeFrom((ErmcpMI1.HedgePlanOperateRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ErmcpMI1.HedgePlanOperateRsp other) {
        if (other == ErmcpMI1.HedgePlanOperateRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasHedgePlanID()) {
          setHedgePlanID(other.getHedgePlanID());
        }
        if (other.hasOperateType()) {
          setOperateType(other.getOperateType());
        }
        if (other.hasOperateSrc()) {
          setOperateSrc(other.getOperateSrc());
        }
        if (other.hasClientTicket()) {
          bitField0_ |= 0x00000040;
          clientTicket_ = other.clientTicket_;
          onChanged();
        }
        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 {
        ErmcpMI1.HedgePlanOperateRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (ErmcpMI1.HedgePlanOperateRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 ������
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 ������
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 ������
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 ������
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private long hedgePlanID_ ;
      /**
       * <pre>
       * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 HedgePlanID = 4;</code>
       * @return Whether the hedgePlanID field is set.
       */
      @java.lang.Override
      public boolean hasHedgePlanID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 HedgePlanID = 4;</code>
       * @return The hedgePlanID.
       */
      @java.lang.Override
      public long getHedgePlanID() {
        return hedgePlanID_;
      }
      /**
       * <pre>
       * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 HedgePlanID = 4;</code>
       * @param value The hedgePlanID to set.
       * @return This builder for chaining.
       */
      public Builder setHedgePlanID(long value) {
        bitField0_ |= 0x00000008;
        hedgePlanID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 �ױ��ƻ�ID(601+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 HedgePlanID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearHedgePlanID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        hedgePlanID_ = 0L;
        onChanged();
        return this;
      }

      private int operateType_ ;
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @return Whether the operateType field is set.
       */
      @java.lang.Override
      public boolean hasOperateType() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @return The operateType.
       */
      @java.lang.Override
      public int getOperateType() {
        return operateType_;
      }
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @param value The operateType to set.
       * @return This builder for chaining.
       */
      public Builder setOperateType(int value) {
        bitField0_ |= 0x00000010;
        operateType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        operateType_ = 0;
        onChanged();
        return this;
      }

      private int operateSrc_ ;
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 6;</code>
       * @return Whether the operateSrc field is set.
       */
      @java.lang.Override
      public boolean hasOperateSrc() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 6;</code>
       * @return The operateSrc.
       */
      @java.lang.Override
      public int getOperateSrc() {
        return operateSrc_;
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 6;</code>
       * @param value The operateSrc to set.
       * @return This builder for chaining.
       */
      public Builder setOperateSrc(int value) {
        bitField0_ |= 0x00000020;
        operateSrc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateSrc() {
        bitField0_ = (bitField0_ & ~0x00000020);
        operateSrc_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object clientTicket_ = "";
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return Whether the clientTicket field is set.
       */
      public boolean hasClientTicket() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return The clientTicket.
       */
      public java.lang.String getClientTicket() {
        java.lang.Object ref = clientTicket_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientTicket_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return The bytes for clientTicket.
       */
      public com.google.protobuf.ByteString
          getClientTicketBytes() {
        java.lang.Object ref = clientTicket_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientTicket_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @param value The clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicket(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        clientTicket_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientTicket() {
        bitField0_ = (bitField0_ & ~0x00000040);
        clientTicket_ = getDefaultInstance().getClientTicket();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @param value The bytes for clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicketBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        clientTicket_ = value;
        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:ErmcpMI1.HedgePlanOperateRsp)
    }

    // @@protoc_insertion_point(class_scope:ErmcpMI1.HedgePlanOperateRsp)
    private static final ErmcpMI1.HedgePlanOperateRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ErmcpMI1.HedgePlanOperateRsp();
    }

    public static ErmcpMI1.HedgePlanOperateRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ErmcpMI1.HedgePlanOperateRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SpotContractInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ErmcpMI1.SpotContractInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * string �ֻ���ͬ���
     * </pre>
     *
     * <code>optional string ContractNo = 1;</code>
     * @return Whether the contractNo field is set.
     */
    boolean hasContractNo();
    /**
     * <pre>
     * string �ֻ���ͬ���
     * </pre>
     *
     * <code>optional string ContractNo = 1;</code>
     * @return The contractNo.
     */
    java.lang.String getContractNo();
    /**
     * <pre>
     * string �ֻ���ͬ���
     * </pre>
     *
     * <code>optional string ContractNo = 1;</code>
     * @return The bytes for contractNo.
     */
    com.google.protobuf.ByteString
        getContractNoBytes();

    /**
     * <pre>
     * int32 �ֻ���ͬ����-1:�ɹ�-1:����
     * </pre>
     *
     * <code>optional int32 ContractType = 2;</code>
     * @return Whether the contractType field is set.
     */
    boolean hasContractType();
    /**
     * <pre>
     * int32 �ֻ���ͬ����-1:�ɹ�-1:����
     * </pre>
     *
     * <code>optional int32 ContractType = 2;</code>
     * @return The contractType.
     */
    int getContractType();

    /**
     * <pre>
     * uint32 ����ID
     * </pre>
     *
     * <code>optional uint32 UserID = 3;</code>
     * @return Whether the userID field is set.
     */
    boolean hasUserID();
    /**
     * <pre>
     * uint32 ����ID
     * </pre>
     *
     * <code>optional uint32 UserID = 3;</code>
     * @return The userID.
     */
    int getUserID();

    /**
     * <pre>
     * uint32 �ɹ���ID
     * </pre>
     *
     * <code>optional uint32 BuyUserID = 4;</code>
     * @return Whether the buyUserID field is set.
     */
    boolean hasBuyUserID();
    /**
     * <pre>
     * uint32 �ɹ���ID
     * </pre>
     *
     * <code>optional uint32 BuyUserID = 4;</code>
     * @return The buyUserID.
     */
    int getBuyUserID();

    /**
     * <pre>
     * uint32 �ͻ�ID
     * </pre>
     *
     * <code>optional uint32 SellUserID = 5;</code>
     * @return Whether the sellUserID field is set.
     */
    boolean hasSellUserID();
    /**
     * <pre>
     * uint32 �ͻ�ID
     * </pre>
     *
     * <code>optional uint32 SellUserID = 5;</code>
     * @return The sellUserID.
     */
    int getSellUserID();

    /**
     * <pre>
     * string ǩ������
     * </pre>
     *
     * <code>optional string SignDate = 6;</code>
     * @return Whether the signDate field is set.
     */
    boolean hasSignDate();
    /**
     * <pre>
     * string ǩ������
     * </pre>
     *
     * <code>optional string SignDate = 6;</code>
     * @return The signDate.
     */
    java.lang.String getSignDate();
    /**
     * <pre>
     * string ǩ������
     * </pre>
     *
     * <code>optional string SignDate = 6;</code>
     * @return The bytes for signDate.
     */
    com.google.protobuf.ByteString
        getSignDateBytes();

    /**
     * <pre>
     * bytes ��ͬ����
     * </pre>
     *
     * <code>optional bytes ContractAttachment = 7;</code>
     * @return Whether the contractAttachment field is set.
     */
    boolean hasContractAttachment();
    /**
     * <pre>
     * bytes ��ͬ����
     * </pre>
     *
     * <code>optional bytes ContractAttachment = 7;</code>
     * @return The contractAttachment.
     */
    com.google.protobuf.ByteString getContractAttachment();

    /**
     * <pre>
     * double ��ͬ��֤��
     * </pre>
     *
     * <code>optional double ContractMargin = 8;</code>
     * @return Whether the contractMargin field is set.
     */
    boolean hasContractMargin();
    /**
     * <pre>
     * double ��ͬ��֤��
     * </pre>
     *
     * <code>optional double ContractMargin = 8;</code>
     * @return The contractMargin.
     */
    double getContractMargin();

    /**
     * <pre>
     * uint32 �ֻ�Ʒ��ID
     * </pre>
     *
     * <code>optional uint32 DeliveryGoodsID = 9;</code>
     * @return Whether the deliveryGoodsID field is set.
     */
    boolean hasDeliveryGoodsID();
    /**
     * <pre>
     * uint32 �ֻ�Ʒ��ID
     * </pre>
     *
     * <code>optional uint32 DeliveryGoodsID = 9;</code>
     * @return The deliveryGoodsID.
     */
    int getDeliveryGoodsID();

    /**
     * <pre>
     * uint32 �ֻ���ƷID
     * </pre>
     *
     * <code>optional uint32 WrStandardID = 10;</code>
     * @return Whether the wrStandardID field is set.
     */
    boolean hasWrStandardID();
    /**
     * <pre>
     * uint32 �ֻ���ƷID
     * </pre>
     *
     * <code>optional uint32 WrStandardID = 10;</code>
     * @return The wrStandardID.
     */
    int getWrStandardID();

    /**
     * <pre>
     * string Ʒ��ID
     * </pre>
     *
     * <code>optional string BrandID = 11;</code>
     * @return Whether the brandID field is set.
     */
    boolean hasBrandID();
    /**
     * <pre>
     * string Ʒ��ID
     * </pre>
     *
     * <code>optional string BrandID = 11;</code>
     * @return The brandID.
     */
    java.lang.String getBrandID();
    /**
     * <pre>
     * string Ʒ��ID
     * </pre>
     *
     * <code>optional string BrandID = 11;</code>
     * @return The bytes for brandID.
     */
    com.google.protobuf.ByteString
        getBrandIDBytes();

    /**
     * <pre>
     * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
     * </pre>
     *
     * <code>optional uint32 ProductType = 12;</code>
     * @return Whether the productType field is set.
     */
    boolean hasProductType();
    /**
     * <pre>
     * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
     * </pre>
     *
     * <code>optional uint32 ProductType = 12;</code>
     * @return The productType.
     */
    int getProductType();

    /**
     * <pre>
     * double ���ϵ��
     * </pre>
     *
     * <code>optional double ConvertFactor = 13;</code>
     * @return Whether the convertFactor field is set.
     */
    boolean hasConvertFactor();
    /**
     * <pre>
     * double ���ϵ��
     * </pre>
     *
     * <code>optional double ConvertFactor = 13;</code>
     * @return The convertFactor.
     */
    double getConvertFactor();

    /**
     * <pre>
     * string ��Ʒ�ͺ�
     * </pre>
     *
     * <code>optional string SpotGoodsDesc = 14;</code>
     * @return Whether the spotGoodsDesc field is set.
     */
    boolean hasSpotGoodsDesc();
    /**
     * <pre>
     * string ��Ʒ�ͺ�
     * </pre>
     *
     * <code>optional string SpotGoodsDesc = 14;</code>
     * @return The spotGoodsDesc.
     */
    java.lang.String getSpotGoodsDesc();
    /**
     * <pre>
     * string ��Ʒ�ͺ�
     * </pre>
     *
     * <code>optional string SpotGoodsDesc = 14;</code>
     * @return The bytes for spotGoodsDesc.
     */
    com.google.protobuf.ByteString
        getSpotGoodsDescBytes();

    /**
     * <pre>
     * uint32 ��������-1:һ�ڼ�2:���3:�ݶ���
     * </pre>
     *
     * <code>optional uint32 PriceType = 15;</code>
     * @return Whether the priceType field is set.
     */
    boolean hasPriceType();
    /**
     * <pre>
     * uint32 ��������-1:һ�ڼ�2:���3:�ݶ���
     * </pre>
     *
     * <code>optional uint32 PriceType = 15;</code>
     * @return The priceType.
     */
    int getPriceType();

    /**
     * <pre>
     * double ����
     * </pre>
     *
     * <code>optional double Qty = 16;</code>
     * @return Whether the qty field is set.
     */
    boolean hasQty();
    /**
     * <pre>
     * double ����
     * </pre>
     *
     * <code>optional double Qty = 16;</code>
     * @return The qty.
     */
    double getQty();

    /**
     * <pre>
     * double �۸��ݶ���[1:һ�ڼۡ�3:�ݶ���]
     * </pre>
     *
     * <code>optional double Price = 17;</code>
     * @return Whether the price field is set.
     */
    boolean hasPrice();
    /**
     * <pre>
     * double �۸��ݶ���[1:һ�ڼۡ�3:�ݶ���]
     * </pre>
     *
     * <code>optional double Price = 17;</code>
     * @return The price.
     */
    double getPrice();

    /**
     * <pre>
     * double ���[1:һ�ڼۡ�3:�ݶ���]
     * </pre>
     *
     * <code>optional double Amount = 18;</code>
     * @return Whether the amount field is set.
     */
    boolean hasAmount();
    /**
     * <pre>
     * double ���[1:һ�ڼۡ�3:�ݶ���]
     * </pre>
     *
     * <code>optional double Amount = 18;</code>
     * @return The amount.
     */
    double getAmount();

    /**
     * <pre>
     * string ������(��ʼ)
     * </pre>
     *
     * <code>optional string DeliveryStartDate = 19;</code>
     * @return Whether the deliveryStartDate field is set.
     */
    boolean hasDeliveryStartDate();
    /**
     * <pre>
     * string ������(��ʼ)
     * </pre>
     *
     * <code>optional string DeliveryStartDate = 19;</code>
     * @return The deliveryStartDate.
     */
    java.lang.String getDeliveryStartDate();
    /**
     * <pre>
     * string ������(��ʼ)
     * </pre>
     *
     * <code>optional string DeliveryStartDate = 19;</code>
     * @return The bytes for deliveryStartDate.
     */
    com.google.protobuf.ByteString
        getDeliveryStartDateBytes();

    /**
     * <pre>
     * string ������(����)
     * </pre>
     *
     * <code>optional string DeliveryEndDate = 20;</code>
     * @return Whether the deliveryEndDate field is set.
     */
    boolean hasDeliveryEndDate();
    /**
     * <pre>
     * string ������(����)
     * </pre>
     *
     * <code>optional string DeliveryEndDate = 20;</code>
     * @return The deliveryEndDate.
     */
    java.lang.String getDeliveryEndDate();
    /**
     * <pre>
     * string ������(����)
     * </pre>
     *
     * <code>optional string DeliveryEndDate = 20;</code>
     * @return The bytes for deliveryEndDate.
     */
    com.google.protobuf.ByteString
        getDeliveryEndDateBytes();

    /**
     * <pre>
     * uint32 ��ۺ�ԼID-0:Ϊ�ֻ�������Ϊ�ڻ���Ʒ��ԼID[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional uint32 GoodsID = 21;</code>
     * @return Whether the goodsID field is set.
     */
    boolean hasGoodsID();
    /**
     * <pre>
     * uint32 ��ۺ�ԼID-0:Ϊ�ֻ�������Ϊ�ڻ���Ʒ��ԼID[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional uint32 GoodsID = 21;</code>
     * @return The goodsID.
     */
    int getGoodsID();

    /**
     * <pre>
     * double ����ˮ[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional double PriceMove = 22;</code>
     * @return Whether the priceMove field is set.
     */
    boolean hasPriceMove();
    /**
     * <pre>
     * double ����ˮ[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional double PriceMove = 22;</code>
     * @return The priceMove.
     */
    double getPriceMove();

    /**
     * <pre>
     * string ��ۿ�ʼ����[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string StartDate = 23;</code>
     * @return Whether the startDate field is set.
     */
    boolean hasStartDate();
    /**
     * <pre>
     * string ��ۿ�ʼ����[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string StartDate = 23;</code>
     * @return The startDate.
     */
    java.lang.String getStartDate();
    /**
     * <pre>
     * string ��ۿ�ʼ����[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string StartDate = 23;</code>
     * @return The bytes for startDate.
     */
    com.google.protobuf.ByteString
        getStartDateBytes();

    /**
     * <pre>
     * string ��۽�������[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string EndDate = 24;</code>
     * @return Whether the endDate field is set.
     */
    boolean hasEndDate();
    /**
     * <pre>
     * string ��۽�������[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string EndDate = 24;</code>
     * @return The endDate.
     */
    java.lang.String getEndDate();
    /**
     * <pre>
     * string ��۽�������[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string EndDate = 24;</code>
     * @return The bytes for endDate.
     */
    com.google.protobuf.ByteString
        getEndDateBytes();

    /**
     * <pre>
     * string ��۱�ע[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string PointDesc = 25;</code>
     * @return Whether the pointDesc field is set.
     */
    boolean hasPointDesc();
    /**
     * <pre>
     * string ��۱�ע[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string PointDesc = 25;</code>
     * @return The pointDesc.
     */
    java.lang.String getPointDesc();
    /**
     * <pre>
     * string ��۱�ע[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string PointDesc = 25;</code>
     * @return The bytes for pointDesc.
     */
    com.google.protobuf.ByteString
        getPointDescBytes();

    /**
     * <pre>
     * string ���շ�ʽ
     * </pre>
     *
     * <code>optional string DeliveryDesc = 26;</code>
     * @return Whether the deliveryDesc field is set.
     */
    boolean hasDeliveryDesc();
    /**
     * <pre>
     * string ���շ�ʽ
     * </pre>
     *
     * <code>optional string DeliveryDesc = 26;</code>
     * @return The deliveryDesc.
     */
    java.lang.String getDeliveryDesc();
    /**
     * <pre>
     * string ���շ�ʽ
     * </pre>
     *
     * <code>optional string DeliveryDesc = 26;</code>
     * @return The bytes for deliveryDesc.
     */
    com.google.protobuf.ByteString
        getDeliveryDescBytes();

    /**
     * <pre>
     * uint32 ����ԱID
     * </pre>
     *
     * <code>optional uint32 MerUserID = 27;</code>
     * @return Whether the merUserID field is set.
     */
    boolean hasMerUserID();
    /**
     * <pre>
     * uint32 ����ԱID
     * </pre>
     *
     * <code>optional uint32 MerUserID = 27;</code>
     * @return The merUserID.
     */
    int getMerUserID();

    /**
     * <pre>
     * uint32 ����ԱID
     * </pre>
     *
     * <code>optional uint32 TradeUserID = 28;</code>
     * @return Whether the tradeUserID field is set.
     */
    boolean hasTradeUserID();
    /**
     * <pre>
     * uint32 ����ԱID
     * </pre>
     *
     * <code>optional uint32 TradeUserID = 28;</code>
     * @return The tradeUserID.
     */
    int getTradeUserID();

    /**
     * <pre>
     * double �Ѷ�����
     * </pre>
     *
     * <code>optional double PricedQty = 29;</code>
     * @return Whether the pricedQty field is set.
     */
    boolean hasPricedQty();
    /**
     * <pre>
     * double �Ѷ�����
     * </pre>
     *
     * <code>optional double PricedQty = 29;</code>
     * @return The pricedQty.
     */
    double getPricedQty();

    /**
     * <pre>
     * double �Ѷ��۽��
     * </pre>
     *
     * <code>optional double PricedAmount = 30;</code>
     * @return Whether the pricedAmount field is set.
     */
    boolean hasPricedAmount();
    /**
     * <pre>
     * double �Ѷ��۽��
     * </pre>
     *
     * <code>optional double PricedAmount = 30;</code>
     * @return The pricedAmount.
     */
    double getPricedAmount();

    /**
     * <pre>
     * uint32 �ֻ��ͺ�ID
     * </pre>
     *
     * <code>optional uint32 SpotGoodsModelID = 31;</code>
     * @return Whether the spotGoodsModelID field is set.
     */
    boolean hasSpotGoodsModelID();
    /**
     * <pre>
     * uint32 �ֻ��ͺ�ID
     * </pre>
     *
     * <code>optional uint32 SpotGoodsModelID = 31;</code>
     * @return The spotGoodsModelID.
     */
    int getSpotGoodsModelID();

    /**
     * <pre>
     * uint32 �ֻ�Ʒ��ID
     * </pre>
     *
     * <code>optional uint32 SpotGoodsBrandID = 32;</code>
     * @return Whether the spotGoodsBrandID field is set.
     */
    boolean hasSpotGoodsBrandID();
    /**
     * <pre>
     * uint32 �ֻ�Ʒ��ID
     * </pre>
     *
     * <code>optional uint32 SpotGoodsBrandID = 32;</code>
     * @return The spotGoodsBrandID.
     */
    int getSpotGoodsBrandID();
  }
  /**
   * <pre>
   * �ֻ���ͬ��Ϣ 0 18 4
   * </pre>
   *
   * Protobuf type {@code ErmcpMI1.SpotContractInfo}
   */
  public static final class SpotContractInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ErmcpMI1.SpotContractInfo)
      SpotContractInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SpotContractInfo.newBuilder() to construct.
    private SpotContractInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SpotContractInfo() {
      contractNo_ = "";
      signDate_ = "";
      contractAttachment_ = com.google.protobuf.ByteString.EMPTY;
      brandID_ = "";
      spotGoodsDesc_ = "";
      deliveryStartDate_ = "";
      deliveryEndDate_ = "";
      startDate_ = "";
      endDate_ = "";
      pointDesc_ = "";
      deliveryDesc_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SpotContractInfo(
        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: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              contractNo_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              contractType_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              userID_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              buyUserID_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              sellUserID_ = input.readUInt32();
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              signDate_ = bs;
              break;
            }
            case 58: {
              bitField0_ |= 0x00000040;
              contractAttachment_ = input.readBytes();
              break;
            }
            case 65: {
              bitField0_ |= 0x00000080;
              contractMargin_ = input.readDouble();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              deliveryGoodsID_ = input.readUInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              wrStandardID_ = input.readUInt32();
              break;
            }
            case 90: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000400;
              brandID_ = bs;
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              productType_ = input.readUInt32();
              break;
            }
            case 105: {
              bitField0_ |= 0x00001000;
              convertFactor_ = input.readDouble();
              break;
            }
            case 114: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00002000;
              spotGoodsDesc_ = bs;
              break;
            }
            case 120: {
              bitField0_ |= 0x00004000;
              priceType_ = input.readUInt32();
              break;
            }
            case 129: {
              bitField0_ |= 0x00008000;
              qty_ = input.readDouble();
              break;
            }
            case 137: {
              bitField0_ |= 0x00010000;
              price_ = input.readDouble();
              break;
            }
            case 145: {
              bitField0_ |= 0x00020000;
              amount_ = input.readDouble();
              break;
            }
            case 154: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00040000;
              deliveryStartDate_ = bs;
              break;
            }
            case 162: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00080000;
              deliveryEndDate_ = bs;
              break;
            }
            case 168: {
              bitField0_ |= 0x00100000;
              goodsID_ = input.readUInt32();
              break;
            }
            case 177: {
              bitField0_ |= 0x00200000;
              priceMove_ = input.readDouble();
              break;
            }
            case 186: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00400000;
              startDate_ = bs;
              break;
            }
            case 194: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00800000;
              endDate_ = bs;
              break;
            }
            case 202: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x01000000;
              pointDesc_ = bs;
              break;
            }
            case 210: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x02000000;
              deliveryDesc_ = bs;
              break;
            }
            case 216: {
              bitField0_ |= 0x04000000;
              merUserID_ = input.readUInt32();
              break;
            }
            case 224: {
              bitField0_ |= 0x08000000;
              tradeUserID_ = input.readUInt32();
              break;
            }
            case 233: {
              bitField0_ |= 0x10000000;
              pricedQty_ = input.readDouble();
              break;
            }
            case 241: {
              bitField0_ |= 0x20000000;
              pricedAmount_ = input.readDouble();
              break;
            }
            case 248: {
              bitField0_ |= 0x40000000;
              spotGoodsModelID_ = input.readUInt32();
              break;
            }
            case 256: {
              bitField0_ |= 0x80000000;
              spotGoodsBrandID_ = input.readUInt32();
              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 ErmcpMI1.internal_static_ErmcpMI1_SpotContractInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ErmcpMI1.internal_static_ErmcpMI1_SpotContractInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ErmcpMI1.SpotContractInfo.class, ErmcpMI1.SpotContractInfo.Builder.class);
    }

    private int bitField0_;
    public static final int CONTRACTNO_FIELD_NUMBER = 1;
    private volatile java.lang.Object contractNo_;
    /**
     * <pre>
     * string �ֻ���ͬ���
     * </pre>
     *
     * <code>optional string ContractNo = 1;</code>
     * @return Whether the contractNo field is set.
     */
    @java.lang.Override
    public boolean hasContractNo() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * string �ֻ���ͬ���
     * </pre>
     *
     * <code>optional string ContractNo = 1;</code>
     * @return The contractNo.
     */
    @java.lang.Override
    public java.lang.String getContractNo() {
      java.lang.Object ref = contractNo_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          contractNo_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string �ֻ���ͬ���
     * </pre>
     *
     * <code>optional string ContractNo = 1;</code>
     * @return The bytes for contractNo.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getContractNoBytes() {
      java.lang.Object ref = contractNo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        contractNo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CONTRACTTYPE_FIELD_NUMBER = 2;
    private int contractType_;
    /**
     * <pre>
     * int32 �ֻ���ͬ����-1:�ɹ�-1:����
     * </pre>
     *
     * <code>optional int32 ContractType = 2;</code>
     * @return Whether the contractType field is set.
     */
    @java.lang.Override
    public boolean hasContractType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 �ֻ���ͬ����-1:�ɹ�-1:����
     * </pre>
     *
     * <code>optional int32 ContractType = 2;</code>
     * @return The contractType.
     */
    @java.lang.Override
    public int getContractType() {
      return contractType_;
    }

    public static final int USERID_FIELD_NUMBER = 3;
    private int userID_;
    /**
     * <pre>
     * uint32 ����ID
     * </pre>
     *
     * <code>optional uint32 UserID = 3;</code>
     * @return Whether the userID field is set.
     */
    @java.lang.Override
    public boolean hasUserID() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * uint32 ����ID
     * </pre>
     *
     * <code>optional uint32 UserID = 3;</code>
     * @return The userID.
     */
    @java.lang.Override
    public int getUserID() {
      return userID_;
    }

    public static final int BUYUSERID_FIELD_NUMBER = 4;
    private int buyUserID_;
    /**
     * <pre>
     * uint32 �ɹ���ID
     * </pre>
     *
     * <code>optional uint32 BuyUserID = 4;</code>
     * @return Whether the buyUserID field is set.
     */
    @java.lang.Override
    public boolean hasBuyUserID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint32 �ɹ���ID
     * </pre>
     *
     * <code>optional uint32 BuyUserID = 4;</code>
     * @return The buyUserID.
     */
    @java.lang.Override
    public int getBuyUserID() {
      return buyUserID_;
    }

    public static final int SELLUSERID_FIELD_NUMBER = 5;
    private int sellUserID_;
    /**
     * <pre>
     * uint32 �ͻ�ID
     * </pre>
     *
     * <code>optional uint32 SellUserID = 5;</code>
     * @return Whether the sellUserID field is set.
     */
    @java.lang.Override
    public boolean hasSellUserID() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint32 �ͻ�ID
     * </pre>
     *
     * <code>optional uint32 SellUserID = 5;</code>
     * @return The sellUserID.
     */
    @java.lang.Override
    public int getSellUserID() {
      return sellUserID_;
    }

    public static final int SIGNDATE_FIELD_NUMBER = 6;
    private volatile java.lang.Object signDate_;
    /**
     * <pre>
     * string ǩ������
     * </pre>
     *
     * <code>optional string SignDate = 6;</code>
     * @return Whether the signDate field is set.
     */
    @java.lang.Override
    public boolean hasSignDate() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * string ǩ������
     * </pre>
     *
     * <code>optional string SignDate = 6;</code>
     * @return The signDate.
     */
    @java.lang.Override
    public java.lang.String getSignDate() {
      java.lang.Object ref = signDate_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          signDate_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string ǩ������
     * </pre>
     *
     * <code>optional string SignDate = 6;</code>
     * @return The bytes for signDate.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSignDateBytes() {
      java.lang.Object ref = signDate_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        signDate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CONTRACTATTACHMENT_FIELD_NUMBER = 7;
    private com.google.protobuf.ByteString contractAttachment_;
    /**
     * <pre>
     * bytes ��ͬ����
     * </pre>
     *
     * <code>optional bytes ContractAttachment = 7;</code>
     * @return Whether the contractAttachment field is set.
     */
    @java.lang.Override
    public boolean hasContractAttachment() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * bytes ��ͬ����
     * </pre>
     *
     * <code>optional bytes ContractAttachment = 7;</code>
     * @return The contractAttachment.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getContractAttachment() {
      return contractAttachment_;
    }

    public static final int CONTRACTMARGIN_FIELD_NUMBER = 8;
    private double contractMargin_;
    /**
     * <pre>
     * double ��ͬ��֤��
     * </pre>
     *
     * <code>optional double ContractMargin = 8;</code>
     * @return Whether the contractMargin field is set.
     */
    @java.lang.Override
    public boolean hasContractMargin() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * double ��ͬ��֤��
     * </pre>
     *
     * <code>optional double ContractMargin = 8;</code>
     * @return The contractMargin.
     */
    @java.lang.Override
    public double getContractMargin() {
      return contractMargin_;
    }

    public static final int DELIVERYGOODSID_FIELD_NUMBER = 9;
    private int deliveryGoodsID_;
    /**
     * <pre>
     * uint32 �ֻ�Ʒ��ID
     * </pre>
     *
     * <code>optional uint32 DeliveryGoodsID = 9;</code>
     * @return Whether the deliveryGoodsID field is set.
     */
    @java.lang.Override
    public boolean hasDeliveryGoodsID() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <pre>
     * uint32 �ֻ�Ʒ��ID
     * </pre>
     *
     * <code>optional uint32 DeliveryGoodsID = 9;</code>
     * @return The deliveryGoodsID.
     */
    @java.lang.Override
    public int getDeliveryGoodsID() {
      return deliveryGoodsID_;
    }

    public static final int WRSTANDARDID_FIELD_NUMBER = 10;
    private int wrStandardID_;
    /**
     * <pre>
     * uint32 �ֻ���ƷID
     * </pre>
     *
     * <code>optional uint32 WrStandardID = 10;</code>
     * @return Whether the wrStandardID field is set.
     */
    @java.lang.Override
    public boolean hasWrStandardID() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * uint32 �ֻ���ƷID
     * </pre>
     *
     * <code>optional uint32 WrStandardID = 10;</code>
     * @return The wrStandardID.
     */
    @java.lang.Override
    public int getWrStandardID() {
      return wrStandardID_;
    }

    public static final int BRANDID_FIELD_NUMBER = 11;
    private volatile java.lang.Object brandID_;
    /**
     * <pre>
     * string Ʒ��ID
     * </pre>
     *
     * <code>optional string BrandID = 11;</code>
     * @return Whether the brandID field is set.
     */
    @java.lang.Override
    public boolean hasBrandID() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * string Ʒ��ID
     * </pre>
     *
     * <code>optional string BrandID = 11;</code>
     * @return The brandID.
     */
    @java.lang.Override
    public java.lang.String getBrandID() {
      java.lang.Object ref = brandID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          brandID_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string Ʒ��ID
     * </pre>
     *
     * <code>optional string BrandID = 11;</code>
     * @return The bytes for brandID.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBrandIDBytes() {
      java.lang.Object ref = brandID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        brandID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PRODUCTTYPE_FIELD_NUMBER = 12;
    private int productType_;
    /**
     * <pre>
     * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
     * </pre>
     *
     * <code>optional uint32 ProductType = 12;</code>
     * @return Whether the productType field is set.
     */
    @java.lang.Override
    public boolean hasProductType() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
     * </pre>
     *
     * <code>optional uint32 ProductType = 12;</code>
     * @return The productType.
     */
    @java.lang.Override
    public int getProductType() {
      return productType_;
    }

    public static final int CONVERTFACTOR_FIELD_NUMBER = 13;
    private double convertFactor_;
    /**
     * <pre>
     * double ���ϵ��
     * </pre>
     *
     * <code>optional double ConvertFactor = 13;</code>
     * @return Whether the convertFactor field is set.
     */
    @java.lang.Override
    public boolean hasConvertFactor() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <pre>
     * double ���ϵ��
     * </pre>
     *
     * <code>optional double ConvertFactor = 13;</code>
     * @return The convertFactor.
     */
    @java.lang.Override
    public double getConvertFactor() {
      return convertFactor_;
    }

    public static final int SPOTGOODSDESC_FIELD_NUMBER = 14;
    private volatile java.lang.Object spotGoodsDesc_;
    /**
     * <pre>
     * string ��Ʒ�ͺ�
     * </pre>
     *
     * <code>optional string SpotGoodsDesc = 14;</code>
     * @return Whether the spotGoodsDesc field is set.
     */
    @java.lang.Override
    public boolean hasSpotGoodsDesc() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <pre>
     * string ��Ʒ�ͺ�
     * </pre>
     *
     * <code>optional string SpotGoodsDesc = 14;</code>
     * @return The spotGoodsDesc.
     */
    @java.lang.Override
    public java.lang.String getSpotGoodsDesc() {
      java.lang.Object ref = spotGoodsDesc_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          spotGoodsDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string ��Ʒ�ͺ�
     * </pre>
     *
     * <code>optional string SpotGoodsDesc = 14;</code>
     * @return The bytes for spotGoodsDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSpotGoodsDescBytes() {
      java.lang.Object ref = spotGoodsDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        spotGoodsDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PRICETYPE_FIELD_NUMBER = 15;
    private int priceType_;
    /**
     * <pre>
     * uint32 ��������-1:һ�ڼ�2:���3:�ݶ���
     * </pre>
     *
     * <code>optional uint32 PriceType = 15;</code>
     * @return Whether the priceType field is set.
     */
    @java.lang.Override
    public boolean hasPriceType() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <pre>
     * uint32 ��������-1:һ�ڼ�2:���3:�ݶ���
     * </pre>
     *
     * <code>optional uint32 PriceType = 15;</code>
     * @return The priceType.
     */
    @java.lang.Override
    public int getPriceType() {
      return priceType_;
    }

    public static final int QTY_FIELD_NUMBER = 16;
    private double qty_;
    /**
     * <pre>
     * double ����
     * </pre>
     *
     * <code>optional double Qty = 16;</code>
     * @return Whether the qty field is set.
     */
    @java.lang.Override
    public boolean hasQty() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <pre>
     * double ����
     * </pre>
     *
     * <code>optional double Qty = 16;</code>
     * @return The qty.
     */
    @java.lang.Override
    public double getQty() {
      return qty_;
    }

    public static final int PRICE_FIELD_NUMBER = 17;
    private double price_;
    /**
     * <pre>
     * double �۸��ݶ���[1:һ�ڼۡ�3:�ݶ���]
     * </pre>
     *
     * <code>optional double Price = 17;</code>
     * @return Whether the price field is set.
     */
    @java.lang.Override
    public boolean hasPrice() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <pre>
     * double �۸��ݶ���[1:һ�ڼۡ�3:�ݶ���]
     * </pre>
     *
     * <code>optional double Price = 17;</code>
     * @return The price.
     */
    @java.lang.Override
    public double getPrice() {
      return price_;
    }

    public static final int AMOUNT_FIELD_NUMBER = 18;
    private double amount_;
    /**
     * <pre>
     * double ���[1:һ�ڼۡ�3:�ݶ���]
     * </pre>
     *
     * <code>optional double Amount = 18;</code>
     * @return Whether the amount field is set.
     */
    @java.lang.Override
    public boolean hasAmount() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <pre>
     * double ���[1:һ�ڼۡ�3:�ݶ���]
     * </pre>
     *
     * <code>optional double Amount = 18;</code>
     * @return The amount.
     */
    @java.lang.Override
    public double getAmount() {
      return amount_;
    }

    public static final int DELIVERYSTARTDATE_FIELD_NUMBER = 19;
    private volatile java.lang.Object deliveryStartDate_;
    /**
     * <pre>
     * string ������(��ʼ)
     * </pre>
     *
     * <code>optional string DeliveryStartDate = 19;</code>
     * @return Whether the deliveryStartDate field is set.
     */
    @java.lang.Override
    public boolean hasDeliveryStartDate() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <pre>
     * string ������(��ʼ)
     * </pre>
     *
     * <code>optional string DeliveryStartDate = 19;</code>
     * @return The deliveryStartDate.
     */
    @java.lang.Override
    public java.lang.String getDeliveryStartDate() {
      java.lang.Object ref = deliveryStartDate_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          deliveryStartDate_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string ������(��ʼ)
     * </pre>
     *
     * <code>optional string DeliveryStartDate = 19;</code>
     * @return The bytes for deliveryStartDate.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDeliveryStartDateBytes() {
      java.lang.Object ref = deliveryStartDate_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deliveryStartDate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DELIVERYENDDATE_FIELD_NUMBER = 20;
    private volatile java.lang.Object deliveryEndDate_;
    /**
     * <pre>
     * string ������(����)
     * </pre>
     *
     * <code>optional string DeliveryEndDate = 20;</code>
     * @return Whether the deliveryEndDate field is set.
     */
    @java.lang.Override
    public boolean hasDeliveryEndDate() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <pre>
     * string ������(����)
     * </pre>
     *
     * <code>optional string DeliveryEndDate = 20;</code>
     * @return The deliveryEndDate.
     */
    @java.lang.Override
    public java.lang.String getDeliveryEndDate() {
      java.lang.Object ref = deliveryEndDate_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          deliveryEndDate_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string ������(����)
     * </pre>
     *
     * <code>optional string DeliveryEndDate = 20;</code>
     * @return The bytes for deliveryEndDate.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDeliveryEndDateBytes() {
      java.lang.Object ref = deliveryEndDate_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deliveryEndDate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int GOODSID_FIELD_NUMBER = 21;
    private int goodsID_;
    /**
     * <pre>
     * uint32 ��ۺ�ԼID-0:Ϊ�ֻ�������Ϊ�ڻ���Ʒ��ԼID[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional uint32 GoodsID = 21;</code>
     * @return Whether the goodsID field is set.
     */
    @java.lang.Override
    public boolean hasGoodsID() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * <pre>
     * uint32 ��ۺ�ԼID-0:Ϊ�ֻ�������Ϊ�ڻ���Ʒ��ԼID[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional uint32 GoodsID = 21;</code>
     * @return The goodsID.
     */
    @java.lang.Override
    public int getGoodsID() {
      return goodsID_;
    }

    public static final int PRICEMOVE_FIELD_NUMBER = 22;
    private double priceMove_;
    /**
     * <pre>
     * double ����ˮ[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional double PriceMove = 22;</code>
     * @return Whether the priceMove field is set.
     */
    @java.lang.Override
    public boolean hasPriceMove() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * <pre>
     * double ����ˮ[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional double PriceMove = 22;</code>
     * @return The priceMove.
     */
    @java.lang.Override
    public double getPriceMove() {
      return priceMove_;
    }

    public static final int STARTDATE_FIELD_NUMBER = 23;
    private volatile java.lang.Object startDate_;
    /**
     * <pre>
     * string ��ۿ�ʼ����[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string StartDate = 23;</code>
     * @return Whether the startDate field is set.
     */
    @java.lang.Override
    public boolean hasStartDate() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * <pre>
     * string ��ۿ�ʼ����[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string StartDate = 23;</code>
     * @return The startDate.
     */
    @java.lang.Override
    public java.lang.String getStartDate() {
      java.lang.Object ref = startDate_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          startDate_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string ��ۿ�ʼ����[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string StartDate = 23;</code>
     * @return The bytes for startDate.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getStartDateBytes() {
      java.lang.Object ref = startDate_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        startDate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ENDDATE_FIELD_NUMBER = 24;
    private volatile java.lang.Object endDate_;
    /**
     * <pre>
     * string ��۽�������[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string EndDate = 24;</code>
     * @return Whether the endDate field is set.
     */
    @java.lang.Override
    public boolean hasEndDate() {
      return ((bitField0_ & 0x00800000) != 0);
    }
    /**
     * <pre>
     * string ��۽�������[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string EndDate = 24;</code>
     * @return The endDate.
     */
    @java.lang.Override
    public java.lang.String getEndDate() {
      java.lang.Object ref = endDate_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          endDate_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string ��۽�������[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string EndDate = 24;</code>
     * @return The bytes for endDate.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getEndDateBytes() {
      java.lang.Object ref = endDate_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        endDate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int POINTDESC_FIELD_NUMBER = 25;
    private volatile java.lang.Object pointDesc_;
    /**
     * <pre>
     * string ��۱�ע[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string PointDesc = 25;</code>
     * @return Whether the pointDesc field is set.
     */
    @java.lang.Override
    public boolean hasPointDesc() {
      return ((bitField0_ & 0x01000000) != 0);
    }
    /**
     * <pre>
     * string ��۱�ע[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string PointDesc = 25;</code>
     * @return The pointDesc.
     */
    @java.lang.Override
    public java.lang.String getPointDesc() {
      java.lang.Object ref = pointDesc_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          pointDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string ��۱�ע[2:���3:�ݶ���]
     * </pre>
     *
     * <code>optional string PointDesc = 25;</code>
     * @return The bytes for pointDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPointDescBytes() {
      java.lang.Object ref = pointDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        pointDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DELIVERYDESC_FIELD_NUMBER = 26;
    private volatile java.lang.Object deliveryDesc_;
    /**
     * <pre>
     * string ���շ�ʽ
     * </pre>
     *
     * <code>optional string DeliveryDesc = 26;</code>
     * @return Whether the deliveryDesc field is set.
     */
    @java.lang.Override
    public boolean hasDeliveryDesc() {
      return ((bitField0_ & 0x02000000) != 0);
    }
    /**
     * <pre>
     * string ���շ�ʽ
     * </pre>
     *
     * <code>optional string DeliveryDesc = 26;</code>
     * @return The deliveryDesc.
     */
    @java.lang.Override
    public java.lang.String getDeliveryDesc() {
      java.lang.Object ref = deliveryDesc_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          deliveryDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string ���շ�ʽ
     * </pre>
     *
     * <code>optional string DeliveryDesc = 26;</code>
     * @return The bytes for deliveryDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDeliveryDescBytes() {
      java.lang.Object ref = deliveryDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deliveryDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MERUSERID_FIELD_NUMBER = 27;
    private int merUserID_;
    /**
     * <pre>
     * uint32 ����ԱID
     * </pre>
     *
     * <code>optional uint32 MerUserID = 27;</code>
     * @return Whether the merUserID field is set.
     */
    @java.lang.Override
    public boolean hasMerUserID() {
      return ((bitField0_ & 0x04000000) != 0);
    }
    /**
     * <pre>
     * uint32 ����ԱID
     * </pre>
     *
     * <code>optional uint32 MerUserID = 27;</code>
     * @return The merUserID.
     */
    @java.lang.Override
    public int getMerUserID() {
      return merUserID_;
    }

    public static final int TRADEUSERID_FIELD_NUMBER = 28;
    private int tradeUserID_;
    /**
     * <pre>
     * uint32 ����ԱID
     * </pre>
     *
     * <code>optional uint32 TradeUserID = 28;</code>
     * @return Whether the tradeUserID field is set.
     */
    @java.lang.Override
    public boolean hasTradeUserID() {
      return ((bitField0_ & 0x08000000) != 0);
    }
    /**
     * <pre>
     * uint32 ����ԱID
     * </pre>
     *
     * <code>optional uint32 TradeUserID = 28;</code>
     * @return The tradeUserID.
     */
    @java.lang.Override
    public int getTradeUserID() {
      return tradeUserID_;
    }

    public static final int PRICEDQTY_FIELD_NUMBER = 29;
    private double pricedQty_;
    /**
     * <pre>
     * double �Ѷ�����
     * </pre>
     *
     * <code>optional double PricedQty = 29;</code>
     * @return Whether the pricedQty field is set.
     */
    @java.lang.Override
    public boolean hasPricedQty() {
      return ((bitField0_ & 0x10000000) != 0);
    }
    /**
     * <pre>
     * double �Ѷ�����
     * </pre>
     *
     * <code>optional double PricedQty = 29;</code>
     * @return The pricedQty.
     */
    @java.lang.Override
    public double getPricedQty() {
      return pricedQty_;
    }

    public static final int PRICEDAMOUNT_FIELD_NUMBER = 30;
    private double pricedAmount_;
    /**
     * <pre>
     * double �Ѷ��۽��
     * </pre>
     *
     * <code>optional double PricedAmount = 30;</code>
     * @return Whether the pricedAmount field is set.
     */
    @java.lang.Override
    public boolean hasPricedAmount() {
      return ((bitField0_ & 0x20000000) != 0);
    }
    /**
     * <pre>
     * double �Ѷ��۽��
     * </pre>
     *
     * <code>optional double PricedAmount = 30;</code>
     * @return The pricedAmount.
     */
    @java.lang.Override
    public double getPricedAmount() {
      return pricedAmount_;
    }

    public static final int SPOTGOODSMODELID_FIELD_NUMBER = 31;
    private int spotGoodsModelID_;
    /**
     * <pre>
     * uint32 �ֻ��ͺ�ID
     * </pre>
     *
     * <code>optional uint32 SpotGoodsModelID = 31;</code>
     * @return Whether the spotGoodsModelID field is set.
     */
    @java.lang.Override
    public boolean hasSpotGoodsModelID() {
      return ((bitField0_ & 0x40000000) != 0);
    }
    /**
     * <pre>
     * uint32 �ֻ��ͺ�ID
     * </pre>
     *
     * <code>optional uint32 SpotGoodsModelID = 31;</code>
     * @return The spotGoodsModelID.
     */
    @java.lang.Override
    public int getSpotGoodsModelID() {
      return spotGoodsModelID_;
    }

    public static final int SPOTGOODSBRANDID_FIELD_NUMBER = 32;
    private int spotGoodsBrandID_;
    /**
     * <pre>
     * uint32 �ֻ�Ʒ��ID
     * </pre>
     *
     * <code>optional uint32 SpotGoodsBrandID = 32;</code>
     * @return Whether the spotGoodsBrandID field is set.
     */
    @java.lang.Override
    public boolean hasSpotGoodsBrandID() {
      return ((bitField0_ & 0x80000000) != 0);
    }
    /**
     * <pre>
     * uint32 �ֻ�Ʒ��ID
     * </pre>
     *
     * <code>optional uint32 SpotGoodsBrandID = 32;</code>
     * @return The spotGoodsBrandID.
     */
    @java.lang.Override
    public int getSpotGoodsBrandID() {
      return spotGoodsBrandID_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, contractNo_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, contractType_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, userID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, buyUserID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, sellUserID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, signDate_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeBytes(7, contractAttachment_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeDouble(8, contractMargin_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeUInt32(9, deliveryGoodsID_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeUInt32(10, wrStandardID_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, brandID_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeUInt32(12, productType_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeDouble(13, convertFactor_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 14, spotGoodsDesc_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        output.writeUInt32(15, priceType_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeDouble(16, qty_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        output.writeDouble(17, price_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeDouble(18, amount_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 19, deliveryStartDate_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 20, deliveryEndDate_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        output.writeUInt32(21, goodsID_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        output.writeDouble(22, priceMove_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 23, startDate_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 24, endDate_);
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 25, pointDesc_);
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 26, deliveryDesc_);
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        output.writeUInt32(27, merUserID_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        output.writeUInt32(28, tradeUserID_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        output.writeDouble(29, pricedQty_);
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        output.writeDouble(30, pricedAmount_);
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        output.writeUInt32(31, spotGoodsModelID_);
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        output.writeUInt32(32, spotGoodsBrandID_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, contractNo_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, contractType_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, userID_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, buyUserID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, sellUserID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, signDate_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(7, contractAttachment_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(8, contractMargin_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, deliveryGoodsID_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(10, wrStandardID_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, brandID_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(12, productType_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(13, convertFactor_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, spotGoodsDesc_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(15, priceType_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(16, qty_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(17, price_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(18, amount_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, deliveryStartDate_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, deliveryEndDate_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(21, goodsID_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(22, priceMove_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(23, startDate_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(24, endDate_);
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(25, pointDesc_);
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(26, deliveryDesc_);
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(27, merUserID_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(28, tradeUserID_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(29, pricedQty_);
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(30, pricedAmount_);
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(31, spotGoodsModelID_);
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(32, spotGoodsBrandID_);
      }
      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 ErmcpMI1.SpotContractInfo)) {
        return super.equals(obj);
      }
      ErmcpMI1.SpotContractInfo other = (ErmcpMI1.SpotContractInfo) obj;

      if (hasContractNo() != other.hasContractNo()) return false;
      if (hasContractNo()) {
        if (!getContractNo()
            .equals(other.getContractNo())) return false;
      }
      if (hasContractType() != other.hasContractType()) return false;
      if (hasContractType()) {
        if (getContractType()
            != other.getContractType()) return false;
      }
      if (hasUserID() != other.hasUserID()) return false;
      if (hasUserID()) {
        if (getUserID()
            != other.getUserID()) return false;
      }
      if (hasBuyUserID() != other.hasBuyUserID()) return false;
      if (hasBuyUserID()) {
        if (getBuyUserID()
            != other.getBuyUserID()) return false;
      }
      if (hasSellUserID() != other.hasSellUserID()) return false;
      if (hasSellUserID()) {
        if (getSellUserID()
            != other.getSellUserID()) return false;
      }
      if (hasSignDate() != other.hasSignDate()) return false;
      if (hasSignDate()) {
        if (!getSignDate()
            .equals(other.getSignDate())) return false;
      }
      if (hasContractAttachment() != other.hasContractAttachment()) return false;
      if (hasContractAttachment()) {
        if (!getContractAttachment()
            .equals(other.getContractAttachment())) return false;
      }
      if (hasContractMargin() != other.hasContractMargin()) return false;
      if (hasContractMargin()) {
        if (java.lang.Double.doubleToLongBits(getContractMargin())
            != java.lang.Double.doubleToLongBits(
                other.getContractMargin())) return false;
      }
      if (hasDeliveryGoodsID() != other.hasDeliveryGoodsID()) return false;
      if (hasDeliveryGoodsID()) {
        if (getDeliveryGoodsID()
            != other.getDeliveryGoodsID()) return false;
      }
      if (hasWrStandardID() != other.hasWrStandardID()) return false;
      if (hasWrStandardID()) {
        if (getWrStandardID()
            != other.getWrStandardID()) return false;
      }
      if (hasBrandID() != other.hasBrandID()) return false;
      if (hasBrandID()) {
        if (!getBrandID()
            .equals(other.getBrandID())) return false;
      }
      if (hasProductType() != other.hasProductType()) return false;
      if (hasProductType()) {
        if (getProductType()
            != other.getProductType()) return false;
      }
      if (hasConvertFactor() != other.hasConvertFactor()) return false;
      if (hasConvertFactor()) {
        if (java.lang.Double.doubleToLongBits(getConvertFactor())
            != java.lang.Double.doubleToLongBits(
                other.getConvertFactor())) return false;
      }
      if (hasSpotGoodsDesc() != other.hasSpotGoodsDesc()) return false;
      if (hasSpotGoodsDesc()) {
        if (!getSpotGoodsDesc()
            .equals(other.getSpotGoodsDesc())) return false;
      }
      if (hasPriceType() != other.hasPriceType()) return false;
      if (hasPriceType()) {
        if (getPriceType()
            != other.getPriceType()) return false;
      }
      if (hasQty() != other.hasQty()) return false;
      if (hasQty()) {
        if (java.lang.Double.doubleToLongBits(getQty())
            != java.lang.Double.doubleToLongBits(
                other.getQty())) return false;
      }
      if (hasPrice() != other.hasPrice()) return false;
      if (hasPrice()) {
        if (java.lang.Double.doubleToLongBits(getPrice())
            != java.lang.Double.doubleToLongBits(
                other.getPrice())) return false;
      }
      if (hasAmount() != other.hasAmount()) return false;
      if (hasAmount()) {
        if (java.lang.Double.doubleToLongBits(getAmount())
            != java.lang.Double.doubleToLongBits(
                other.getAmount())) return false;
      }
      if (hasDeliveryStartDate() != other.hasDeliveryStartDate()) return false;
      if (hasDeliveryStartDate()) {
        if (!getDeliveryStartDate()
            .equals(other.getDeliveryStartDate())) return false;
      }
      if (hasDeliveryEndDate() != other.hasDeliveryEndDate()) return false;
      if (hasDeliveryEndDate()) {
        if (!getDeliveryEndDate()
            .equals(other.getDeliveryEndDate())) return false;
      }
      if (hasGoodsID() != other.hasGoodsID()) return false;
      if (hasGoodsID()) {
        if (getGoodsID()
            != other.getGoodsID()) return false;
      }
      if (hasPriceMove() != other.hasPriceMove()) return false;
      if (hasPriceMove()) {
        if (java.lang.Double.doubleToLongBits(getPriceMove())
            != java.lang.Double.doubleToLongBits(
                other.getPriceMove())) return false;
      }
      if (hasStartDate() != other.hasStartDate()) return false;
      if (hasStartDate()) {
        if (!getStartDate()
            .equals(other.getStartDate())) return false;
      }
      if (hasEndDate() != other.hasEndDate()) return false;
      if (hasEndDate()) {
        if (!getEndDate()
            .equals(other.getEndDate())) return false;
      }
      if (hasPointDesc() != other.hasPointDesc()) return false;
      if (hasPointDesc()) {
        if (!getPointDesc()
            .equals(other.getPointDesc())) return false;
      }
      if (hasDeliveryDesc() != other.hasDeliveryDesc()) return false;
      if (hasDeliveryDesc()) {
        if (!getDeliveryDesc()
            .equals(other.getDeliveryDesc())) return false;
      }
      if (hasMerUserID() != other.hasMerUserID()) return false;
      if (hasMerUserID()) {
        if (getMerUserID()
            != other.getMerUserID()) return false;
      }
      if (hasTradeUserID() != other.hasTradeUserID()) return false;
      if (hasTradeUserID()) {
        if (getTradeUserID()
            != other.getTradeUserID()) return false;
      }
      if (hasPricedQty() != other.hasPricedQty()) return false;
      if (hasPricedQty()) {
        if (java.lang.Double.doubleToLongBits(getPricedQty())
            != java.lang.Double.doubleToLongBits(
                other.getPricedQty())) return false;
      }
      if (hasPricedAmount() != other.hasPricedAmount()) return false;
      if (hasPricedAmount()) {
        if (java.lang.Double.doubleToLongBits(getPricedAmount())
            != java.lang.Double.doubleToLongBits(
                other.getPricedAmount())) return false;
      }
      if (hasSpotGoodsModelID() != other.hasSpotGoodsModelID()) return false;
      if (hasSpotGoodsModelID()) {
        if (getSpotGoodsModelID()
            != other.getSpotGoodsModelID()) return false;
      }
      if (hasSpotGoodsBrandID() != other.hasSpotGoodsBrandID()) return false;
      if (hasSpotGoodsBrandID()) {
        if (getSpotGoodsBrandID()
            != other.getSpotGoodsBrandID()) 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 (hasContractNo()) {
        hash = (37 * hash) + CONTRACTNO_FIELD_NUMBER;
        hash = (53 * hash) + getContractNo().hashCode();
      }
      if (hasContractType()) {
        hash = (37 * hash) + CONTRACTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getContractType();
      }
      if (hasUserID()) {
        hash = (37 * hash) + USERID_FIELD_NUMBER;
        hash = (53 * hash) + getUserID();
      }
      if (hasBuyUserID()) {
        hash = (37 * hash) + BUYUSERID_FIELD_NUMBER;
        hash = (53 * hash) + getBuyUserID();
      }
      if (hasSellUserID()) {
        hash = (37 * hash) + SELLUSERID_FIELD_NUMBER;
        hash = (53 * hash) + getSellUserID();
      }
      if (hasSignDate()) {
        hash = (37 * hash) + SIGNDATE_FIELD_NUMBER;
        hash = (53 * hash) + getSignDate().hashCode();
      }
      if (hasContractAttachment()) {
        hash = (37 * hash) + CONTRACTATTACHMENT_FIELD_NUMBER;
        hash = (53 * hash) + getContractAttachment().hashCode();
      }
      if (hasContractMargin()) {
        hash = (37 * hash) + CONTRACTMARGIN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getContractMargin()));
      }
      if (hasDeliveryGoodsID()) {
        hash = (37 * hash) + DELIVERYGOODSID_FIELD_NUMBER;
        hash = (53 * hash) + getDeliveryGoodsID();
      }
      if (hasWrStandardID()) {
        hash = (37 * hash) + WRSTANDARDID_FIELD_NUMBER;
        hash = (53 * hash) + getWrStandardID();
      }
      if (hasBrandID()) {
        hash = (37 * hash) + BRANDID_FIELD_NUMBER;
        hash = (53 * hash) + getBrandID().hashCode();
      }
      if (hasProductType()) {
        hash = (37 * hash) + PRODUCTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getProductType();
      }
      if (hasConvertFactor()) {
        hash = (37 * hash) + CONVERTFACTOR_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getConvertFactor()));
      }
      if (hasSpotGoodsDesc()) {
        hash = (37 * hash) + SPOTGOODSDESC_FIELD_NUMBER;
        hash = (53 * hash) + getSpotGoodsDesc().hashCode();
      }
      if (hasPriceType()) {
        hash = (37 * hash) + PRICETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getPriceType();
      }
      if (hasQty()) {
        hash = (37 * hash) + QTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getQty()));
      }
      if (hasPrice()) {
        hash = (37 * hash) + PRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getPrice()));
      }
      if (hasAmount()) {
        hash = (37 * hash) + AMOUNT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getAmount()));
      }
      if (hasDeliveryStartDate()) {
        hash = (37 * hash) + DELIVERYSTARTDATE_FIELD_NUMBER;
        hash = (53 * hash) + getDeliveryStartDate().hashCode();
      }
      if (hasDeliveryEndDate()) {
        hash = (37 * hash) + DELIVERYENDDATE_FIELD_NUMBER;
        hash = (53 * hash) + getDeliveryEndDate().hashCode();
      }
      if (hasGoodsID()) {
        hash = (37 * hash) + GOODSID_FIELD_NUMBER;
        hash = (53 * hash) + getGoodsID();
      }
      if (hasPriceMove()) {
        hash = (37 * hash) + PRICEMOVE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getPriceMove()));
      }
      if (hasStartDate()) {
        hash = (37 * hash) + STARTDATE_FIELD_NUMBER;
        hash = (53 * hash) + getStartDate().hashCode();
      }
      if (hasEndDate()) {
        hash = (37 * hash) + ENDDATE_FIELD_NUMBER;
        hash = (53 * hash) + getEndDate().hashCode();
      }
      if (hasPointDesc()) {
        hash = (37 * hash) + POINTDESC_FIELD_NUMBER;
        hash = (53 * hash) + getPointDesc().hashCode();
      }
      if (hasDeliveryDesc()) {
        hash = (37 * hash) + DELIVERYDESC_FIELD_NUMBER;
        hash = (53 * hash) + getDeliveryDesc().hashCode();
      }
      if (hasMerUserID()) {
        hash = (37 * hash) + MERUSERID_FIELD_NUMBER;
        hash = (53 * hash) + getMerUserID();
      }
      if (hasTradeUserID()) {
        hash = (37 * hash) + TRADEUSERID_FIELD_NUMBER;
        hash = (53 * hash) + getTradeUserID();
      }
      if (hasPricedQty()) {
        hash = (37 * hash) + PRICEDQTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getPricedQty()));
      }
      if (hasPricedAmount()) {
        hash = (37 * hash) + PRICEDAMOUNT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getPricedAmount()));
      }
      if (hasSpotGoodsModelID()) {
        hash = (37 * hash) + SPOTGOODSMODELID_FIELD_NUMBER;
        hash = (53 * hash) + getSpotGoodsModelID();
      }
      if (hasSpotGoodsBrandID()) {
        hash = (37 * hash) + SPOTGOODSBRANDID_FIELD_NUMBER;
        hash = (53 * hash) + getSpotGoodsBrandID();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ErmcpMI1.SpotContractInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.SpotContractInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.SpotContractInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.SpotContractInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.SpotContractInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.SpotContractInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.SpotContractInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.SpotContractInfo 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 ErmcpMI1.SpotContractInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static ErmcpMI1.SpotContractInfo 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 ErmcpMI1.SpotContractInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.SpotContractInfo 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(ErmcpMI1.SpotContractInfo 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>
     * �ֻ���ͬ��Ϣ 0 18 4
     * </pre>
     *
     * Protobuf type {@code ErmcpMI1.SpotContractInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ErmcpMI1.SpotContractInfo)
        ErmcpMI1.SpotContractInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ErmcpMI1.internal_static_ErmcpMI1_SpotContractInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ErmcpMI1.internal_static_ErmcpMI1_SpotContractInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ErmcpMI1.SpotContractInfo.class, ErmcpMI1.SpotContractInfo.Builder.class);
      }

      // Construct using ErmcpMI1.SpotContractInfo.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();
        contractNo_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        contractType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        userID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        buyUserID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        sellUserID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        signDate_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        contractAttachment_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        contractMargin_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000080);
        deliveryGoodsID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        wrStandardID_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        brandID_ = "";
        bitField0_ = (bitField0_ & ~0x00000400);
        productType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        convertFactor_ = 0D;
        bitField0_ = (bitField0_ & ~0x00001000);
        spotGoodsDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00002000);
        priceType_ = 0;
        bitField0_ = (bitField0_ & ~0x00004000);
        qty_ = 0D;
        bitField0_ = (bitField0_ & ~0x00008000);
        price_ = 0D;
        bitField0_ = (bitField0_ & ~0x00010000);
        amount_ = 0D;
        bitField0_ = (bitField0_ & ~0x00020000);
        deliveryStartDate_ = "";
        bitField0_ = (bitField0_ & ~0x00040000);
        deliveryEndDate_ = "";
        bitField0_ = (bitField0_ & ~0x00080000);
        goodsID_ = 0;
        bitField0_ = (bitField0_ & ~0x00100000);
        priceMove_ = 0D;
        bitField0_ = (bitField0_ & ~0x00200000);
        startDate_ = "";
        bitField0_ = (bitField0_ & ~0x00400000);
        endDate_ = "";
        bitField0_ = (bitField0_ & ~0x00800000);
        pointDesc_ = "";
        bitField0_ = (bitField0_ & ~0x01000000);
        deliveryDesc_ = "";
        bitField0_ = (bitField0_ & ~0x02000000);
        merUserID_ = 0;
        bitField0_ = (bitField0_ & ~0x04000000);
        tradeUserID_ = 0;
        bitField0_ = (bitField0_ & ~0x08000000);
        pricedQty_ = 0D;
        bitField0_ = (bitField0_ & ~0x10000000);
        pricedAmount_ = 0D;
        bitField0_ = (bitField0_ & ~0x20000000);
        spotGoodsModelID_ = 0;
        bitField0_ = (bitField0_ & ~0x40000000);
        spotGoodsBrandID_ = 0;
        bitField0_ = (bitField0_ & ~0x80000000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ErmcpMI1.internal_static_ErmcpMI1_SpotContractInfo_descriptor;
      }

      @java.lang.Override
      public ErmcpMI1.SpotContractInfo getDefaultInstanceForType() {
        return ErmcpMI1.SpotContractInfo.getDefaultInstance();
      }

      @java.lang.Override
      public ErmcpMI1.SpotContractInfo build() {
        ErmcpMI1.SpotContractInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ErmcpMI1.SpotContractInfo buildPartial() {
        ErmcpMI1.SpotContractInfo result = new ErmcpMI1.SpotContractInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.contractNo_ = contractNo_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.contractType_ = contractType_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.userID_ = userID_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.buyUserID_ = buyUserID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.sellUserID_ = sellUserID_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.signDate_ = signDate_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000040;
        }
        result.contractAttachment_ = contractAttachment_;
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.contractMargin_ = contractMargin_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.deliveryGoodsID_ = deliveryGoodsID_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.wrStandardID_ = wrStandardID_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          to_bitField0_ |= 0x00000400;
        }
        result.brandID_ = brandID_;
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.productType_ = productType_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.convertFactor_ = convertFactor_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          to_bitField0_ |= 0x00002000;
        }
        result.spotGoodsDesc_ = spotGoodsDesc_;
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.priceType_ = priceType_;
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.qty_ = qty_;
          to_bitField0_ |= 0x00008000;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          result.price_ = price_;
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          result.amount_ = amount_;
          to_bitField0_ |= 0x00020000;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          to_bitField0_ |= 0x00040000;
        }
        result.deliveryStartDate_ = deliveryStartDate_;
        if (((from_bitField0_ & 0x00080000) != 0)) {
          to_bitField0_ |= 0x00080000;
        }
        result.deliveryEndDate_ = deliveryEndDate_;
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.goodsID_ = goodsID_;
          to_bitField0_ |= 0x00100000;
        }
        if (((from_bitField0_ & 0x00200000) != 0)) {
          result.priceMove_ = priceMove_;
          to_bitField0_ |= 0x00200000;
        }
        if (((from_bitField0_ & 0x00400000) != 0)) {
          to_bitField0_ |= 0x00400000;
        }
        result.startDate_ = startDate_;
        if (((from_bitField0_ & 0x00800000) != 0)) {
          to_bitField0_ |= 0x00800000;
        }
        result.endDate_ = endDate_;
        if (((from_bitField0_ & 0x01000000) != 0)) {
          to_bitField0_ |= 0x01000000;
        }
        result.pointDesc_ = pointDesc_;
        if (((from_bitField0_ & 0x02000000) != 0)) {
          to_bitField0_ |= 0x02000000;
        }
        result.deliveryDesc_ = deliveryDesc_;
        if (((from_bitField0_ & 0x04000000) != 0)) {
          result.merUserID_ = merUserID_;
          to_bitField0_ |= 0x04000000;
        }
        if (((from_bitField0_ & 0x08000000) != 0)) {
          result.tradeUserID_ = tradeUserID_;
          to_bitField0_ |= 0x08000000;
        }
        if (((from_bitField0_ & 0x10000000) != 0)) {
          result.pricedQty_ = pricedQty_;
          to_bitField0_ |= 0x10000000;
        }
        if (((from_bitField0_ & 0x20000000) != 0)) {
          result.pricedAmount_ = pricedAmount_;
          to_bitField0_ |= 0x20000000;
        }
        if (((from_bitField0_ & 0x40000000) != 0)) {
          result.spotGoodsModelID_ = spotGoodsModelID_;
          to_bitField0_ |= 0x40000000;
        }
        if (((from_bitField0_ & 0x80000000) != 0)) {
          result.spotGoodsBrandID_ = spotGoodsBrandID_;
          to_bitField0_ |= 0x80000000;
        }
        result.bitField0_ = to_bitField0_;
        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 ErmcpMI1.SpotContractInfo) {
          return mergeFrom((ErmcpMI1.SpotContractInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ErmcpMI1.SpotContractInfo other) {
        if (other == ErmcpMI1.SpotContractInfo.getDefaultInstance()) return this;
        if (other.hasContractNo()) {
          bitField0_ |= 0x00000001;
          contractNo_ = other.contractNo_;
          onChanged();
        }
        if (other.hasContractType()) {
          setContractType(other.getContractType());
        }
        if (other.hasUserID()) {
          setUserID(other.getUserID());
        }
        if (other.hasBuyUserID()) {
          setBuyUserID(other.getBuyUserID());
        }
        if (other.hasSellUserID()) {
          setSellUserID(other.getSellUserID());
        }
        if (other.hasSignDate()) {
          bitField0_ |= 0x00000020;
          signDate_ = other.signDate_;
          onChanged();
        }
        if (other.hasContractAttachment()) {
          setContractAttachment(other.getContractAttachment());
        }
        if (other.hasContractMargin()) {
          setContractMargin(other.getContractMargin());
        }
        if (other.hasDeliveryGoodsID()) {
          setDeliveryGoodsID(other.getDeliveryGoodsID());
        }
        if (other.hasWrStandardID()) {
          setWrStandardID(other.getWrStandardID());
        }
        if (other.hasBrandID()) {
          bitField0_ |= 0x00000400;
          brandID_ = other.brandID_;
          onChanged();
        }
        if (other.hasProductType()) {
          setProductType(other.getProductType());
        }
        if (other.hasConvertFactor()) {
          setConvertFactor(other.getConvertFactor());
        }
        if (other.hasSpotGoodsDesc()) {
          bitField0_ |= 0x00002000;
          spotGoodsDesc_ = other.spotGoodsDesc_;
          onChanged();
        }
        if (other.hasPriceType()) {
          setPriceType(other.getPriceType());
        }
        if (other.hasQty()) {
          setQty(other.getQty());
        }
        if (other.hasPrice()) {
          setPrice(other.getPrice());
        }
        if (other.hasAmount()) {
          setAmount(other.getAmount());
        }
        if (other.hasDeliveryStartDate()) {
          bitField0_ |= 0x00040000;
          deliveryStartDate_ = other.deliveryStartDate_;
          onChanged();
        }
        if (other.hasDeliveryEndDate()) {
          bitField0_ |= 0x00080000;
          deliveryEndDate_ = other.deliveryEndDate_;
          onChanged();
        }
        if (other.hasGoodsID()) {
          setGoodsID(other.getGoodsID());
        }
        if (other.hasPriceMove()) {
          setPriceMove(other.getPriceMove());
        }
        if (other.hasStartDate()) {
          bitField0_ |= 0x00400000;
          startDate_ = other.startDate_;
          onChanged();
        }
        if (other.hasEndDate()) {
          bitField0_ |= 0x00800000;
          endDate_ = other.endDate_;
          onChanged();
        }
        if (other.hasPointDesc()) {
          bitField0_ |= 0x01000000;
          pointDesc_ = other.pointDesc_;
          onChanged();
        }
        if (other.hasDeliveryDesc()) {
          bitField0_ |= 0x02000000;
          deliveryDesc_ = other.deliveryDesc_;
          onChanged();
        }
        if (other.hasMerUserID()) {
          setMerUserID(other.getMerUserID());
        }
        if (other.hasTradeUserID()) {
          setTradeUserID(other.getTradeUserID());
        }
        if (other.hasPricedQty()) {
          setPricedQty(other.getPricedQty());
        }
        if (other.hasPricedAmount()) {
          setPricedAmount(other.getPricedAmount());
        }
        if (other.hasSpotGoodsModelID()) {
          setSpotGoodsModelID(other.getSpotGoodsModelID());
        }
        if (other.hasSpotGoodsBrandID()) {
          setSpotGoodsBrandID(other.getSpotGoodsBrandID());
        }
        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 {
        ErmcpMI1.SpotContractInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (ErmcpMI1.SpotContractInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object contractNo_ = "";
      /**
       * <pre>
       * string �ֻ���ͬ���
       * </pre>
       *
       * <code>optional string ContractNo = 1;</code>
       * @return Whether the contractNo field is set.
       */
      public boolean hasContractNo() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * string �ֻ���ͬ���
       * </pre>
       *
       * <code>optional string ContractNo = 1;</code>
       * @return The contractNo.
       */
      public java.lang.String getContractNo() {
        java.lang.Object ref = contractNo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            contractNo_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string �ֻ���ͬ���
       * </pre>
       *
       * <code>optional string ContractNo = 1;</code>
       * @return The bytes for contractNo.
       */
      public com.google.protobuf.ByteString
          getContractNoBytes() {
        java.lang.Object ref = contractNo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          contractNo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string �ֻ���ͬ���
       * </pre>
       *
       * <code>optional string ContractNo = 1;</code>
       * @param value The contractNo to set.
       * @return This builder for chaining.
       */
      public Builder setContractNo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        contractNo_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ֻ���ͬ���
       * </pre>
       *
       * <code>optional string ContractNo = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearContractNo() {
        bitField0_ = (bitField0_ & ~0x00000001);
        contractNo_ = getDefaultInstance().getContractNo();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ֻ���ͬ���
       * </pre>
       *
       * <code>optional string ContractNo = 1;</code>
       * @param value The bytes for contractNo to set.
       * @return This builder for chaining.
       */
      public Builder setContractNoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        contractNo_ = value;
        onChanged();
        return this;
      }

      private int contractType_ ;
      /**
       * <pre>
       * int32 �ֻ���ͬ����-1:�ɹ�-1:����
       * </pre>
       *
       * <code>optional int32 ContractType = 2;</code>
       * @return Whether the contractType field is set.
       */
      @java.lang.Override
      public boolean hasContractType() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 �ֻ���ͬ����-1:�ɹ�-1:����
       * </pre>
       *
       * <code>optional int32 ContractType = 2;</code>
       * @return The contractType.
       */
      @java.lang.Override
      public int getContractType() {
        return contractType_;
      }
      /**
       * <pre>
       * int32 �ֻ���ͬ����-1:�ɹ�-1:����
       * </pre>
       *
       * <code>optional int32 ContractType = 2;</code>
       * @param value The contractType to set.
       * @return This builder for chaining.
       */
      public Builder setContractType(int value) {
        bitField0_ |= 0x00000002;
        contractType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 �ֻ���ͬ����-1:�ɹ�-1:����
       * </pre>
       *
       * <code>optional int32 ContractType = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearContractType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        contractType_ = 0;
        onChanged();
        return this;
      }

      private int userID_ ;
      /**
       * <pre>
       * uint32 ����ID
       * </pre>
       *
       * <code>optional uint32 UserID = 3;</code>
       * @return Whether the userID field is set.
       */
      @java.lang.Override
      public boolean hasUserID() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * uint32 ����ID
       * </pre>
       *
       * <code>optional uint32 UserID = 3;</code>
       * @return The userID.
       */
      @java.lang.Override
      public int getUserID() {
        return userID_;
      }
      /**
       * <pre>
       * uint32 ����ID
       * </pre>
       *
       * <code>optional uint32 UserID = 3;</code>
       * @param value The userID to set.
       * @return This builder for chaining.
       */
      public Builder setUserID(int value) {
        bitField0_ |= 0x00000004;
        userID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ����ID
       * </pre>
       *
       * <code>optional uint32 UserID = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserID() {
        bitField0_ = (bitField0_ & ~0x00000004);
        userID_ = 0;
        onChanged();
        return this;
      }

      private int buyUserID_ ;
      /**
       * <pre>
       * uint32 �ɹ���ID
       * </pre>
       *
       * <code>optional uint32 BuyUserID = 4;</code>
       * @return Whether the buyUserID field is set.
       */
      @java.lang.Override
      public boolean hasBuyUserID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint32 �ɹ���ID
       * </pre>
       *
       * <code>optional uint32 BuyUserID = 4;</code>
       * @return The buyUserID.
       */
      @java.lang.Override
      public int getBuyUserID() {
        return buyUserID_;
      }
      /**
       * <pre>
       * uint32 �ɹ���ID
       * </pre>
       *
       * <code>optional uint32 BuyUserID = 4;</code>
       * @param value The buyUserID to set.
       * @return This builder for chaining.
       */
      public Builder setBuyUserID(int value) {
        bitField0_ |= 0x00000008;
        buyUserID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 �ɹ���ID
       * </pre>
       *
       * <code>optional uint32 BuyUserID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearBuyUserID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        buyUserID_ = 0;
        onChanged();
        return this;
      }

      private int sellUserID_ ;
      /**
       * <pre>
       * uint32 �ͻ�ID
       * </pre>
       *
       * <code>optional uint32 SellUserID = 5;</code>
       * @return Whether the sellUserID field is set.
       */
      @java.lang.Override
      public boolean hasSellUserID() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint32 �ͻ�ID
       * </pre>
       *
       * <code>optional uint32 SellUserID = 5;</code>
       * @return The sellUserID.
       */
      @java.lang.Override
      public int getSellUserID() {
        return sellUserID_;
      }
      /**
       * <pre>
       * uint32 �ͻ�ID
       * </pre>
       *
       * <code>optional uint32 SellUserID = 5;</code>
       * @param value The sellUserID to set.
       * @return This builder for chaining.
       */
      public Builder setSellUserID(int value) {
        bitField0_ |= 0x00000010;
        sellUserID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 �ͻ�ID
       * </pre>
       *
       * <code>optional uint32 SellUserID = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearSellUserID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        sellUserID_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object signDate_ = "";
      /**
       * <pre>
       * string ǩ������
       * </pre>
       *
       * <code>optional string SignDate = 6;</code>
       * @return Whether the signDate field is set.
       */
      public boolean hasSignDate() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * string ǩ������
       * </pre>
       *
       * <code>optional string SignDate = 6;</code>
       * @return The signDate.
       */
      public java.lang.String getSignDate() {
        java.lang.Object ref = signDate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            signDate_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string ǩ������
       * </pre>
       *
       * <code>optional string SignDate = 6;</code>
       * @return The bytes for signDate.
       */
      public com.google.protobuf.ByteString
          getSignDateBytes() {
        java.lang.Object ref = signDate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          signDate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string ǩ������
       * </pre>
       *
       * <code>optional string SignDate = 6;</code>
       * @param value The signDate to set.
       * @return This builder for chaining.
       */
      public Builder setSignDate(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        signDate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ǩ������
       * </pre>
       *
       * <code>optional string SignDate = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearSignDate() {
        bitField0_ = (bitField0_ & ~0x00000020);
        signDate_ = getDefaultInstance().getSignDate();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ǩ������
       * </pre>
       *
       * <code>optional string SignDate = 6;</code>
       * @param value The bytes for signDate to set.
       * @return This builder for chaining.
       */
      public Builder setSignDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        signDate_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString contractAttachment_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * bytes ��ͬ����
       * </pre>
       *
       * <code>optional bytes ContractAttachment = 7;</code>
       * @return Whether the contractAttachment field is set.
       */
      @java.lang.Override
      public boolean hasContractAttachment() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * bytes ��ͬ����
       * </pre>
       *
       * <code>optional bytes ContractAttachment = 7;</code>
       * @return The contractAttachment.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getContractAttachment() {
        return contractAttachment_;
      }
      /**
       * <pre>
       * bytes ��ͬ����
       * </pre>
       *
       * <code>optional bytes ContractAttachment = 7;</code>
       * @param value The contractAttachment to set.
       * @return This builder for chaining.
       */
      public Builder setContractAttachment(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        contractAttachment_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * bytes ��ͬ����
       * </pre>
       *
       * <code>optional bytes ContractAttachment = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearContractAttachment() {
        bitField0_ = (bitField0_ & ~0x00000040);
        contractAttachment_ = getDefaultInstance().getContractAttachment();
        onChanged();
        return this;
      }

      private double contractMargin_ ;
      /**
       * <pre>
       * double ��ͬ��֤��
       * </pre>
       *
       * <code>optional double ContractMargin = 8;</code>
       * @return Whether the contractMargin field is set.
       */
      @java.lang.Override
      public boolean hasContractMargin() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * double ��ͬ��֤��
       * </pre>
       *
       * <code>optional double ContractMargin = 8;</code>
       * @return The contractMargin.
       */
      @java.lang.Override
      public double getContractMargin() {
        return contractMargin_;
      }
      /**
       * <pre>
       * double ��ͬ��֤��
       * </pre>
       *
       * <code>optional double ContractMargin = 8;</code>
       * @param value The contractMargin to set.
       * @return This builder for chaining.
       */
      public Builder setContractMargin(double value) {
        bitField0_ |= 0x00000080;
        contractMargin_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double ��ͬ��֤��
       * </pre>
       *
       * <code>optional double ContractMargin = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearContractMargin() {
        bitField0_ = (bitField0_ & ~0x00000080);
        contractMargin_ = 0D;
        onChanged();
        return this;
      }

      private int deliveryGoodsID_ ;
      /**
       * <pre>
       * uint32 �ֻ�Ʒ��ID
       * </pre>
       *
       * <code>optional uint32 DeliveryGoodsID = 9;</code>
       * @return Whether the deliveryGoodsID field is set.
       */
      @java.lang.Override
      public boolean hasDeliveryGoodsID() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * uint32 �ֻ�Ʒ��ID
       * </pre>
       *
       * <code>optional uint32 DeliveryGoodsID = 9;</code>
       * @return The deliveryGoodsID.
       */
      @java.lang.Override
      public int getDeliveryGoodsID() {
        return deliveryGoodsID_;
      }
      /**
       * <pre>
       * uint32 �ֻ�Ʒ��ID
       * </pre>
       *
       * <code>optional uint32 DeliveryGoodsID = 9;</code>
       * @param value The deliveryGoodsID to set.
       * @return This builder for chaining.
       */
      public Builder setDeliveryGoodsID(int value) {
        bitField0_ |= 0x00000100;
        deliveryGoodsID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 �ֻ�Ʒ��ID
       * </pre>
       *
       * <code>optional uint32 DeliveryGoodsID = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeliveryGoodsID() {
        bitField0_ = (bitField0_ & ~0x00000100);
        deliveryGoodsID_ = 0;
        onChanged();
        return this;
      }

      private int wrStandardID_ ;
      /**
       * <pre>
       * uint32 �ֻ���ƷID
       * </pre>
       *
       * <code>optional uint32 WrStandardID = 10;</code>
       * @return Whether the wrStandardID field is set.
       */
      @java.lang.Override
      public boolean hasWrStandardID() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * uint32 �ֻ���ƷID
       * </pre>
       *
       * <code>optional uint32 WrStandardID = 10;</code>
       * @return The wrStandardID.
       */
      @java.lang.Override
      public int getWrStandardID() {
        return wrStandardID_;
      }
      /**
       * <pre>
       * uint32 �ֻ���ƷID
       * </pre>
       *
       * <code>optional uint32 WrStandardID = 10;</code>
       * @param value The wrStandardID to set.
       * @return This builder for chaining.
       */
      public Builder setWrStandardID(int value) {
        bitField0_ |= 0x00000200;
        wrStandardID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 �ֻ���ƷID
       * </pre>
       *
       * <code>optional uint32 WrStandardID = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearWrStandardID() {
        bitField0_ = (bitField0_ & ~0x00000200);
        wrStandardID_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object brandID_ = "";
      /**
       * <pre>
       * string Ʒ��ID
       * </pre>
       *
       * <code>optional string BrandID = 11;</code>
       * @return Whether the brandID field is set.
       */
      public boolean hasBrandID() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * string Ʒ��ID
       * </pre>
       *
       * <code>optional string BrandID = 11;</code>
       * @return The brandID.
       */
      public java.lang.String getBrandID() {
        java.lang.Object ref = brandID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            brandID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string Ʒ��ID
       * </pre>
       *
       * <code>optional string BrandID = 11;</code>
       * @return The bytes for brandID.
       */
      public com.google.protobuf.ByteString
          getBrandIDBytes() {
        java.lang.Object ref = brandID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          brandID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string Ʒ��ID
       * </pre>
       *
       * <code>optional string BrandID = 11;</code>
       * @param value The brandID to set.
       * @return This builder for chaining.
       */
      public Builder setBrandID(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        brandID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string Ʒ��ID
       * </pre>
       *
       * <code>optional string BrandID = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearBrandID() {
        bitField0_ = (bitField0_ & ~0x00000400);
        brandID_ = getDefaultInstance().getBrandID();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string Ʒ��ID
       * </pre>
       *
       * <code>optional string BrandID = 11;</code>
       * @param value The bytes for brandID to set.
       * @return This builder for chaining.
       */
      public Builder setBrandIDBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        brandID_ = value;
        onChanged();
        return this;
      }

      private int productType_ ;
      /**
       * <pre>
       * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
       * </pre>
       *
       * <code>optional uint32 ProductType = 12;</code>
       * @return Whether the productType field is set.
       */
      @java.lang.Override
      public boolean hasProductType() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
       * </pre>
       *
       * <code>optional uint32 ProductType = 12;</code>
       * @return The productType.
       */
      @java.lang.Override
      public int getProductType() {
        return productType_;
      }
      /**
       * <pre>
       * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
       * </pre>
       *
       * <code>optional uint32 ProductType = 12;</code>
       * @param value The productType to set.
       * @return This builder for chaining.
       */
      public Builder setProductType(int value) {
        bitField0_ |= 0x00000800;
        productType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ��Ʒ����-1:��׼�ֵ�2:�ȱ�3:�Ǳ�
       * </pre>
       *
       * <code>optional uint32 ProductType = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearProductType() {
        bitField0_ = (bitField0_ & ~0x00000800);
        productType_ = 0;
        onChanged();
        return this;
      }

      private double convertFactor_ ;
      /**
       * <pre>
       * double ���ϵ��
       * </pre>
       *
       * <code>optional double ConvertFactor = 13;</code>
       * @return Whether the convertFactor field is set.
       */
      @java.lang.Override
      public boolean hasConvertFactor() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * double ���ϵ��
       * </pre>
       *
       * <code>optional double ConvertFactor = 13;</code>
       * @return The convertFactor.
       */
      @java.lang.Override
      public double getConvertFactor() {
        return convertFactor_;
      }
      /**
       * <pre>
       * double ���ϵ��
       * </pre>
       *
       * <code>optional double ConvertFactor = 13;</code>
       * @param value The convertFactor to set.
       * @return This builder for chaining.
       */
      public Builder setConvertFactor(double value) {
        bitField0_ |= 0x00001000;
        convertFactor_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double ���ϵ��
       * </pre>
       *
       * <code>optional double ConvertFactor = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearConvertFactor() {
        bitField0_ = (bitField0_ & ~0x00001000);
        convertFactor_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object spotGoodsDesc_ = "";
      /**
       * <pre>
       * string ��Ʒ�ͺ�
       * </pre>
       *
       * <code>optional string SpotGoodsDesc = 14;</code>
       * @return Whether the spotGoodsDesc field is set.
       */
      public boolean hasSpotGoodsDesc() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * string ��Ʒ�ͺ�
       * </pre>
       *
       * <code>optional string SpotGoodsDesc = 14;</code>
       * @return The spotGoodsDesc.
       */
      public java.lang.String getSpotGoodsDesc() {
        java.lang.Object ref = spotGoodsDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            spotGoodsDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string ��Ʒ�ͺ�
       * </pre>
       *
       * <code>optional string SpotGoodsDesc = 14;</code>
       * @return The bytes for spotGoodsDesc.
       */
      public com.google.protobuf.ByteString
          getSpotGoodsDescBytes() {
        java.lang.Object ref = spotGoodsDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          spotGoodsDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string ��Ʒ�ͺ�
       * </pre>
       *
       * <code>optional string SpotGoodsDesc = 14;</code>
       * @param value The spotGoodsDesc to set.
       * @return This builder for chaining.
       */
      public Builder setSpotGoodsDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        spotGoodsDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��Ʒ�ͺ�
       * </pre>
       *
       * <code>optional string SpotGoodsDesc = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpotGoodsDesc() {
        bitField0_ = (bitField0_ & ~0x00002000);
        spotGoodsDesc_ = getDefaultInstance().getSpotGoodsDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��Ʒ�ͺ�
       * </pre>
       *
       * <code>optional string SpotGoodsDesc = 14;</code>
       * @param value The bytes for spotGoodsDesc to set.
       * @return This builder for chaining.
       */
      public Builder setSpotGoodsDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        spotGoodsDesc_ = value;
        onChanged();
        return this;
      }

      private int priceType_ ;
      /**
       * <pre>
       * uint32 ��������-1:һ�ڼ�2:���3:�ݶ���
       * </pre>
       *
       * <code>optional uint32 PriceType = 15;</code>
       * @return Whether the priceType field is set.
       */
      @java.lang.Override
      public boolean hasPriceType() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <pre>
       * uint32 ��������-1:һ�ڼ�2:���3:�ݶ���
       * </pre>
       *
       * <code>optional uint32 PriceType = 15;</code>
       * @return The priceType.
       */
      @java.lang.Override
      public int getPriceType() {
        return priceType_;
      }
      /**
       * <pre>
       * uint32 ��������-1:һ�ڼ�2:���3:�ݶ���
       * </pre>
       *
       * <code>optional uint32 PriceType = 15;</code>
       * @param value The priceType to set.
       * @return This builder for chaining.
       */
      public Builder setPriceType(int value) {
        bitField0_ |= 0x00004000;
        priceType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ��������-1:һ�ڼ�2:���3:�ݶ���
       * </pre>
       *
       * <code>optional uint32 PriceType = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearPriceType() {
        bitField0_ = (bitField0_ & ~0x00004000);
        priceType_ = 0;
        onChanged();
        return this;
      }

      private double qty_ ;
      /**
       * <pre>
       * double ����
       * </pre>
       *
       * <code>optional double Qty = 16;</code>
       * @return Whether the qty field is set.
       */
      @java.lang.Override
      public boolean hasQty() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <pre>
       * double ����
       * </pre>
       *
       * <code>optional double Qty = 16;</code>
       * @return The qty.
       */
      @java.lang.Override
      public double getQty() {
        return qty_;
      }
      /**
       * <pre>
       * double ����
       * </pre>
       *
       * <code>optional double Qty = 16;</code>
       * @param value The qty to set.
       * @return This builder for chaining.
       */
      public Builder setQty(double value) {
        bitField0_ |= 0x00008000;
        qty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double ����
       * </pre>
       *
       * <code>optional double Qty = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearQty() {
        bitField0_ = (bitField0_ & ~0x00008000);
        qty_ = 0D;
        onChanged();
        return this;
      }

      private double price_ ;
      /**
       * <pre>
       * double �۸��ݶ���[1:һ�ڼۡ�3:�ݶ���]
       * </pre>
       *
       * <code>optional double Price = 17;</code>
       * @return Whether the price field is set.
       */
      @java.lang.Override
      public boolean hasPrice() {
        return ((bitField0_ & 0x00010000) != 0);
      }
      /**
       * <pre>
       * double �۸��ݶ���[1:һ�ڼۡ�3:�ݶ���]
       * </pre>
       *
       * <code>optional double Price = 17;</code>
       * @return The price.
       */
      @java.lang.Override
      public double getPrice() {
        return price_;
      }
      /**
       * <pre>
       * double �۸��ݶ���[1:һ�ڼۡ�3:�ݶ���]
       * </pre>
       *
       * <code>optional double Price = 17;</code>
       * @param value The price to set.
       * @return This builder for chaining.
       */
      public Builder setPrice(double value) {
        bitField0_ |= 0x00010000;
        price_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double �۸��ݶ���[1:һ�ڼۡ�3:�ݶ���]
       * </pre>
       *
       * <code>optional double Price = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrice() {
        bitField0_ = (bitField0_ & ~0x00010000);
        price_ = 0D;
        onChanged();
        return this;
      }

      private double amount_ ;
      /**
       * <pre>
       * double ���[1:һ�ڼۡ�3:�ݶ���]
       * </pre>
       *
       * <code>optional double Amount = 18;</code>
       * @return Whether the amount field is set.
       */
      @java.lang.Override
      public boolean hasAmount() {
        return ((bitField0_ & 0x00020000) != 0);
      }
      /**
       * <pre>
       * double ���[1:һ�ڼۡ�3:�ݶ���]
       * </pre>
       *
       * <code>optional double Amount = 18;</code>
       * @return The amount.
       */
      @java.lang.Override
      public double getAmount() {
        return amount_;
      }
      /**
       * <pre>
       * double ���[1:һ�ڼۡ�3:�ݶ���]
       * </pre>
       *
       * <code>optional double Amount = 18;</code>
       * @param value The amount to set.
       * @return This builder for chaining.
       */
      public Builder setAmount(double value) {
        bitField0_ |= 0x00020000;
        amount_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double ���[1:һ�ڼۡ�3:�ݶ���]
       * </pre>
       *
       * <code>optional double Amount = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearAmount() {
        bitField0_ = (bitField0_ & ~0x00020000);
        amount_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object deliveryStartDate_ = "";
      /**
       * <pre>
       * string ������(��ʼ)
       * </pre>
       *
       * <code>optional string DeliveryStartDate = 19;</code>
       * @return Whether the deliveryStartDate field is set.
       */
      public boolean hasDeliveryStartDate() {
        return ((bitField0_ & 0x00040000) != 0);
      }
      /**
       * <pre>
       * string ������(��ʼ)
       * </pre>
       *
       * <code>optional string DeliveryStartDate = 19;</code>
       * @return The deliveryStartDate.
       */
      public java.lang.String getDeliveryStartDate() {
        java.lang.Object ref = deliveryStartDate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            deliveryStartDate_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string ������(��ʼ)
       * </pre>
       *
       * <code>optional string DeliveryStartDate = 19;</code>
       * @return The bytes for deliveryStartDate.
       */
      public com.google.protobuf.ByteString
          getDeliveryStartDateBytes() {
        java.lang.Object ref = deliveryStartDate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deliveryStartDate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string ������(��ʼ)
       * </pre>
       *
       * <code>optional string DeliveryStartDate = 19;</code>
       * @param value The deliveryStartDate to set.
       * @return This builder for chaining.
       */
      public Builder setDeliveryStartDate(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00040000;
        deliveryStartDate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ������(��ʼ)
       * </pre>
       *
       * <code>optional string DeliveryStartDate = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeliveryStartDate() {
        bitField0_ = (bitField0_ & ~0x00040000);
        deliveryStartDate_ = getDefaultInstance().getDeliveryStartDate();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ������(��ʼ)
       * </pre>
       *
       * <code>optional string DeliveryStartDate = 19;</code>
       * @param value The bytes for deliveryStartDate to set.
       * @return This builder for chaining.
       */
      public Builder setDeliveryStartDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00040000;
        deliveryStartDate_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object deliveryEndDate_ = "";
      /**
       * <pre>
       * string ������(����)
       * </pre>
       *
       * <code>optional string DeliveryEndDate = 20;</code>
       * @return Whether the deliveryEndDate field is set.
       */
      public boolean hasDeliveryEndDate() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <pre>
       * string ������(����)
       * </pre>
       *
       * <code>optional string DeliveryEndDate = 20;</code>
       * @return The deliveryEndDate.
       */
      public java.lang.String getDeliveryEndDate() {
        java.lang.Object ref = deliveryEndDate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            deliveryEndDate_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string ������(����)
       * </pre>
       *
       * <code>optional string DeliveryEndDate = 20;</code>
       * @return The bytes for deliveryEndDate.
       */
      public com.google.protobuf.ByteString
          getDeliveryEndDateBytes() {
        java.lang.Object ref = deliveryEndDate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deliveryEndDate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string ������(����)
       * </pre>
       *
       * <code>optional string DeliveryEndDate = 20;</code>
       * @param value The deliveryEndDate to set.
       * @return This builder for chaining.
       */
      public Builder setDeliveryEndDate(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00080000;
        deliveryEndDate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ������(����)
       * </pre>
       *
       * <code>optional string DeliveryEndDate = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeliveryEndDate() {
        bitField0_ = (bitField0_ & ~0x00080000);
        deliveryEndDate_ = getDefaultInstance().getDeliveryEndDate();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ������(����)
       * </pre>
       *
       * <code>optional string DeliveryEndDate = 20;</code>
       * @param value The bytes for deliveryEndDate to set.
       * @return This builder for chaining.
       */
      public Builder setDeliveryEndDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00080000;
        deliveryEndDate_ = value;
        onChanged();
        return this;
      }

      private int goodsID_ ;
      /**
       * <pre>
       * uint32 ��ۺ�ԼID-0:Ϊ�ֻ�������Ϊ�ڻ���Ʒ��ԼID[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional uint32 GoodsID = 21;</code>
       * @return Whether the goodsID field is set.
       */
      @java.lang.Override
      public boolean hasGoodsID() {
        return ((bitField0_ & 0x00100000) != 0);
      }
      /**
       * <pre>
       * uint32 ��ۺ�ԼID-0:Ϊ�ֻ�������Ϊ�ڻ���Ʒ��ԼID[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional uint32 GoodsID = 21;</code>
       * @return The goodsID.
       */
      @java.lang.Override
      public int getGoodsID() {
        return goodsID_;
      }
      /**
       * <pre>
       * uint32 ��ۺ�ԼID-0:Ϊ�ֻ�������Ϊ�ڻ���Ʒ��ԼID[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional uint32 GoodsID = 21;</code>
       * @param value The goodsID to set.
       * @return This builder for chaining.
       */
      public Builder setGoodsID(int value) {
        bitField0_ |= 0x00100000;
        goodsID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ��ۺ�ԼID-0:Ϊ�ֻ�������Ϊ�ڻ���Ʒ��ԼID[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional uint32 GoodsID = 21;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodsID() {
        bitField0_ = (bitField0_ & ~0x00100000);
        goodsID_ = 0;
        onChanged();
        return this;
      }

      private double priceMove_ ;
      /**
       * <pre>
       * double ����ˮ[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional double PriceMove = 22;</code>
       * @return Whether the priceMove field is set.
       */
      @java.lang.Override
      public boolean hasPriceMove() {
        return ((bitField0_ & 0x00200000) != 0);
      }
      /**
       * <pre>
       * double ����ˮ[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional double PriceMove = 22;</code>
       * @return The priceMove.
       */
      @java.lang.Override
      public double getPriceMove() {
        return priceMove_;
      }
      /**
       * <pre>
       * double ����ˮ[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional double PriceMove = 22;</code>
       * @param value The priceMove to set.
       * @return This builder for chaining.
       */
      public Builder setPriceMove(double value) {
        bitField0_ |= 0x00200000;
        priceMove_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double ����ˮ[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional double PriceMove = 22;</code>
       * @return This builder for chaining.
       */
      public Builder clearPriceMove() {
        bitField0_ = (bitField0_ & ~0x00200000);
        priceMove_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object startDate_ = "";
      /**
       * <pre>
       * string ��ۿ�ʼ����[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string StartDate = 23;</code>
       * @return Whether the startDate field is set.
       */
      public boolean hasStartDate() {
        return ((bitField0_ & 0x00400000) != 0);
      }
      /**
       * <pre>
       * string ��ۿ�ʼ����[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string StartDate = 23;</code>
       * @return The startDate.
       */
      public java.lang.String getStartDate() {
        java.lang.Object ref = startDate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            startDate_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string ��ۿ�ʼ����[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string StartDate = 23;</code>
       * @return The bytes for startDate.
       */
      public com.google.protobuf.ByteString
          getStartDateBytes() {
        java.lang.Object ref = startDate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          startDate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string ��ۿ�ʼ����[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string StartDate = 23;</code>
       * @param value The startDate to set.
       * @return This builder for chaining.
       */
      public Builder setStartDate(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00400000;
        startDate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��ۿ�ʼ����[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string StartDate = 23;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartDate() {
        bitField0_ = (bitField0_ & ~0x00400000);
        startDate_ = getDefaultInstance().getStartDate();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��ۿ�ʼ����[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string StartDate = 23;</code>
       * @param value The bytes for startDate to set.
       * @return This builder for chaining.
       */
      public Builder setStartDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00400000;
        startDate_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object endDate_ = "";
      /**
       * <pre>
       * string ��۽�������[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string EndDate = 24;</code>
       * @return Whether the endDate field is set.
       */
      public boolean hasEndDate() {
        return ((bitField0_ & 0x00800000) != 0);
      }
      /**
       * <pre>
       * string ��۽�������[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string EndDate = 24;</code>
       * @return The endDate.
       */
      public java.lang.String getEndDate() {
        java.lang.Object ref = endDate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            endDate_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string ��۽�������[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string EndDate = 24;</code>
       * @return The bytes for endDate.
       */
      public com.google.protobuf.ByteString
          getEndDateBytes() {
        java.lang.Object ref = endDate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          endDate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string ��۽�������[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string EndDate = 24;</code>
       * @param value The endDate to set.
       * @return This builder for chaining.
       */
      public Builder setEndDate(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00800000;
        endDate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��۽�������[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string EndDate = 24;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndDate() {
        bitField0_ = (bitField0_ & ~0x00800000);
        endDate_ = getDefaultInstance().getEndDate();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��۽�������[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string EndDate = 24;</code>
       * @param value The bytes for endDate to set.
       * @return This builder for chaining.
       */
      public Builder setEndDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00800000;
        endDate_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object pointDesc_ = "";
      /**
       * <pre>
       * string ��۱�ע[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string PointDesc = 25;</code>
       * @return Whether the pointDesc field is set.
       */
      public boolean hasPointDesc() {
        return ((bitField0_ & 0x01000000) != 0);
      }
      /**
       * <pre>
       * string ��۱�ע[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string PointDesc = 25;</code>
       * @return The pointDesc.
       */
      public java.lang.String getPointDesc() {
        java.lang.Object ref = pointDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            pointDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string ��۱�ע[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string PointDesc = 25;</code>
       * @return The bytes for pointDesc.
       */
      public com.google.protobuf.ByteString
          getPointDescBytes() {
        java.lang.Object ref = pointDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          pointDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string ��۱�ע[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string PointDesc = 25;</code>
       * @param value The pointDesc to set.
       * @return This builder for chaining.
       */
      public Builder setPointDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x01000000;
        pointDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��۱�ע[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string PointDesc = 25;</code>
       * @return This builder for chaining.
       */
      public Builder clearPointDesc() {
        bitField0_ = (bitField0_ & ~0x01000000);
        pointDesc_ = getDefaultInstance().getPointDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��۱�ע[2:���3:�ݶ���]
       * </pre>
       *
       * <code>optional string PointDesc = 25;</code>
       * @param value The bytes for pointDesc to set.
       * @return This builder for chaining.
       */
      public Builder setPointDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x01000000;
        pointDesc_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object deliveryDesc_ = "";
      /**
       * <pre>
       * string ���շ�ʽ
       * </pre>
       *
       * <code>optional string DeliveryDesc = 26;</code>
       * @return Whether the deliveryDesc field is set.
       */
      public boolean hasDeliveryDesc() {
        return ((bitField0_ & 0x02000000) != 0);
      }
      /**
       * <pre>
       * string ���շ�ʽ
       * </pre>
       *
       * <code>optional string DeliveryDesc = 26;</code>
       * @return The deliveryDesc.
       */
      public java.lang.String getDeliveryDesc() {
        java.lang.Object ref = deliveryDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            deliveryDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string ���շ�ʽ
       * </pre>
       *
       * <code>optional string DeliveryDesc = 26;</code>
       * @return The bytes for deliveryDesc.
       */
      public com.google.protobuf.ByteString
          getDeliveryDescBytes() {
        java.lang.Object ref = deliveryDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deliveryDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string ���շ�ʽ
       * </pre>
       *
       * <code>optional string DeliveryDesc = 26;</code>
       * @param value The deliveryDesc to set.
       * @return This builder for chaining.
       */
      public Builder setDeliveryDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x02000000;
        deliveryDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ���շ�ʽ
       * </pre>
       *
       * <code>optional string DeliveryDesc = 26;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeliveryDesc() {
        bitField0_ = (bitField0_ & ~0x02000000);
        deliveryDesc_ = getDefaultInstance().getDeliveryDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ���շ�ʽ
       * </pre>
       *
       * <code>optional string DeliveryDesc = 26;</code>
       * @param value The bytes for deliveryDesc to set.
       * @return This builder for chaining.
       */
      public Builder setDeliveryDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x02000000;
        deliveryDesc_ = value;
        onChanged();
        return this;
      }

      private int merUserID_ ;
      /**
       * <pre>
       * uint32 ����ԱID
       * </pre>
       *
       * <code>optional uint32 MerUserID = 27;</code>
       * @return Whether the merUserID field is set.
       */
      @java.lang.Override
      public boolean hasMerUserID() {
        return ((bitField0_ & 0x04000000) != 0);
      }
      /**
       * <pre>
       * uint32 ����ԱID
       * </pre>
       *
       * <code>optional uint32 MerUserID = 27;</code>
       * @return The merUserID.
       */
      @java.lang.Override
      public int getMerUserID() {
        return merUserID_;
      }
      /**
       * <pre>
       * uint32 ����ԱID
       * </pre>
       *
       * <code>optional uint32 MerUserID = 27;</code>
       * @param value The merUserID to set.
       * @return This builder for chaining.
       */
      public Builder setMerUserID(int value) {
        bitField0_ |= 0x04000000;
        merUserID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ����ԱID
       * </pre>
       *
       * <code>optional uint32 MerUserID = 27;</code>
       * @return This builder for chaining.
       */
      public Builder clearMerUserID() {
        bitField0_ = (bitField0_ & ~0x04000000);
        merUserID_ = 0;
        onChanged();
        return this;
      }

      private int tradeUserID_ ;
      /**
       * <pre>
       * uint32 ����ԱID
       * </pre>
       *
       * <code>optional uint32 TradeUserID = 28;</code>
       * @return Whether the tradeUserID field is set.
       */
      @java.lang.Override
      public boolean hasTradeUserID() {
        return ((bitField0_ & 0x08000000) != 0);
      }
      /**
       * <pre>
       * uint32 ����ԱID
       * </pre>
       *
       * <code>optional uint32 TradeUserID = 28;</code>
       * @return The tradeUserID.
       */
      @java.lang.Override
      public int getTradeUserID() {
        return tradeUserID_;
      }
      /**
       * <pre>
       * uint32 ����ԱID
       * </pre>
       *
       * <code>optional uint32 TradeUserID = 28;</code>
       * @param value The tradeUserID to set.
       * @return This builder for chaining.
       */
      public Builder setTradeUserID(int value) {
        bitField0_ |= 0x08000000;
        tradeUserID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ����ԱID
       * </pre>
       *
       * <code>optional uint32 TradeUserID = 28;</code>
       * @return This builder for chaining.
       */
      public Builder clearTradeUserID() {
        bitField0_ = (bitField0_ & ~0x08000000);
        tradeUserID_ = 0;
        onChanged();
        return this;
      }

      private double pricedQty_ ;
      /**
       * <pre>
       * double �Ѷ�����
       * </pre>
       *
       * <code>optional double PricedQty = 29;</code>
       * @return Whether the pricedQty field is set.
       */
      @java.lang.Override
      public boolean hasPricedQty() {
        return ((bitField0_ & 0x10000000) != 0);
      }
      /**
       * <pre>
       * double �Ѷ�����
       * </pre>
       *
       * <code>optional double PricedQty = 29;</code>
       * @return The pricedQty.
       */
      @java.lang.Override
      public double getPricedQty() {
        return pricedQty_;
      }
      /**
       * <pre>
       * double �Ѷ�����
       * </pre>
       *
       * <code>optional double PricedQty = 29;</code>
       * @param value The pricedQty to set.
       * @return This builder for chaining.
       */
      public Builder setPricedQty(double value) {
        bitField0_ |= 0x10000000;
        pricedQty_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double �Ѷ�����
       * </pre>
       *
       * <code>optional double PricedQty = 29;</code>
       * @return This builder for chaining.
       */
      public Builder clearPricedQty() {
        bitField0_ = (bitField0_ & ~0x10000000);
        pricedQty_ = 0D;
        onChanged();
        return this;
      }

      private double pricedAmount_ ;
      /**
       * <pre>
       * double �Ѷ��۽��
       * </pre>
       *
       * <code>optional double PricedAmount = 30;</code>
       * @return Whether the pricedAmount field is set.
       */
      @java.lang.Override
      public boolean hasPricedAmount() {
        return ((bitField0_ & 0x20000000) != 0);
      }
      /**
       * <pre>
       * double �Ѷ��۽��
       * </pre>
       *
       * <code>optional double PricedAmount = 30;</code>
       * @return The pricedAmount.
       */
      @java.lang.Override
      public double getPricedAmount() {
        return pricedAmount_;
      }
      /**
       * <pre>
       * double �Ѷ��۽��
       * </pre>
       *
       * <code>optional double PricedAmount = 30;</code>
       * @param value The pricedAmount to set.
       * @return This builder for chaining.
       */
      public Builder setPricedAmount(double value) {
        bitField0_ |= 0x20000000;
        pricedAmount_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * double �Ѷ��۽��
       * </pre>
       *
       * <code>optional double PricedAmount = 30;</code>
       * @return This builder for chaining.
       */
      public Builder clearPricedAmount() {
        bitField0_ = (bitField0_ & ~0x20000000);
        pricedAmount_ = 0D;
        onChanged();
        return this;
      }

      private int spotGoodsModelID_ ;
      /**
       * <pre>
       * uint32 �ֻ��ͺ�ID
       * </pre>
       *
       * <code>optional uint32 SpotGoodsModelID = 31;</code>
       * @return Whether the spotGoodsModelID field is set.
       */
      @java.lang.Override
      public boolean hasSpotGoodsModelID() {
        return ((bitField0_ & 0x40000000) != 0);
      }
      /**
       * <pre>
       * uint32 �ֻ��ͺ�ID
       * </pre>
       *
       * <code>optional uint32 SpotGoodsModelID = 31;</code>
       * @return The spotGoodsModelID.
       */
      @java.lang.Override
      public int getSpotGoodsModelID() {
        return spotGoodsModelID_;
      }
      /**
       * <pre>
       * uint32 �ֻ��ͺ�ID
       * </pre>
       *
       * <code>optional uint32 SpotGoodsModelID = 31;</code>
       * @param value The spotGoodsModelID to set.
       * @return This builder for chaining.
       */
      public Builder setSpotGoodsModelID(int value) {
        bitField0_ |= 0x40000000;
        spotGoodsModelID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 �ֻ��ͺ�ID
       * </pre>
       *
       * <code>optional uint32 SpotGoodsModelID = 31;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpotGoodsModelID() {
        bitField0_ = (bitField0_ & ~0x40000000);
        spotGoodsModelID_ = 0;
        onChanged();
        return this;
      }

      private int spotGoodsBrandID_ ;
      /**
       * <pre>
       * uint32 �ֻ�Ʒ��ID
       * </pre>
       *
       * <code>optional uint32 SpotGoodsBrandID = 32;</code>
       * @return Whether the spotGoodsBrandID field is set.
       */
      @java.lang.Override
      public boolean hasSpotGoodsBrandID() {
        return ((bitField0_ & 0x80000000) != 0);
      }
      /**
       * <pre>
       * uint32 �ֻ�Ʒ��ID
       * </pre>
       *
       * <code>optional uint32 SpotGoodsBrandID = 32;</code>
       * @return The spotGoodsBrandID.
       */
      @java.lang.Override
      public int getSpotGoodsBrandID() {
        return spotGoodsBrandID_;
      }
      /**
       * <pre>
       * uint32 �ֻ�Ʒ��ID
       * </pre>
       *
       * <code>optional uint32 SpotGoodsBrandID = 32;</code>
       * @param value The spotGoodsBrandID to set.
       * @return This builder for chaining.
       */
      public Builder setSpotGoodsBrandID(int value) {
        bitField0_ |= 0x80000000;
        spotGoodsBrandID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 �ֻ�Ʒ��ID
       * </pre>
       *
       * <code>optional uint32 SpotGoodsBrandID = 32;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpotGoodsBrandID() {
        bitField0_ = (bitField0_ & ~0x80000000);
        spotGoodsBrandID_ = 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:ErmcpMI1.SpotContractInfo)
    }

    // @@protoc_insertion_point(class_scope:ErmcpMI1.SpotContractInfo)
    private static final ErmcpMI1.SpotContractInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ErmcpMI1.SpotContractInfo();
    }

    public static ErmcpMI1.SpotContractInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ErmcpMI1.SpotContractInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SpotContractOperateReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ErmcpMI1.SpotContractOperateReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 SpotContractID = 2;</code>
     * @return Whether the spotContractID field is set.
     */
    boolean hasSpotContractID();
    /**
     * <pre>
     * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 SpotContractID = 2;</code>
     * @return The spotContractID.
     */
    long getSpotContractID();

    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
     * </pre>
     *
     * <code>optional uint32 OperateType = 3;</code>
     * @return Whether the operateType field is set.
     */
    boolean hasOperateType();
    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
     * </pre>
     *
     * <code>optional uint32 OperateType = 3;</code>
     * @return The operateType.
     */
    int getOperateType();

    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 4;</code>
     * @return Whether the operateSrc field is set.
     */
    boolean hasOperateSrc();
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 4;</code>
     * @return The operateSrc.
     */
    int getOperateSrc();

    /**
     * <pre>
     * uint64 �����û�ID
     * </pre>
     *
     * <code>optional uint64 UserID = 5;</code>
     * @return Whether the userID field is set.
     */
    boolean hasUserID();
    /**
     * <pre>
     * uint64 �����û�ID
     * </pre>
     *
     * <code>optional uint64 UserID = 5;</code>
     * @return The userID.
     */
    long getUserID();

    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return Whether the remark field is set.
     */
    boolean hasRemark();
    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The remark.
     */
    java.lang.String getRemark();
    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The bytes for remark.
     */
    com.google.protobuf.ByteString
        getRemarkBytes();

    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return Whether the clientTicket field is set.
     */
    boolean hasClientTicket();
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The clientTicket.
     */
    java.lang.String getClientTicket();
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The bytes for clientTicket.
     */
    com.google.protobuf.ByteString
        getClientTicketBytes();

    /**
     * <pre>
     * SpotContractInfo �ֻ���ͬ��Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.SpotContractInfo Info = 8;</code>
     * @return Whether the info field is set.
     */
    boolean hasInfo();
    /**
     * <pre>
     * SpotContractInfo �ֻ���ͬ��Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.SpotContractInfo Info = 8;</code>
     * @return The info.
     */
    ErmcpMI1.SpotContractInfo getInfo();
    /**
     * <pre>
     * SpotContractInfo �ֻ���ͬ��Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.SpotContractInfo Info = 8;</code>
     */
    ErmcpMI1.SpotContractInfoOrBuilder getInfoOrBuilder();
  }
  /**
   * <pre>
   * �ֻ���ͬ�������� 0 18 5
   * </pre>
   *
   * Protobuf type {@code ErmcpMI1.SpotContractOperateReq}
   */
  public static final class SpotContractOperateReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ErmcpMI1.SpotContractOperateReq)
      SpotContractOperateReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SpotContractOperateReq.newBuilder() to construct.
    private SpotContractOperateReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SpotContractOperateReq() {
      remark_ = "";
      clientTicket_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SpotContractOperateReq(
        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: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              spotContractID_ = input.readUInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              operateType_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              operateSrc_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              userID_ = input.readUInt64();
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              remark_ = bs;
              break;
            }
            case 58: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000040;
              clientTicket_ = bs;
              break;
            }
            case 66: {
              ErmcpMI1.SpotContractInfo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000080) != 0)) {
                subBuilder = info_.toBuilder();
              }
              info_ = input.readMessage(ErmcpMI1.SpotContractInfo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(info_);
                info_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000080;
              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 ErmcpMI1.internal_static_ErmcpMI1_SpotContractOperateReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ErmcpMI1.internal_static_ErmcpMI1_SpotContractOperateReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ErmcpMI1.SpotContractOperateReq.class, ErmcpMI1.SpotContractOperateReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int SPOTCONTRACTID_FIELD_NUMBER = 2;
    private long spotContractID_;
    /**
     * <pre>
     * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 SpotContractID = 2;</code>
     * @return Whether the spotContractID field is set.
     */
    @java.lang.Override
    public boolean hasSpotContractID() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 SpotContractID = 2;</code>
     * @return The spotContractID.
     */
    @java.lang.Override
    public long getSpotContractID() {
      return spotContractID_;
    }

    public static final int OPERATETYPE_FIELD_NUMBER = 3;
    private int operateType_;
    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
     * </pre>
     *
     * <code>optional uint32 OperateType = 3;</code>
     * @return Whether the operateType field is set.
     */
    @java.lang.Override
    public boolean hasOperateType() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
     * </pre>
     *
     * <code>optional uint32 OperateType = 3;</code>
     * @return The operateType.
     */
    @java.lang.Override
    public int getOperateType() {
      return operateType_;
    }

    public static final int OPERATESRC_FIELD_NUMBER = 4;
    private int operateSrc_;
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 4;</code>
     * @return Whether the operateSrc field is set.
     */
    @java.lang.Override
    public boolean hasOperateSrc() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 4;</code>
     * @return The operateSrc.
     */
    @java.lang.Override
    public int getOperateSrc() {
      return operateSrc_;
    }

    public static final int USERID_FIELD_NUMBER = 5;
    private long userID_;
    /**
     * <pre>
     * uint64 �����û�ID
     * </pre>
     *
     * <code>optional uint64 UserID = 5;</code>
     * @return Whether the userID field is set.
     */
    @java.lang.Override
    public boolean hasUserID() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint64 �����û�ID
     * </pre>
     *
     * <code>optional uint64 UserID = 5;</code>
     * @return The userID.
     */
    @java.lang.Override
    public long getUserID() {
      return userID_;
    }

    public static final int REMARK_FIELD_NUMBER = 6;
    private volatile java.lang.Object remark_;
    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return Whether the remark field is set.
     */
    @java.lang.Override
    public boolean hasRemark() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The remark.
     */
    @java.lang.Override
    public java.lang.String getRemark() {
      java.lang.Object ref = remark_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          remark_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The bytes for remark.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRemarkBytes() {
      java.lang.Object ref = remark_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        remark_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTTICKET_FIELD_NUMBER = 7;
    private volatile java.lang.Object clientTicket_;
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return Whether the clientTicket field is set.
     */
    @java.lang.Override
    public boolean hasClientTicket() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The clientTicket.
     */
    @java.lang.Override
    public java.lang.String getClientTicket() {
      java.lang.Object ref = clientTicket_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          clientTicket_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The bytes for clientTicket.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientTicketBytes() {
      java.lang.Object ref = clientTicket_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientTicket_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INFO_FIELD_NUMBER = 8;
    private ErmcpMI1.SpotContractInfo info_;
    /**
     * <pre>
     * SpotContractInfo �ֻ���ͬ��Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.SpotContractInfo Info = 8;</code>
     * @return Whether the info field is set.
     */
    @java.lang.Override
    public boolean hasInfo() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * SpotContractInfo �ֻ���ͬ��Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.SpotContractInfo Info = 8;</code>
     * @return The info.
     */
    @java.lang.Override
    public ErmcpMI1.SpotContractInfo getInfo() {
      return info_ == null ? ErmcpMI1.SpotContractInfo.getDefaultInstance() : info_;
    }
    /**
     * <pre>
     * SpotContractInfo �ֻ���ͬ��Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.SpotContractInfo Info = 8;</code>
     */
    @java.lang.Override
    public ErmcpMI1.SpotContractInfoOrBuilder getInfoOrBuilder() {
      return info_ == null ? ErmcpMI1.SpotContractInfo.getDefaultInstance() : info_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, spotContractID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, operateType_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, operateSrc_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt64(5, userID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, remark_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, clientTicket_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeMessage(8, getInfo());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, spotContractID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, operateType_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, operateSrc_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, userID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, remark_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, clientTicket_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getInfo());
      }
      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 ErmcpMI1.SpotContractOperateReq)) {
        return super.equals(obj);
      }
      ErmcpMI1.SpotContractOperateReq other = (ErmcpMI1.SpotContractOperateReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasSpotContractID() != other.hasSpotContractID()) return false;
      if (hasSpotContractID()) {
        if (getSpotContractID()
            != other.getSpotContractID()) return false;
      }
      if (hasOperateType() != other.hasOperateType()) return false;
      if (hasOperateType()) {
        if (getOperateType()
            != other.getOperateType()) return false;
      }
      if (hasOperateSrc() != other.hasOperateSrc()) return false;
      if (hasOperateSrc()) {
        if (getOperateSrc()
            != other.getOperateSrc()) return false;
      }
      if (hasUserID() != other.hasUserID()) return false;
      if (hasUserID()) {
        if (getUserID()
            != other.getUserID()) return false;
      }
      if (hasRemark() != other.hasRemark()) return false;
      if (hasRemark()) {
        if (!getRemark()
            .equals(other.getRemark())) return false;
      }
      if (hasClientTicket() != other.hasClientTicket()) return false;
      if (hasClientTicket()) {
        if (!getClientTicket()
            .equals(other.getClientTicket())) return false;
      }
      if (hasInfo() != other.hasInfo()) return false;
      if (hasInfo()) {
        if (!getInfo()
            .equals(other.getInfo())) 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 (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasSpotContractID()) {
        hash = (37 * hash) + SPOTCONTRACTID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSpotContractID());
      }
      if (hasOperateType()) {
        hash = (37 * hash) + OPERATETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getOperateType();
      }
      if (hasOperateSrc()) {
        hash = (37 * hash) + OPERATESRC_FIELD_NUMBER;
        hash = (53 * hash) + getOperateSrc();
      }
      if (hasUserID()) {
        hash = (37 * hash) + USERID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getUserID());
      }
      if (hasRemark()) {
        hash = (37 * hash) + REMARK_FIELD_NUMBER;
        hash = (53 * hash) + getRemark().hashCode();
      }
      if (hasClientTicket()) {
        hash = (37 * hash) + CLIENTTICKET_FIELD_NUMBER;
        hash = (53 * hash) + getClientTicket().hashCode();
      }
      if (hasInfo()) {
        hash = (37 * hash) + INFO_FIELD_NUMBER;
        hash = (53 * hash) + getInfo().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ErmcpMI1.SpotContractOperateReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.SpotContractOperateReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.SpotContractOperateReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.SpotContractOperateReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.SpotContractOperateReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.SpotContractOperateReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.SpotContractOperateReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.SpotContractOperateReq 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 ErmcpMI1.SpotContractOperateReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static ErmcpMI1.SpotContractOperateReq 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 ErmcpMI1.SpotContractOperateReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.SpotContractOperateReq 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(ErmcpMI1.SpotContractOperateReq 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>
     * �ֻ���ͬ�������� 0 18 5
     * </pre>
     *
     * Protobuf type {@code ErmcpMI1.SpotContractOperateReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ErmcpMI1.SpotContractOperateReq)
        ErmcpMI1.SpotContractOperateReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ErmcpMI1.internal_static_ErmcpMI1_SpotContractOperateReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ErmcpMI1.internal_static_ErmcpMI1_SpotContractOperateReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ErmcpMI1.SpotContractOperateReq.class, ErmcpMI1.SpotContractOperateReq.Builder.class);
      }

      // Construct using ErmcpMI1.SpotContractOperateReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
          getInfoFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        spotContractID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        operateType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        operateSrc_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        userID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        remark_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        clientTicket_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        if (infoBuilder_ == null) {
          info_ = null;
        } else {
          infoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ErmcpMI1.internal_static_ErmcpMI1_SpotContractOperateReq_descriptor;
      }

      @java.lang.Override
      public ErmcpMI1.SpotContractOperateReq getDefaultInstanceForType() {
        return ErmcpMI1.SpotContractOperateReq.getDefaultInstance();
      }

      @java.lang.Override
      public ErmcpMI1.SpotContractOperateReq build() {
        ErmcpMI1.SpotContractOperateReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ErmcpMI1.SpotContractOperateReq buildPartial() {
        ErmcpMI1.SpotContractOperateReq result = new ErmcpMI1.SpotContractOperateReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.spotContractID_ = spotContractID_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.operateType_ = operateType_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.operateSrc_ = operateSrc_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.userID_ = userID_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.remark_ = remark_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000040;
        }
        result.clientTicket_ = clientTicket_;
        if (((from_bitField0_ & 0x00000080) != 0)) {
          if (infoBuilder_ == null) {
            result.info_ = info_;
          } else {
            result.info_ = infoBuilder_.build();
          }
          to_bitField0_ |= 0x00000080;
        }
        result.bitField0_ = to_bitField0_;
        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 ErmcpMI1.SpotContractOperateReq) {
          return mergeFrom((ErmcpMI1.SpotContractOperateReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ErmcpMI1.SpotContractOperateReq other) {
        if (other == ErmcpMI1.SpotContractOperateReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasSpotContractID()) {
          setSpotContractID(other.getSpotContractID());
        }
        if (other.hasOperateType()) {
          setOperateType(other.getOperateType());
        }
        if (other.hasOperateSrc()) {
          setOperateSrc(other.getOperateSrc());
        }
        if (other.hasUserID()) {
          setUserID(other.getUserID());
        }
        if (other.hasRemark()) {
          bitField0_ |= 0x00000020;
          remark_ = other.remark_;
          onChanged();
        }
        if (other.hasClientTicket()) {
          bitField0_ |= 0x00000040;
          clientTicket_ = other.clientTicket_;
          onChanged();
        }
        if (other.hasInfo()) {
          mergeInfo(other.getInfo());
        }
        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 {
        ErmcpMI1.SpotContractOperateReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (ErmcpMI1.SpotContractOperateReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long spotContractID_ ;
      /**
       * <pre>
       * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 SpotContractID = 2;</code>
       * @return Whether the spotContractID field is set.
       */
      @java.lang.Override
      public boolean hasSpotContractID() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 SpotContractID = 2;</code>
       * @return The spotContractID.
       */
      @java.lang.Override
      public long getSpotContractID() {
        return spotContractID_;
      }
      /**
       * <pre>
       * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 SpotContractID = 2;</code>
       * @param value The spotContractID to set.
       * @return This builder for chaining.
       */
      public Builder setSpotContractID(long value) {
        bitField0_ |= 0x00000002;
        spotContractID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 SpotContractID = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpotContractID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        spotContractID_ = 0L;
        onChanged();
        return this;
      }

      private int operateType_ ;
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
       * </pre>
       *
       * <code>optional uint32 OperateType = 3;</code>
       * @return Whether the operateType field is set.
       */
      @java.lang.Override
      public boolean hasOperateType() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
       * </pre>
       *
       * <code>optional uint32 OperateType = 3;</code>
       * @return The operateType.
       */
      @java.lang.Override
      public int getOperateType() {
        return operateType_;
      }
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
       * </pre>
       *
       * <code>optional uint32 OperateType = 3;</code>
       * @param value The operateType to set.
       * @return This builder for chaining.
       */
      public Builder setOperateType(int value) {
        bitField0_ |= 0x00000004;
        operateType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
       * </pre>
       *
       * <code>optional uint32 OperateType = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        operateType_ = 0;
        onChanged();
        return this;
      }

      private int operateSrc_ ;
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 4;</code>
       * @return Whether the operateSrc field is set.
       */
      @java.lang.Override
      public boolean hasOperateSrc() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 4;</code>
       * @return The operateSrc.
       */
      @java.lang.Override
      public int getOperateSrc() {
        return operateSrc_;
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 4;</code>
       * @param value The operateSrc to set.
       * @return This builder for chaining.
       */
      public Builder setOperateSrc(int value) {
        bitField0_ |= 0x00000008;
        operateSrc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateSrc() {
        bitField0_ = (bitField0_ & ~0x00000008);
        operateSrc_ = 0;
        onChanged();
        return this;
      }

      private long userID_ ;
      /**
       * <pre>
       * uint64 �����û�ID
       * </pre>
       *
       * <code>optional uint64 UserID = 5;</code>
       * @return Whether the userID field is set.
       */
      @java.lang.Override
      public boolean hasUserID() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint64 �����û�ID
       * </pre>
       *
       * <code>optional uint64 UserID = 5;</code>
       * @return The userID.
       */
      @java.lang.Override
      public long getUserID() {
        return userID_;
      }
      /**
       * <pre>
       * uint64 �����û�ID
       * </pre>
       *
       * <code>optional uint64 UserID = 5;</code>
       * @param value The userID to set.
       * @return This builder for chaining.
       */
      public Builder setUserID(long value) {
        bitField0_ |= 0x00000010;
        userID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 �����û�ID
       * </pre>
       *
       * <code>optional uint64 UserID = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        userID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object remark_ = "";
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return Whether the remark field is set.
       */
      public boolean hasRemark() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return The remark.
       */
      public java.lang.String getRemark() {
        java.lang.Object ref = remark_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            remark_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return The bytes for remark.
       */
      public com.google.protobuf.ByteString
          getRemarkBytes() {
        java.lang.Object ref = remark_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          remark_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @param value The remark to set.
       * @return This builder for chaining.
       */
      public Builder setRemark(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        remark_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearRemark() {
        bitField0_ = (bitField0_ & ~0x00000020);
        remark_ = getDefaultInstance().getRemark();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @param value The bytes for remark to set.
       * @return This builder for chaining.
       */
      public Builder setRemarkBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        remark_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object clientTicket_ = "";
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return Whether the clientTicket field is set.
       */
      public boolean hasClientTicket() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return The clientTicket.
       */
      public java.lang.String getClientTicket() {
        java.lang.Object ref = clientTicket_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientTicket_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return The bytes for clientTicket.
       */
      public com.google.protobuf.ByteString
          getClientTicketBytes() {
        java.lang.Object ref = clientTicket_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientTicket_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @param value The clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicket(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        clientTicket_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientTicket() {
        bitField0_ = (bitField0_ & ~0x00000040);
        clientTicket_ = getDefaultInstance().getClientTicket();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @param value The bytes for clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicketBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        clientTicket_ = value;
        onChanged();
        return this;
      }

      private ErmcpMI1.SpotContractInfo info_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ErmcpMI1.SpotContractInfo, ErmcpMI1.SpotContractInfo.Builder, ErmcpMI1.SpotContractInfoOrBuilder> infoBuilder_;
      /**
       * <pre>
       * SpotContractInfo �ֻ���ͬ��Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.SpotContractInfo Info = 8;</code>
       * @return Whether the info field is set.
       */
      public boolean hasInfo() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * SpotContractInfo �ֻ���ͬ��Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.SpotContractInfo Info = 8;</code>
       * @return The info.
       */
      public ErmcpMI1.SpotContractInfo getInfo() {
        if (infoBuilder_ == null) {
          return info_ == null ? ErmcpMI1.SpotContractInfo.getDefaultInstance() : info_;
        } else {
          return infoBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * SpotContractInfo �ֻ���ͬ��Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.SpotContractInfo Info = 8;</code>
       */
      public Builder setInfo(ErmcpMI1.SpotContractInfo value) {
        if (infoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          info_ = value;
          onChanged();
        } else {
          infoBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <pre>
       * SpotContractInfo �ֻ���ͬ��Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.SpotContractInfo Info = 8;</code>
       */
      public Builder setInfo(
          ErmcpMI1.SpotContractInfo.Builder builderForValue) {
        if (infoBuilder_ == null) {
          info_ = builderForValue.build();
          onChanged();
        } else {
          infoBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <pre>
       * SpotContractInfo �ֻ���ͬ��Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.SpotContractInfo Info = 8;</code>
       */
      public Builder mergeInfo(ErmcpMI1.SpotContractInfo value) {
        if (infoBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0) &&
              info_ != null &&
              info_ != ErmcpMI1.SpotContractInfo.getDefaultInstance()) {
            info_ =
              ErmcpMI1.SpotContractInfo.newBuilder(info_).mergeFrom(value).buildPartial();
          } else {
            info_ = value;
          }
          onChanged();
        } else {
          infoBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <pre>
       * SpotContractInfo �ֻ���ͬ��Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.SpotContractInfo Info = 8;</code>
       */
      public Builder clearInfo() {
        if (infoBuilder_ == null) {
          info_ = null;
          onChanged();
        } else {
          infoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       * <pre>
       * SpotContractInfo �ֻ���ͬ��Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.SpotContractInfo Info = 8;</code>
       */
      public ErmcpMI1.SpotContractInfo.Builder getInfoBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getInfoFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * SpotContractInfo �ֻ���ͬ��Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.SpotContractInfo Info = 8;</code>
       */
      public ErmcpMI1.SpotContractInfoOrBuilder getInfoOrBuilder() {
        if (infoBuilder_ != null) {
          return infoBuilder_.getMessageOrBuilder();
        } else {
          return info_ == null ?
              ErmcpMI1.SpotContractInfo.getDefaultInstance() : info_;
        }
      }
      /**
       * <pre>
       * SpotContractInfo �ֻ���ͬ��Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.SpotContractInfo Info = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ErmcpMI1.SpotContractInfo, ErmcpMI1.SpotContractInfo.Builder, ErmcpMI1.SpotContractInfoOrBuilder>
          getInfoFieldBuilder() {
        if (infoBuilder_ == null) {
          infoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ErmcpMI1.SpotContractInfo, ErmcpMI1.SpotContractInfo.Builder, ErmcpMI1.SpotContractInfoOrBuilder>(
                  getInfo(),
                  getParentForChildren(),
                  isClean());
          info_ = null;
        }
        return infoBuilder_;
      }
      @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:ErmcpMI1.SpotContractOperateReq)
    }

    // @@protoc_insertion_point(class_scope:ErmcpMI1.SpotContractOperateReq)
    private static final ErmcpMI1.SpotContractOperateReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ErmcpMI1.SpotContractOperateReq();
    }

    public static ErmcpMI1.SpotContractOperateReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ErmcpMI1.SpotContractOperateReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SpotContractOperateRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ErmcpMI1.SpotContractOperateRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 ������
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 ������
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 SpotContractID = 4;</code>
     * @return Whether the spotContractID field is set.
     */
    boolean hasSpotContractID();
    /**
     * <pre>
     * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 SpotContractID = 4;</code>
     * @return The spotContractID.
     */
    long getSpotContractID();

    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return Whether the operateType field is set.
     */
    boolean hasOperateType();
    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return The operateType.
     */
    int getOperateType();

    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 6;</code>
     * @return Whether the operateSrc field is set.
     */
    boolean hasOperateSrc();
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 6;</code>
     * @return The operateSrc.
     */
    int getOperateSrc();

    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return Whether the clientTicket field is set.
     */
    boolean hasClientTicket();
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The clientTicket.
     */
    java.lang.String getClientTicket();
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The bytes for clientTicket.
     */
    com.google.protobuf.ByteString
        getClientTicketBytes();
  }
  /**
   * <pre>
   * �ֻ���ͬ������Ӧ 0 18 6
   * </pre>
   *
   * Protobuf type {@code ErmcpMI1.SpotContractOperateRsp}
   */
  public static final class SpotContractOperateRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ErmcpMI1.SpotContractOperateRsp)
      SpotContractOperateRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SpotContractOperateRsp.newBuilder() to construct.
    private SpotContractOperateRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SpotContractOperateRsp() {
      retDesc_ = "";
      clientTicket_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SpotContractOperateRsp(
        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: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              spotContractID_ = input.readUInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              operateType_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              operateSrc_ = input.readUInt32();
              break;
            }
            case 58: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000040;
              clientTicket_ = bs;
              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 ErmcpMI1.internal_static_ErmcpMI1_SpotContractOperateRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ErmcpMI1.internal_static_ErmcpMI1_SpotContractOperateRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ErmcpMI1.SpotContractOperateRsp.class, ErmcpMI1.SpotContractOperateRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 ������
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 ������
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SPOTCONTRACTID_FIELD_NUMBER = 4;
    private long spotContractID_;
    /**
     * <pre>
     * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 SpotContractID = 4;</code>
     * @return Whether the spotContractID field is set.
     */
    @java.lang.Override
    public boolean hasSpotContractID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 SpotContractID = 4;</code>
     * @return The spotContractID.
     */
    @java.lang.Override
    public long getSpotContractID() {
      return spotContractID_;
    }

    public static final int OPERATETYPE_FIELD_NUMBER = 5;
    private int operateType_;
    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return Whether the operateType field is set.
     */
    @java.lang.Override
    public boolean hasOperateType() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return The operateType.
     */
    @java.lang.Override
    public int getOperateType() {
      return operateType_;
    }

    public static final int OPERATESRC_FIELD_NUMBER = 6;
    private int operateSrc_;
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 6;</code>
     * @return Whether the operateSrc field is set.
     */
    @java.lang.Override
    public boolean hasOperateSrc() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 6;</code>
     * @return The operateSrc.
     */
    @java.lang.Override
    public int getOperateSrc() {
      return operateSrc_;
    }

    public static final int CLIENTTICKET_FIELD_NUMBER = 7;
    private volatile java.lang.Object clientTicket_;
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return Whether the clientTicket field is set.
     */
    @java.lang.Override
    public boolean hasClientTicket() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The clientTicket.
     */
    @java.lang.Override
    public java.lang.String getClientTicket() {
      java.lang.Object ref = clientTicket_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          clientTicket_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The bytes for clientTicket.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientTicketBytes() {
      java.lang.Object ref = clientTicket_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientTicket_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, spotContractID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, operateType_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt32(6, operateSrc_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, clientTicket_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, spotContractID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, operateType_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, operateSrc_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, clientTicket_);
      }
      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 ErmcpMI1.SpotContractOperateRsp)) {
        return super.equals(obj);
      }
      ErmcpMI1.SpotContractOperateRsp other = (ErmcpMI1.SpotContractOperateRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasSpotContractID() != other.hasSpotContractID()) return false;
      if (hasSpotContractID()) {
        if (getSpotContractID()
            != other.getSpotContractID()) return false;
      }
      if (hasOperateType() != other.hasOperateType()) return false;
      if (hasOperateType()) {
        if (getOperateType()
            != other.getOperateType()) return false;
      }
      if (hasOperateSrc() != other.hasOperateSrc()) return false;
      if (hasOperateSrc()) {
        if (getOperateSrc()
            != other.getOperateSrc()) return false;
      }
      if (hasClientTicket() != other.hasClientTicket()) return false;
      if (hasClientTicket()) {
        if (!getClientTicket()
            .equals(other.getClientTicket())) 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 (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasSpotContractID()) {
        hash = (37 * hash) + SPOTCONTRACTID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSpotContractID());
      }
      if (hasOperateType()) {
        hash = (37 * hash) + OPERATETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getOperateType();
      }
      if (hasOperateSrc()) {
        hash = (37 * hash) + OPERATESRC_FIELD_NUMBER;
        hash = (53 * hash) + getOperateSrc();
      }
      if (hasClientTicket()) {
        hash = (37 * hash) + CLIENTTICKET_FIELD_NUMBER;
        hash = (53 * hash) + getClientTicket().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ErmcpMI1.SpotContractOperateRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.SpotContractOperateRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.SpotContractOperateRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.SpotContractOperateRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.SpotContractOperateRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.SpotContractOperateRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.SpotContractOperateRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.SpotContractOperateRsp 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 ErmcpMI1.SpotContractOperateRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static ErmcpMI1.SpotContractOperateRsp 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 ErmcpMI1.SpotContractOperateRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.SpotContractOperateRsp 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(ErmcpMI1.SpotContractOperateRsp 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>
     * �ֻ���ͬ������Ӧ 0 18 6
     * </pre>
     *
     * Protobuf type {@code ErmcpMI1.SpotContractOperateRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ErmcpMI1.SpotContractOperateRsp)
        ErmcpMI1.SpotContractOperateRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ErmcpMI1.internal_static_ErmcpMI1_SpotContractOperateRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ErmcpMI1.internal_static_ErmcpMI1_SpotContractOperateRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ErmcpMI1.SpotContractOperateRsp.class, ErmcpMI1.SpotContractOperateRsp.Builder.class);
      }

      // Construct using ErmcpMI1.SpotContractOperateRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        spotContractID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        operateType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        operateSrc_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        clientTicket_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ErmcpMI1.internal_static_ErmcpMI1_SpotContractOperateRsp_descriptor;
      }

      @java.lang.Override
      public ErmcpMI1.SpotContractOperateRsp getDefaultInstanceForType() {
        return ErmcpMI1.SpotContractOperateRsp.getDefaultInstance();
      }

      @java.lang.Override
      public ErmcpMI1.SpotContractOperateRsp build() {
        ErmcpMI1.SpotContractOperateRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ErmcpMI1.SpotContractOperateRsp buildPartial() {
        ErmcpMI1.SpotContractOperateRsp result = new ErmcpMI1.SpotContractOperateRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.spotContractID_ = spotContractID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.operateType_ = operateType_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.operateSrc_ = operateSrc_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000040;
        }
        result.clientTicket_ = clientTicket_;
        result.bitField0_ = to_bitField0_;
        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 ErmcpMI1.SpotContractOperateRsp) {
          return mergeFrom((ErmcpMI1.SpotContractOperateRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ErmcpMI1.SpotContractOperateRsp other) {
        if (other == ErmcpMI1.SpotContractOperateRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasSpotContractID()) {
          setSpotContractID(other.getSpotContractID());
        }
        if (other.hasOperateType()) {
          setOperateType(other.getOperateType());
        }
        if (other.hasOperateSrc()) {
          setOperateSrc(other.getOperateSrc());
        }
        if (other.hasClientTicket()) {
          bitField0_ |= 0x00000040;
          clientTicket_ = other.clientTicket_;
          onChanged();
        }
        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 {
        ErmcpMI1.SpotContractOperateRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (ErmcpMI1.SpotContractOperateRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 ������
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 ������
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 ������
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 ������
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private long spotContractID_ ;
      /**
       * <pre>
       * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 SpotContractID = 4;</code>
       * @return Whether the spotContractID field is set.
       */
      @java.lang.Override
      public boolean hasSpotContractID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 SpotContractID = 4;</code>
       * @return The spotContractID.
       */
      @java.lang.Override
      public long getSpotContractID() {
        return spotContractID_;
      }
      /**
       * <pre>
       * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 SpotContractID = 4;</code>
       * @param value The spotContractID to set.
       * @return This builder for chaining.
       */
      public Builder setSpotContractID(long value) {
        bitField0_ |= 0x00000008;
        spotContractID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 SpotContractID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpotContractID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        spotContractID_ = 0L;
        onChanged();
        return this;
      }

      private int operateType_ ;
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @return Whether the operateType field is set.
       */
      @java.lang.Override
      public boolean hasOperateType() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @return The operateType.
       */
      @java.lang.Override
      public int getOperateType() {
        return operateType_;
      }
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @param value The operateType to set.
       * @return This builder for chaining.
       */
      public Builder setOperateType(int value) {
        bitField0_ |= 0x00000010;
        operateType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ��������-1:����ݸ�2:�ύ����3:���ͨ��4:��˾ܾ�5:����6:�������7:�쳣��ֹ
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        operateType_ = 0;
        onChanged();
        return this;
      }

      private int operateSrc_ ;
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 6;</code>
       * @return Whether the operateSrc field is set.
       */
      @java.lang.Override
      public boolean hasOperateSrc() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 6;</code>
       * @return The operateSrc.
       */
      @java.lang.Override
      public int getOperateSrc() {
        return operateSrc_;
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 6;</code>
       * @param value The operateSrc to set.
       * @return This builder for chaining.
       */
      public Builder setOperateSrc(int value) {
        bitField0_ |= 0x00000020;
        operateSrc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateSrc() {
        bitField0_ = (bitField0_ & ~0x00000020);
        operateSrc_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object clientTicket_ = "";
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return Whether the clientTicket field is set.
       */
      public boolean hasClientTicket() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return The clientTicket.
       */
      public java.lang.String getClientTicket() {
        java.lang.Object ref = clientTicket_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientTicket_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return The bytes for clientTicket.
       */
      public com.google.protobuf.ByteString
          getClientTicketBytes() {
        java.lang.Object ref = clientTicket_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientTicket_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @param value The clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicket(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        clientTicket_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientTicket() {
        bitField0_ = (bitField0_ & ~0x00000040);
        clientTicket_ = getDefaultInstance().getClientTicket();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @param value The bytes for clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicketBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        clientTicket_ = value;
        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:ErmcpMI1.SpotContractOperateRsp)
    }

    // @@protoc_insertion_point(class_scope:ErmcpMI1.SpotContractOperateRsp)
    private static final ErmcpMI1.SpotContractOperateRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ErmcpMI1.SpotContractOperateRsp();
    }

    public static ErmcpMI1.SpotContractOperateRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ErmcpMI1.SpotContractOperateRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ContractOperateApplyInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ErmcpMI1.ContractOperateApplyInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * uint32 ������������-1:���2:����3:����4:��Ʊ
     * </pre>
     *
     * <code>optional uint32 OperateApplyType = 1;</code>
     * @return Whether the operateApplyType field is set.
     */
    boolean hasOperateApplyType();
    /**
     * <pre>
     * uint32 ������������-1:���2:����3:����4:��Ʊ
     * </pre>
     *
     * <code>optional uint32 OperateApplyType = 1;</code>
     * @return The operateApplyType.
     */
    int getOperateApplyType();

    /**
     * <pre>
     * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 RelatedID = 2;</code>
     * @return Whether the relatedID field is set.
     */
    boolean hasRelatedID();
    /**
     * <pre>
     * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 RelatedID = 2;</code>
     * @return The relatedID.
     */
    long getRelatedID();

    /**
     * <pre>
     * bytes ��ϸJSON
     * </pre>
     *
     * <code>optional bytes DetailJson = 3;</code>
     * @return Whether the detailJson field is set.
     */
    boolean hasDetailJson();
    /**
     * <pre>
     * bytes ��ϸJSON
     * </pre>
     *
     * <code>optional bytes DetailJson = 3;</code>
     * @return The detailJson.
     */
    com.google.protobuf.ByteString getDetailJson();

    /**
     * <pre>
     * bytes ����
     * </pre>
     *
     * <code>optional bytes AttachUrl = 4;</code>
     * @return Whether the attachUrl field is set.
     */
    boolean hasAttachUrl();
    /**
     * <pre>
     * bytes ����
     * </pre>
     *
     * <code>optional bytes AttachUrl = 4;</code>
     * @return The attachUrl.
     */
    com.google.protobuf.ByteString getAttachUrl();
  }
  /**
   * <pre>
   * ��ͬ������Ϣ 0 18 7
   * </pre>
   *
   * Protobuf type {@code ErmcpMI1.ContractOperateApplyInfo}
   */
  public static final class ContractOperateApplyInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ErmcpMI1.ContractOperateApplyInfo)
      ContractOperateApplyInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ContractOperateApplyInfo.newBuilder() to construct.
    private ContractOperateApplyInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ContractOperateApplyInfo() {
      detailJson_ = com.google.protobuf.ByteString.EMPTY;
      attachUrl_ = com.google.protobuf.ByteString.EMPTY;
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ContractOperateApplyInfo(
        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: {
              bitField0_ |= 0x00000001;
              operateApplyType_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              relatedID_ = input.readUInt64();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              detailJson_ = input.readBytes();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              attachUrl_ = input.readBytes();
              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 ErmcpMI1.internal_static_ErmcpMI1_ContractOperateApplyInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ErmcpMI1.internal_static_ErmcpMI1_ContractOperateApplyInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ErmcpMI1.ContractOperateApplyInfo.class, ErmcpMI1.ContractOperateApplyInfo.Builder.class);
    }

    private int bitField0_;
    public static final int OPERATEAPPLYTYPE_FIELD_NUMBER = 1;
    private int operateApplyType_;
    /**
     * <pre>
     * uint32 ������������-1:���2:����3:����4:��Ʊ
     * </pre>
     *
     * <code>optional uint32 OperateApplyType = 1;</code>
     * @return Whether the operateApplyType field is set.
     */
    @java.lang.Override
    public boolean hasOperateApplyType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * uint32 ������������-1:���2:����3:����4:��Ʊ
     * </pre>
     *
     * <code>optional uint32 OperateApplyType = 1;</code>
     * @return The operateApplyType.
     */
    @java.lang.Override
    public int getOperateApplyType() {
      return operateApplyType_;
    }

    public static final int RELATEDID_FIELD_NUMBER = 2;
    private long relatedID_;
    /**
     * <pre>
     * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 RelatedID = 2;</code>
     * @return Whether the relatedID field is set.
     */
    @java.lang.Override
    public boolean hasRelatedID() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 RelatedID = 2;</code>
     * @return The relatedID.
     */
    @java.lang.Override
    public long getRelatedID() {
      return relatedID_;
    }

    public static final int DETAILJSON_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString detailJson_;
    /**
     * <pre>
     * bytes ��ϸJSON
     * </pre>
     *
     * <code>optional bytes DetailJson = 3;</code>
     * @return Whether the detailJson field is set.
     */
    @java.lang.Override
    public boolean hasDetailJson() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * bytes ��ϸJSON
     * </pre>
     *
     * <code>optional bytes DetailJson = 3;</code>
     * @return The detailJson.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getDetailJson() {
      return detailJson_;
    }

    public static final int ATTACHURL_FIELD_NUMBER = 4;
    private com.google.protobuf.ByteString attachUrl_;
    /**
     * <pre>
     * bytes ����
     * </pre>
     *
     * <code>optional bytes AttachUrl = 4;</code>
     * @return Whether the attachUrl field is set.
     */
    @java.lang.Override
    public boolean hasAttachUrl() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * bytes ����
     * </pre>
     *
     * <code>optional bytes AttachUrl = 4;</code>
     * @return The attachUrl.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getAttachUrl() {
      return attachUrl_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, operateApplyType_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, relatedID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBytes(3, detailJson_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeBytes(4, attachUrl_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, operateApplyType_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, relatedID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, detailJson_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, attachUrl_);
      }
      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 ErmcpMI1.ContractOperateApplyInfo)) {
        return super.equals(obj);
      }
      ErmcpMI1.ContractOperateApplyInfo other = (ErmcpMI1.ContractOperateApplyInfo) obj;

      if (hasOperateApplyType() != other.hasOperateApplyType()) return false;
      if (hasOperateApplyType()) {
        if (getOperateApplyType()
            != other.getOperateApplyType()) return false;
      }
      if (hasRelatedID() != other.hasRelatedID()) return false;
      if (hasRelatedID()) {
        if (getRelatedID()
            != other.getRelatedID()) return false;
      }
      if (hasDetailJson() != other.hasDetailJson()) return false;
      if (hasDetailJson()) {
        if (!getDetailJson()
            .equals(other.getDetailJson())) return false;
      }
      if (hasAttachUrl() != other.hasAttachUrl()) return false;
      if (hasAttachUrl()) {
        if (!getAttachUrl()
            .equals(other.getAttachUrl())) 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 (hasOperateApplyType()) {
        hash = (37 * hash) + OPERATEAPPLYTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getOperateApplyType();
      }
      if (hasRelatedID()) {
        hash = (37 * hash) + RELATEDID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getRelatedID());
      }
      if (hasDetailJson()) {
        hash = (37 * hash) + DETAILJSON_FIELD_NUMBER;
        hash = (53 * hash) + getDetailJson().hashCode();
      }
      if (hasAttachUrl()) {
        hash = (37 * hash) + ATTACHURL_FIELD_NUMBER;
        hash = (53 * hash) + getAttachUrl().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ErmcpMI1.ContractOperateApplyInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.ContractOperateApplyInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.ContractOperateApplyInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.ContractOperateApplyInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.ContractOperateApplyInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.ContractOperateApplyInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.ContractOperateApplyInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.ContractOperateApplyInfo 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 ErmcpMI1.ContractOperateApplyInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static ErmcpMI1.ContractOperateApplyInfo 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 ErmcpMI1.ContractOperateApplyInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.ContractOperateApplyInfo 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(ErmcpMI1.ContractOperateApplyInfo 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>
     * ��ͬ������Ϣ 0 18 7
     * </pre>
     *
     * Protobuf type {@code ErmcpMI1.ContractOperateApplyInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ErmcpMI1.ContractOperateApplyInfo)
        ErmcpMI1.ContractOperateApplyInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ErmcpMI1.internal_static_ErmcpMI1_ContractOperateApplyInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ErmcpMI1.internal_static_ErmcpMI1_ContractOperateApplyInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ErmcpMI1.ContractOperateApplyInfo.class, ErmcpMI1.ContractOperateApplyInfo.Builder.class);
      }

      // Construct using ErmcpMI1.ContractOperateApplyInfo.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();
        operateApplyType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        relatedID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        detailJson_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        attachUrl_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ErmcpMI1.internal_static_ErmcpMI1_ContractOperateApplyInfo_descriptor;
      }

      @java.lang.Override
      public ErmcpMI1.ContractOperateApplyInfo getDefaultInstanceForType() {
        return ErmcpMI1.ContractOperateApplyInfo.getDefaultInstance();
      }

      @java.lang.Override
      public ErmcpMI1.ContractOperateApplyInfo build() {
        ErmcpMI1.ContractOperateApplyInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ErmcpMI1.ContractOperateApplyInfo buildPartial() {
        ErmcpMI1.ContractOperateApplyInfo result = new ErmcpMI1.ContractOperateApplyInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.operateApplyType_ = operateApplyType_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.relatedID_ = relatedID_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.detailJson_ = detailJson_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.attachUrl_ = attachUrl_;
        result.bitField0_ = to_bitField0_;
        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 ErmcpMI1.ContractOperateApplyInfo) {
          return mergeFrom((ErmcpMI1.ContractOperateApplyInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ErmcpMI1.ContractOperateApplyInfo other) {
        if (other == ErmcpMI1.ContractOperateApplyInfo.getDefaultInstance()) return this;
        if (other.hasOperateApplyType()) {
          setOperateApplyType(other.getOperateApplyType());
        }
        if (other.hasRelatedID()) {
          setRelatedID(other.getRelatedID());
        }
        if (other.hasDetailJson()) {
          setDetailJson(other.getDetailJson());
        }
        if (other.hasAttachUrl()) {
          setAttachUrl(other.getAttachUrl());
        }
        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 {
        ErmcpMI1.ContractOperateApplyInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (ErmcpMI1.ContractOperateApplyInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int operateApplyType_ ;
      /**
       * <pre>
       * uint32 ������������-1:���2:����3:����4:��Ʊ
       * </pre>
       *
       * <code>optional uint32 OperateApplyType = 1;</code>
       * @return Whether the operateApplyType field is set.
       */
      @java.lang.Override
      public boolean hasOperateApplyType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * uint32 ������������-1:���2:����3:����4:��Ʊ
       * </pre>
       *
       * <code>optional uint32 OperateApplyType = 1;</code>
       * @return The operateApplyType.
       */
      @java.lang.Override
      public int getOperateApplyType() {
        return operateApplyType_;
      }
      /**
       * <pre>
       * uint32 ������������-1:���2:����3:����4:��Ʊ
       * </pre>
       *
       * <code>optional uint32 OperateApplyType = 1;</code>
       * @param value The operateApplyType to set.
       * @return This builder for chaining.
       */
      public Builder setOperateApplyType(int value) {
        bitField0_ |= 0x00000001;
        operateApplyType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ������������-1:���2:����3:����4:��Ʊ
       * </pre>
       *
       * <code>optional uint32 OperateApplyType = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateApplyType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        operateApplyType_ = 0;
        onChanged();
        return this;
      }

      private long relatedID_ ;
      /**
       * <pre>
       * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 RelatedID = 2;</code>
       * @return Whether the relatedID field is set.
       */
      @java.lang.Override
      public boolean hasRelatedID() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 RelatedID = 2;</code>
       * @return The relatedID.
       */
      @java.lang.Override
      public long getRelatedID() {
        return relatedID_;
      }
      /**
       * <pre>
       * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 RelatedID = 2;</code>
       * @param value The relatedID to set.
       * @return This builder for chaining.
       */
      public Builder setRelatedID(long value) {
        bitField0_ |= 0x00000002;
        relatedID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 �ֻ���ͬID(602+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 RelatedID = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRelatedID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        relatedID_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString detailJson_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * bytes ��ϸJSON
       * </pre>
       *
       * <code>optional bytes DetailJson = 3;</code>
       * @return Whether the detailJson field is set.
       */
      @java.lang.Override
      public boolean hasDetailJson() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * bytes ��ϸJSON
       * </pre>
       *
       * <code>optional bytes DetailJson = 3;</code>
       * @return The detailJson.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getDetailJson() {
        return detailJson_;
      }
      /**
       * <pre>
       * bytes ��ϸJSON
       * </pre>
       *
       * <code>optional bytes DetailJson = 3;</code>
       * @param value The detailJson to set.
       * @return This builder for chaining.
       */
      public Builder setDetailJson(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        detailJson_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * bytes ��ϸJSON
       * </pre>
       *
       * <code>optional bytes DetailJson = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDetailJson() {
        bitField0_ = (bitField0_ & ~0x00000004);
        detailJson_ = getDefaultInstance().getDetailJson();
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString attachUrl_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * bytes ����
       * </pre>
       *
       * <code>optional bytes AttachUrl = 4;</code>
       * @return Whether the attachUrl field is set.
       */
      @java.lang.Override
      public boolean hasAttachUrl() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * bytes ����
       * </pre>
       *
       * <code>optional bytes AttachUrl = 4;</code>
       * @return The attachUrl.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getAttachUrl() {
        return attachUrl_;
      }
      /**
       * <pre>
       * bytes ����
       * </pre>
       *
       * <code>optional bytes AttachUrl = 4;</code>
       * @param value The attachUrl to set.
       * @return This builder for chaining.
       */
      public Builder setAttachUrl(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        attachUrl_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * bytes ����
       * </pre>
       *
       * <code>optional bytes AttachUrl = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearAttachUrl() {
        bitField0_ = (bitField0_ & ~0x00000008);
        attachUrl_ = getDefaultInstance().getAttachUrl();
        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:ErmcpMI1.ContractOperateApplyInfo)
    }

    // @@protoc_insertion_point(class_scope:ErmcpMI1.ContractOperateApplyInfo)
    private static final ErmcpMI1.ContractOperateApplyInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ErmcpMI1.ContractOperateApplyInfo();
    }

    public static ErmcpMI1.ContractOperateApplyInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ErmcpMI1.ContractOperateApplyInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ContractOperateApplyReqOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ErmcpMI1.ContractOperateApplyReq)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 OperateApplyID = 2;</code>
     * @return Whether the operateApplyID field is set.
     */
    boolean hasOperateApplyID();
    /**
     * <pre>
     * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 OperateApplyID = 2;</code>
     * @return The operateApplyID.
     */
    long getOperateApplyID();

    /**
     * <pre>
     * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
     * </pre>
     *
     * <code>optional uint32 OperateType = 3;</code>
     * @return Whether the operateType field is set.
     */
    boolean hasOperateType();
    /**
     * <pre>
     * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
     * </pre>
     *
     * <code>optional uint32 OperateType = 3;</code>
     * @return The operateType.
     */
    int getOperateType();

    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 4;</code>
     * @return Whether the operateSrc field is set.
     */
    boolean hasOperateSrc();
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 4;</code>
     * @return The operateSrc.
     */
    int getOperateSrc();

    /**
     * <pre>
     * uint64 �����û�ID
     * </pre>
     *
     * <code>optional uint64 UserID = 5;</code>
     * @return Whether the userID field is set.
     */
    boolean hasUserID();
    /**
     * <pre>
     * uint64 �����û�ID
     * </pre>
     *
     * <code>optional uint64 UserID = 5;</code>
     * @return The userID.
     */
    long getUserID();

    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return Whether the remark field is set.
     */
    boolean hasRemark();
    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The remark.
     */
    java.lang.String getRemark();
    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The bytes for remark.
     */
    com.google.protobuf.ByteString
        getRemarkBytes();

    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return Whether the clientTicket field is set.
     */
    boolean hasClientTicket();
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The clientTicket.
     */
    java.lang.String getClientTicket();
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The bytes for clientTicket.
     */
    com.google.protobuf.ByteString
        getClientTicketBytes();

    /**
     * <pre>
     * ContractOperateApplyInfo ��ͬ������Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.ContractOperateApplyInfo Info = 8;</code>
     * @return Whether the info field is set.
     */
    boolean hasInfo();
    /**
     * <pre>
     * ContractOperateApplyInfo ��ͬ������Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.ContractOperateApplyInfo Info = 8;</code>
     * @return The info.
     */
    ErmcpMI1.ContractOperateApplyInfo getInfo();
    /**
     * <pre>
     * ContractOperateApplyInfo ��ͬ������Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.ContractOperateApplyInfo Info = 8;</code>
     */
    ErmcpMI1.ContractOperateApplyInfoOrBuilder getInfoOrBuilder();
  }
  /**
   * <pre>
   * ��ͬ�������� 0 18 8
   * </pre>
   *
   * Protobuf type {@code ErmcpMI1.ContractOperateApplyReq}
   */
  public static final class ContractOperateApplyReq extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ErmcpMI1.ContractOperateApplyReq)
      ContractOperateApplyReqOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ContractOperateApplyReq.newBuilder() to construct.
    private ContractOperateApplyReq(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ContractOperateApplyReq() {
      remark_ = "";
      clientTicket_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ContractOperateApplyReq(
        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: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              operateApplyID_ = input.readUInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              operateType_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              operateSrc_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              userID_ = input.readUInt64();
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              remark_ = bs;
              break;
            }
            case 58: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000040;
              clientTicket_ = bs;
              break;
            }
            case 66: {
              ErmcpMI1.ContractOperateApplyInfo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000080) != 0)) {
                subBuilder = info_.toBuilder();
              }
              info_ = input.readMessage(ErmcpMI1.ContractOperateApplyInfo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(info_);
                info_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000080;
              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 ErmcpMI1.internal_static_ErmcpMI1_ContractOperateApplyReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ErmcpMI1.internal_static_ErmcpMI1_ContractOperateApplyReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ErmcpMI1.ContractOperateApplyReq.class, ErmcpMI1.ContractOperateApplyReq.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int OPERATEAPPLYID_FIELD_NUMBER = 2;
    private long operateApplyID_;
    /**
     * <pre>
     * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 OperateApplyID = 2;</code>
     * @return Whether the operateApplyID field is set.
     */
    @java.lang.Override
    public boolean hasOperateApplyID() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 OperateApplyID = 2;</code>
     * @return The operateApplyID.
     */
    @java.lang.Override
    public long getOperateApplyID() {
      return operateApplyID_;
    }

    public static final int OPERATETYPE_FIELD_NUMBER = 3;
    private int operateType_;
    /**
     * <pre>
     * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
     * </pre>
     *
     * <code>optional uint32 OperateType = 3;</code>
     * @return Whether the operateType field is set.
     */
    @java.lang.Override
    public boolean hasOperateType() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
     * </pre>
     *
     * <code>optional uint32 OperateType = 3;</code>
     * @return The operateType.
     */
    @java.lang.Override
    public int getOperateType() {
      return operateType_;
    }

    public static final int OPERATESRC_FIELD_NUMBER = 4;
    private int operateSrc_;
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 4;</code>
     * @return Whether the operateSrc field is set.
     */
    @java.lang.Override
    public boolean hasOperateSrc() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 4;</code>
     * @return The operateSrc.
     */
    @java.lang.Override
    public int getOperateSrc() {
      return operateSrc_;
    }

    public static final int USERID_FIELD_NUMBER = 5;
    private long userID_;
    /**
     * <pre>
     * uint64 �����û�ID
     * </pre>
     *
     * <code>optional uint64 UserID = 5;</code>
     * @return Whether the userID field is set.
     */
    @java.lang.Override
    public boolean hasUserID() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint64 �����û�ID
     * </pre>
     *
     * <code>optional uint64 UserID = 5;</code>
     * @return The userID.
     */
    @java.lang.Override
    public long getUserID() {
      return userID_;
    }

    public static final int REMARK_FIELD_NUMBER = 6;
    private volatile java.lang.Object remark_;
    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return Whether the remark field is set.
     */
    @java.lang.Override
    public boolean hasRemark() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The remark.
     */
    @java.lang.Override
    public java.lang.String getRemark() {
      java.lang.Object ref = remark_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          remark_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string ��ע
     * </pre>
     *
     * <code>optional string Remark = 6;</code>
     * @return The bytes for remark.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRemarkBytes() {
      java.lang.Object ref = remark_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        remark_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTTICKET_FIELD_NUMBER = 7;
    private volatile java.lang.Object clientTicket_;
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return Whether the clientTicket field is set.
     */
    @java.lang.Override
    public boolean hasClientTicket() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The clientTicket.
     */
    @java.lang.Override
    public java.lang.String getClientTicket() {
      java.lang.Object ref = clientTicket_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          clientTicket_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The bytes for clientTicket.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientTicketBytes() {
      java.lang.Object ref = clientTicket_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientTicket_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INFO_FIELD_NUMBER = 8;
    private ErmcpMI1.ContractOperateApplyInfo info_;
    /**
     * <pre>
     * ContractOperateApplyInfo ��ͬ������Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.ContractOperateApplyInfo Info = 8;</code>
     * @return Whether the info field is set.
     */
    @java.lang.Override
    public boolean hasInfo() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * ContractOperateApplyInfo ��ͬ������Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.ContractOperateApplyInfo Info = 8;</code>
     * @return The info.
     */
    @java.lang.Override
    public ErmcpMI1.ContractOperateApplyInfo getInfo() {
      return info_ == null ? ErmcpMI1.ContractOperateApplyInfo.getDefaultInstance() : info_;
    }
    /**
     * <pre>
     * ContractOperateApplyInfo ��ͬ������Ϣ
     * </pre>
     *
     * <code>optional .ErmcpMI1.ContractOperateApplyInfo Info = 8;</code>
     */
    @java.lang.Override
    public ErmcpMI1.ContractOperateApplyInfoOrBuilder getInfoOrBuilder() {
      return info_ == null ? ErmcpMI1.ContractOperateApplyInfo.getDefaultInstance() : info_;
    }

    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 (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, operateApplyID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, operateType_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, operateSrc_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt64(5, userID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, remark_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, clientTicket_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeMessage(8, getInfo());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, operateApplyID_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, operateType_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, operateSrc_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, userID_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, remark_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, clientTicket_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getInfo());
      }
      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 ErmcpMI1.ContractOperateApplyReq)) {
        return super.equals(obj);
      }
      ErmcpMI1.ContractOperateApplyReq other = (ErmcpMI1.ContractOperateApplyReq) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasOperateApplyID() != other.hasOperateApplyID()) return false;
      if (hasOperateApplyID()) {
        if (getOperateApplyID()
            != other.getOperateApplyID()) return false;
      }
      if (hasOperateType() != other.hasOperateType()) return false;
      if (hasOperateType()) {
        if (getOperateType()
            != other.getOperateType()) return false;
      }
      if (hasOperateSrc() != other.hasOperateSrc()) return false;
      if (hasOperateSrc()) {
        if (getOperateSrc()
            != other.getOperateSrc()) return false;
      }
      if (hasUserID() != other.hasUserID()) return false;
      if (hasUserID()) {
        if (getUserID()
            != other.getUserID()) return false;
      }
      if (hasRemark() != other.hasRemark()) return false;
      if (hasRemark()) {
        if (!getRemark()
            .equals(other.getRemark())) return false;
      }
      if (hasClientTicket() != other.hasClientTicket()) return false;
      if (hasClientTicket()) {
        if (!getClientTicket()
            .equals(other.getClientTicket())) return false;
      }
      if (hasInfo() != other.hasInfo()) return false;
      if (hasInfo()) {
        if (!getInfo()
            .equals(other.getInfo())) 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 (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasOperateApplyID()) {
        hash = (37 * hash) + OPERATEAPPLYID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOperateApplyID());
      }
      if (hasOperateType()) {
        hash = (37 * hash) + OPERATETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getOperateType();
      }
      if (hasOperateSrc()) {
        hash = (37 * hash) + OPERATESRC_FIELD_NUMBER;
        hash = (53 * hash) + getOperateSrc();
      }
      if (hasUserID()) {
        hash = (37 * hash) + USERID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getUserID());
      }
      if (hasRemark()) {
        hash = (37 * hash) + REMARK_FIELD_NUMBER;
        hash = (53 * hash) + getRemark().hashCode();
      }
      if (hasClientTicket()) {
        hash = (37 * hash) + CLIENTTICKET_FIELD_NUMBER;
        hash = (53 * hash) + getClientTicket().hashCode();
      }
      if (hasInfo()) {
        hash = (37 * hash) + INFO_FIELD_NUMBER;
        hash = (53 * hash) + getInfo().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ErmcpMI1.ContractOperateApplyReq parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.ContractOperateApplyReq parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.ContractOperateApplyReq parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.ContractOperateApplyReq parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.ContractOperateApplyReq parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.ContractOperateApplyReq parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.ContractOperateApplyReq parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.ContractOperateApplyReq 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 ErmcpMI1.ContractOperateApplyReq parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static ErmcpMI1.ContractOperateApplyReq 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 ErmcpMI1.ContractOperateApplyReq parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.ContractOperateApplyReq 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(ErmcpMI1.ContractOperateApplyReq 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>
     * ��ͬ�������� 0 18 8
     * </pre>
     *
     * Protobuf type {@code ErmcpMI1.ContractOperateApplyReq}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ErmcpMI1.ContractOperateApplyReq)
        ErmcpMI1.ContractOperateApplyReqOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ErmcpMI1.internal_static_ErmcpMI1_ContractOperateApplyReq_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ErmcpMI1.internal_static_ErmcpMI1_ContractOperateApplyReq_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ErmcpMI1.ContractOperateApplyReq.class, ErmcpMI1.ContractOperateApplyReq.Builder.class);
      }

      // Construct using ErmcpMI1.ContractOperateApplyReq.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
          getInfoFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        operateApplyID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        operateType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        operateSrc_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        userID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        remark_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        clientTicket_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        if (infoBuilder_ == null) {
          info_ = null;
        } else {
          infoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ErmcpMI1.internal_static_ErmcpMI1_ContractOperateApplyReq_descriptor;
      }

      @java.lang.Override
      public ErmcpMI1.ContractOperateApplyReq getDefaultInstanceForType() {
        return ErmcpMI1.ContractOperateApplyReq.getDefaultInstance();
      }

      @java.lang.Override
      public ErmcpMI1.ContractOperateApplyReq build() {
        ErmcpMI1.ContractOperateApplyReq result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ErmcpMI1.ContractOperateApplyReq buildPartial() {
        ErmcpMI1.ContractOperateApplyReq result = new ErmcpMI1.ContractOperateApplyReq(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.operateApplyID_ = operateApplyID_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.operateType_ = operateType_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.operateSrc_ = operateSrc_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.userID_ = userID_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          to_bitField0_ |= 0x00000020;
        }
        result.remark_ = remark_;
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000040;
        }
        result.clientTicket_ = clientTicket_;
        if (((from_bitField0_ & 0x00000080) != 0)) {
          if (infoBuilder_ == null) {
            result.info_ = info_;
          } else {
            result.info_ = infoBuilder_.build();
          }
          to_bitField0_ |= 0x00000080;
        }
        result.bitField0_ = to_bitField0_;
        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 ErmcpMI1.ContractOperateApplyReq) {
          return mergeFrom((ErmcpMI1.ContractOperateApplyReq)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ErmcpMI1.ContractOperateApplyReq other) {
        if (other == ErmcpMI1.ContractOperateApplyReq.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasOperateApplyID()) {
          setOperateApplyID(other.getOperateApplyID());
        }
        if (other.hasOperateType()) {
          setOperateType(other.getOperateType());
        }
        if (other.hasOperateSrc()) {
          setOperateSrc(other.getOperateSrc());
        }
        if (other.hasUserID()) {
          setUserID(other.getUserID());
        }
        if (other.hasRemark()) {
          bitField0_ |= 0x00000020;
          remark_ = other.remark_;
          onChanged();
        }
        if (other.hasClientTicket()) {
          bitField0_ |= 0x00000040;
          clientTicket_ = other.clientTicket_;
          onChanged();
        }
        if (other.hasInfo()) {
          mergeInfo(other.getInfo());
        }
        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 {
        ErmcpMI1.ContractOperateApplyReq parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (ErmcpMI1.ContractOperateApplyReq) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private long operateApplyID_ ;
      /**
       * <pre>
       * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 OperateApplyID = 2;</code>
       * @return Whether the operateApplyID field is set.
       */
      @java.lang.Override
      public boolean hasOperateApplyID() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 OperateApplyID = 2;</code>
       * @return The operateApplyID.
       */
      @java.lang.Override
      public long getOperateApplyID() {
        return operateApplyID_;
      }
      /**
       * <pre>
       * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 OperateApplyID = 2;</code>
       * @param value The operateApplyID to set.
       * @return This builder for chaining.
       */
      public Builder setOperateApplyID(long value) {
        bitField0_ |= 0x00000002;
        operateApplyID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 OperateApplyID = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateApplyID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        operateApplyID_ = 0L;
        onChanged();
        return this;
      }

      private int operateType_ ;
      /**
       * <pre>
       * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
       * </pre>
       *
       * <code>optional uint32 OperateType = 3;</code>
       * @return Whether the operateType field is set.
       */
      @java.lang.Override
      public boolean hasOperateType() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
       * </pre>
       *
       * <code>optional uint32 OperateType = 3;</code>
       * @return The operateType.
       */
      @java.lang.Override
      public int getOperateType() {
        return operateType_;
      }
      /**
       * <pre>
       * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
       * </pre>
       *
       * <code>optional uint32 OperateType = 3;</code>
       * @param value The operateType to set.
       * @return This builder for chaining.
       */
      public Builder setOperateType(int value) {
        bitField0_ |= 0x00000004;
        operateType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
       * </pre>
       *
       * <code>optional uint32 OperateType = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        operateType_ = 0;
        onChanged();
        return this;
      }

      private int operateSrc_ ;
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 4;</code>
       * @return Whether the operateSrc field is set.
       */
      @java.lang.Override
      public boolean hasOperateSrc() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 4;</code>
       * @return The operateSrc.
       */
      @java.lang.Override
      public int getOperateSrc() {
        return operateSrc_;
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 4;</code>
       * @param value The operateSrc to set.
       * @return This builder for chaining.
       */
      public Builder setOperateSrc(int value) {
        bitField0_ |= 0x00000008;
        operateSrc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateSrc() {
        bitField0_ = (bitField0_ & ~0x00000008);
        operateSrc_ = 0;
        onChanged();
        return this;
      }

      private long userID_ ;
      /**
       * <pre>
       * uint64 �����û�ID
       * </pre>
       *
       * <code>optional uint64 UserID = 5;</code>
       * @return Whether the userID field is set.
       */
      @java.lang.Override
      public boolean hasUserID() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint64 �����û�ID
       * </pre>
       *
       * <code>optional uint64 UserID = 5;</code>
       * @return The userID.
       */
      @java.lang.Override
      public long getUserID() {
        return userID_;
      }
      /**
       * <pre>
       * uint64 �����û�ID
       * </pre>
       *
       * <code>optional uint64 UserID = 5;</code>
       * @param value The userID to set.
       * @return This builder for chaining.
       */
      public Builder setUserID(long value) {
        bitField0_ |= 0x00000010;
        userID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 �����û�ID
       * </pre>
       *
       * <code>optional uint64 UserID = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserID() {
        bitField0_ = (bitField0_ & ~0x00000010);
        userID_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object remark_ = "";
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return Whether the remark field is set.
       */
      public boolean hasRemark() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return The remark.
       */
      public java.lang.String getRemark() {
        java.lang.Object ref = remark_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            remark_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return The bytes for remark.
       */
      public com.google.protobuf.ByteString
          getRemarkBytes() {
        java.lang.Object ref = remark_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          remark_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @param value The remark to set.
       * @return This builder for chaining.
       */
      public Builder setRemark(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        remark_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearRemark() {
        bitField0_ = (bitField0_ & ~0x00000020);
        remark_ = getDefaultInstance().getRemark();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ��ע
       * </pre>
       *
       * <code>optional string Remark = 6;</code>
       * @param value The bytes for remark to set.
       * @return This builder for chaining.
       */
      public Builder setRemarkBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        remark_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object clientTicket_ = "";
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return Whether the clientTicket field is set.
       */
      public boolean hasClientTicket() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return The clientTicket.
       */
      public java.lang.String getClientTicket() {
        java.lang.Object ref = clientTicket_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientTicket_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return The bytes for clientTicket.
       */
      public com.google.protobuf.ByteString
          getClientTicketBytes() {
        java.lang.Object ref = clientTicket_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientTicket_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @param value The clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicket(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        clientTicket_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientTicket() {
        bitField0_ = (bitField0_ & ~0x00000040);
        clientTicket_ = getDefaultInstance().getClientTicket();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @param value The bytes for clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicketBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        clientTicket_ = value;
        onChanged();
        return this;
      }

      private ErmcpMI1.ContractOperateApplyInfo info_;
      private com.google.protobuf.SingleFieldBuilderV3<
          ErmcpMI1.ContractOperateApplyInfo, ErmcpMI1.ContractOperateApplyInfo.Builder, ErmcpMI1.ContractOperateApplyInfoOrBuilder> infoBuilder_;
      /**
       * <pre>
       * ContractOperateApplyInfo ��ͬ������Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.ContractOperateApplyInfo Info = 8;</code>
       * @return Whether the info field is set.
       */
      public boolean hasInfo() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * ContractOperateApplyInfo ��ͬ������Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.ContractOperateApplyInfo Info = 8;</code>
       * @return The info.
       */
      public ErmcpMI1.ContractOperateApplyInfo getInfo() {
        if (infoBuilder_ == null) {
          return info_ == null ? ErmcpMI1.ContractOperateApplyInfo.getDefaultInstance() : info_;
        } else {
          return infoBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * ContractOperateApplyInfo ��ͬ������Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.ContractOperateApplyInfo Info = 8;</code>
       */
      public Builder setInfo(ErmcpMI1.ContractOperateApplyInfo value) {
        if (infoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          info_ = value;
          onChanged();
        } else {
          infoBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <pre>
       * ContractOperateApplyInfo ��ͬ������Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.ContractOperateApplyInfo Info = 8;</code>
       */
      public Builder setInfo(
          ErmcpMI1.ContractOperateApplyInfo.Builder builderForValue) {
        if (infoBuilder_ == null) {
          info_ = builderForValue.build();
          onChanged();
        } else {
          infoBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <pre>
       * ContractOperateApplyInfo ��ͬ������Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.ContractOperateApplyInfo Info = 8;</code>
       */
      public Builder mergeInfo(ErmcpMI1.ContractOperateApplyInfo value) {
        if (infoBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0) &&
              info_ != null &&
              info_ != ErmcpMI1.ContractOperateApplyInfo.getDefaultInstance()) {
            info_ =
              ErmcpMI1.ContractOperateApplyInfo.newBuilder(info_).mergeFrom(value).buildPartial();
          } else {
            info_ = value;
          }
          onChanged();
        } else {
          infoBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <pre>
       * ContractOperateApplyInfo ��ͬ������Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.ContractOperateApplyInfo Info = 8;</code>
       */
      public Builder clearInfo() {
        if (infoBuilder_ == null) {
          info_ = null;
          onChanged();
        } else {
          infoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       * <pre>
       * ContractOperateApplyInfo ��ͬ������Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.ContractOperateApplyInfo Info = 8;</code>
       */
      public ErmcpMI1.ContractOperateApplyInfo.Builder getInfoBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getInfoFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * ContractOperateApplyInfo ��ͬ������Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.ContractOperateApplyInfo Info = 8;</code>
       */
      public ErmcpMI1.ContractOperateApplyInfoOrBuilder getInfoOrBuilder() {
        if (infoBuilder_ != null) {
          return infoBuilder_.getMessageOrBuilder();
        } else {
          return info_ == null ?
              ErmcpMI1.ContractOperateApplyInfo.getDefaultInstance() : info_;
        }
      }
      /**
       * <pre>
       * ContractOperateApplyInfo ��ͬ������Ϣ
       * </pre>
       *
       * <code>optional .ErmcpMI1.ContractOperateApplyInfo Info = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          ErmcpMI1.ContractOperateApplyInfo, ErmcpMI1.ContractOperateApplyInfo.Builder, ErmcpMI1.ContractOperateApplyInfoOrBuilder>
          getInfoFieldBuilder() {
        if (infoBuilder_ == null) {
          infoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ErmcpMI1.ContractOperateApplyInfo, ErmcpMI1.ContractOperateApplyInfo.Builder, ErmcpMI1.ContractOperateApplyInfoOrBuilder>(
                  getInfo(),
                  getParentForChildren(),
                  isClean());
          info_ = null;
        }
        return infoBuilder_;
      }
      @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:ErmcpMI1.ContractOperateApplyReq)
    }

    // @@protoc_insertion_point(class_scope:ErmcpMI1.ContractOperateApplyReq)
    private static final ErmcpMI1.ContractOperateApplyReq DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ErmcpMI1.ContractOperateApplyReq();
    }

    public static ErmcpMI1.ContractOperateApplyReq getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ErmcpMI1.ContractOperateApplyReq getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ContractOperateApplyRspOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ErmcpMI1.ContractOperateApplyRsp)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    boolean hasHeader();
    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader();
    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder();

    /**
     * <pre>
     * int32 ������
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    boolean hasRetCode();
    /**
     * <pre>
     * int32 ������
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    int getRetCode();

    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    boolean hasRetDesc();
    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    java.lang.String getRetDesc();
    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    com.google.protobuf.ByteString
        getRetDescBytes();

    /**
     * <pre>
     * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 OperateApplyID = 4;</code>
     * @return Whether the operateApplyID field is set.
     */
    boolean hasOperateApplyID();
    /**
     * <pre>
     * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 OperateApplyID = 4;</code>
     * @return The operateApplyID.
     */
    long getOperateApplyID();

    /**
     * <pre>
     * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return Whether the operateType field is set.
     */
    boolean hasOperateType();
    /**
     * <pre>
     * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return The operateType.
     */
    int getOperateType();

    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 6;</code>
     * @return Whether the operateSrc field is set.
     */
    boolean hasOperateSrc();
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 6;</code>
     * @return The operateSrc.
     */
    int getOperateSrc();

    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return Whether the clientTicket field is set.
     */
    boolean hasClientTicket();
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The clientTicket.
     */
    java.lang.String getClientTicket();
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The bytes for clientTicket.
     */
    com.google.protobuf.ByteString
        getClientTicketBytes();
  }
  /**
   * <pre>
   * ��ͬ������Ӧ 0 18 9
   * </pre>
   *
   * Protobuf type {@code ErmcpMI1.ContractOperateApplyRsp}
   */
  public static final class ContractOperateApplyRsp extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ErmcpMI1.ContractOperateApplyRsp)
      ContractOperateApplyRspOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ContractOperateApplyRsp.newBuilder() to construct.
    private ContractOperateApplyRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ContractOperateApplyRsp() {
      retDesc_ = "";
      clientTicket_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ContractOperateApplyRsp(
        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: {
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = header_.toBuilder();
              }
              header_ = input.readMessage(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(header_);
                header_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              retCode_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              retDesc_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              operateApplyID_ = input.readUInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              operateType_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              operateSrc_ = input.readUInt32();
              break;
            }
            case 58: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000040;
              clientTicket_ = bs;
              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 ErmcpMI1.internal_static_ErmcpMI1_ContractOperateApplyRsp_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ErmcpMI1.internal_static_ErmcpMI1_ContractOperateApplyRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ErmcpMI1.ContractOperateApplyRsp.class, ErmcpMI1.ContractOperateApplyRsp.Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return Whether the header field is set.
     */
    @java.lang.Override
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     * @return The header.
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }
    /**
     * <pre>
     * MessageHead ��Ϣͷ
     * </pre>
     *
     * <code>optional .MessageHead Header = 1;</code>
     */
    @java.lang.Override
    public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
      return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
    }

    public static final int RETCODE_FIELD_NUMBER = 2;
    private int retCode_;
    /**
     * <pre>
     * int32 ������
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return Whether the retCode field is set.
     */
    @java.lang.Override
    public boolean hasRetCode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * int32 ������
     * </pre>
     *
     * <code>optional int32 RetCode = 2;</code>
     * @return The retCode.
     */
    @java.lang.Override
    public int getRetCode() {
      return retCode_;
    }

    public static final int RETDESC_FIELD_NUMBER = 3;
    private volatile java.lang.Object retDesc_;
    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return Whether the retDesc field is set.
     */
    @java.lang.Override
    public boolean hasRetDesc() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The retDesc.
     */
    @java.lang.Override
    public java.lang.String getRetDesc() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          retDesc_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string ������Ϣ
     * </pre>
     *
     * <code>optional string RetDesc = 3;</code>
     * @return The bytes for retDesc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRetDescBytes() {
      java.lang.Object ref = retDesc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        retDesc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATEAPPLYID_FIELD_NUMBER = 4;
    private long operateApplyID_;
    /**
     * <pre>
     * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 OperateApplyID = 4;</code>
     * @return Whether the operateApplyID field is set.
     */
    @java.lang.Override
    public boolean hasOperateApplyID() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
     * </pre>
     *
     * <code>optional uint64 OperateApplyID = 4;</code>
     * @return The operateApplyID.
     */
    @java.lang.Override
    public long getOperateApplyID() {
      return operateApplyID_;
    }

    public static final int OPERATETYPE_FIELD_NUMBER = 5;
    private int operateType_;
    /**
     * <pre>
     * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return Whether the operateType field is set.
     */
    @java.lang.Override
    public boolean hasOperateType() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
     * </pre>
     *
     * <code>optional uint32 OperateType = 5;</code>
     * @return The operateType.
     */
    @java.lang.Override
    public int getOperateType() {
      return operateType_;
    }

    public static final int OPERATESRC_FIELD_NUMBER = 6;
    private int operateSrc_;
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 6;</code>
     * @return Whether the operateSrc field is set.
     */
    @java.lang.Override
    public boolean hasOperateSrc() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * uint32 ������Դ-1:�����2:�ն�
     * </pre>
     *
     * <code>optional uint32 OperateSrc = 6;</code>
     * @return The operateSrc.
     */
    @java.lang.Override
    public int getOperateSrc() {
      return operateSrc_;
    }

    public static final int CLIENTTICKET_FIELD_NUMBER = 7;
    private volatile java.lang.Object clientTicket_;
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return Whether the clientTicket field is set.
     */
    @java.lang.Override
    public boolean hasClientTicket() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The clientTicket.
     */
    @java.lang.Override
    public java.lang.String getClientTicket() {
      java.lang.Object ref = clientTicket_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          clientTicket_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * string �ͻ�����ˮ��
     * </pre>
     *
     * <code>optional string ClientTicket = 7;</code>
     * @return The bytes for clientTicket.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientTicketBytes() {
      java.lang.Object ref = clientTicket_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientTicket_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt64(4, operateApplyID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, operateType_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt32(6, operateSrc_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, clientTicket_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getHeader());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, retCode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, retDesc_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, operateApplyID_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, operateType_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, operateSrc_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, clientTicket_);
      }
      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 ErmcpMI1.ContractOperateApplyRsp)) {
        return super.equals(obj);
      }
      ErmcpMI1.ContractOperateApplyRsp other = (ErmcpMI1.ContractOperateApplyRsp) obj;

      if (hasHeader() != other.hasHeader()) return false;
      if (hasHeader()) {
        if (!getHeader()
            .equals(other.getHeader())) return false;
      }
      if (hasRetCode() != other.hasRetCode()) return false;
      if (hasRetCode()) {
        if (getRetCode()
            != other.getRetCode()) return false;
      }
      if (hasRetDesc() != other.hasRetDesc()) return false;
      if (hasRetDesc()) {
        if (!getRetDesc()
            .equals(other.getRetDesc())) return false;
      }
      if (hasOperateApplyID() != other.hasOperateApplyID()) return false;
      if (hasOperateApplyID()) {
        if (getOperateApplyID()
            != other.getOperateApplyID()) return false;
      }
      if (hasOperateType() != other.hasOperateType()) return false;
      if (hasOperateType()) {
        if (getOperateType()
            != other.getOperateType()) return false;
      }
      if (hasOperateSrc() != other.hasOperateSrc()) return false;
      if (hasOperateSrc()) {
        if (getOperateSrc()
            != other.getOperateSrc()) return false;
      }
      if (hasClientTicket() != other.hasClientTicket()) return false;
      if (hasClientTicket()) {
        if (!getClientTicket()
            .equals(other.getClientTicket())) 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 (hasHeader()) {
        hash = (37 * hash) + HEADER_FIELD_NUMBER;
        hash = (53 * hash) + getHeader().hashCode();
      }
      if (hasRetCode()) {
        hash = (37 * hash) + RETCODE_FIELD_NUMBER;
        hash = (53 * hash) + getRetCode();
      }
      if (hasRetDesc()) {
        hash = (37 * hash) + RETDESC_FIELD_NUMBER;
        hash = (53 * hash) + getRetDesc().hashCode();
      }
      if (hasOperateApplyID()) {
        hash = (37 * hash) + OPERATEAPPLYID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getOperateApplyID());
      }
      if (hasOperateType()) {
        hash = (37 * hash) + OPERATETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getOperateType();
      }
      if (hasOperateSrc()) {
        hash = (37 * hash) + OPERATESRC_FIELD_NUMBER;
        hash = (53 * hash) + getOperateSrc();
      }
      if (hasClientTicket()) {
        hash = (37 * hash) + CLIENTTICKET_FIELD_NUMBER;
        hash = (53 * hash) + getClientTicket().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ErmcpMI1.ContractOperateApplyRsp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.ContractOperateApplyRsp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.ContractOperateApplyRsp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.ContractOperateApplyRsp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.ContractOperateApplyRsp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ErmcpMI1.ContractOperateApplyRsp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ErmcpMI1.ContractOperateApplyRsp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.ContractOperateApplyRsp 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 ErmcpMI1.ContractOperateApplyRsp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static ErmcpMI1.ContractOperateApplyRsp 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 ErmcpMI1.ContractOperateApplyRsp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static ErmcpMI1.ContractOperateApplyRsp 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(ErmcpMI1.ContractOperateApplyRsp 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>
     * ��ͬ������Ӧ 0 18 9
     * </pre>
     *
     * Protobuf type {@code ErmcpMI1.ContractOperateApplyRsp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ErmcpMI1.ContractOperateApplyRsp)
        ErmcpMI1.ContractOperateApplyRspOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ErmcpMI1.internal_static_ErmcpMI1_ContractOperateApplyRsp_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ErmcpMI1.internal_static_ErmcpMI1_ContractOperateApplyRsp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ErmcpMI1.ContractOperateApplyRsp.class, ErmcpMI1.ContractOperateApplyRsp.Builder.class);
      }

      // Construct using ErmcpMI1.ContractOperateApplyRsp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getHeaderFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (headerBuilder_ == null) {
          header_ = null;
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        retCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        retDesc_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        operateApplyID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        operateType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        operateSrc_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        clientTicket_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ErmcpMI1.internal_static_ErmcpMI1_ContractOperateApplyRsp_descriptor;
      }

      @java.lang.Override
      public ErmcpMI1.ContractOperateApplyRsp getDefaultInstanceForType() {
        return ErmcpMI1.ContractOperateApplyRsp.getDefaultInstance();
      }

      @java.lang.Override
      public ErmcpMI1.ContractOperateApplyRsp build() {
        ErmcpMI1.ContractOperateApplyRsp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ErmcpMI1.ContractOperateApplyRsp buildPartial() {
        ErmcpMI1.ContractOperateApplyRsp result = new ErmcpMI1.ContractOperateApplyRsp(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.retCode_ = retCode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.retDesc_ = retDesc_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.operateApplyID_ = operateApplyID_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.operateType_ = operateType_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.operateSrc_ = operateSrc_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          to_bitField0_ |= 0x00000040;
        }
        result.clientTicket_ = clientTicket_;
        result.bitField0_ = to_bitField0_;
        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 ErmcpMI1.ContractOperateApplyRsp) {
          return mergeFrom((ErmcpMI1.ContractOperateApplyRsp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ErmcpMI1.ContractOperateApplyRsp other) {
        if (other == ErmcpMI1.ContractOperateApplyRsp.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          mergeHeader(other.getHeader());
        }
        if (other.hasRetCode()) {
          setRetCode(other.getRetCode());
        }
        if (other.hasRetDesc()) {
          bitField0_ |= 0x00000004;
          retDesc_ = other.retDesc_;
          onChanged();
        }
        if (other.hasOperateApplyID()) {
          setOperateApplyID(other.getOperateApplyID());
        }
        if (other.hasOperateType()) {
          setOperateType(other.getOperateType());
        }
        if (other.hasOperateSrc()) {
          setOperateSrc(other.getOperateSrc());
        }
        if (other.hasClientTicket()) {
          bitField0_ |= 0x00000040;
          clientTicket_ = other.clientTicket_;
          onChanged();
        }
        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 {
        ErmcpMI1.ContractOperateApplyRsp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (ErmcpMI1.ContractOperateApplyRsp) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead header_;
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> headerBuilder_;
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return Whether the header field is set.
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       * @return The header.
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead getHeader() {
        if (headerBuilder_ == null) {
          return header_ == null ? cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        } else {
          return headerBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          header_ = value;
          onChanged();
        } else {
          headerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder setHeader(
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder builderForValue) {
        if (headerBuilder_ == null) {
          header_ = builderForValue.build();
          onChanged();
        } else {
          headerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder mergeHeader(cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead value) {
        if (headerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              header_ != null &&
              header_ != cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance()) {
            header_ =
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.newBuilder(header_).mergeFrom(value).buildPartial();
          } else {
            header_ = value;
          }
          onChanged();
        } else {
          headerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public Builder clearHeader() {
        if (headerBuilder_ == null) {
          header_ = null;
          onChanged();
        } else {
          headerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder getHeaderBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHeaderFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      public cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder getHeaderOrBuilder() {
        if (headerBuilder_ != null) {
          return headerBuilder_.getMessageOrBuilder();
        } else {
          return header_ == null ?
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.getDefaultInstance() : header_;
        }
      }
      /**
       * <pre>
       * MessageHead ��Ϣͷ
       * </pre>
       *
       * <code>optional .MessageHead Header = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder> 
          getHeaderFieldBuilder() {
        if (headerBuilder_ == null) {
          headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHead.Builder, cn.muchinfo.rma.protobuf.protoclasses.Common.MessageHeadOrBuilder>(
                  getHeader(),
                  getParentForChildren(),
                  isClean());
          header_ = null;
        }
        return headerBuilder_;
      }

      private int retCode_ ;
      /**
       * <pre>
       * int32 ������
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return Whether the retCode field is set.
       */
      @java.lang.Override
      public boolean hasRetCode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * int32 ������
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return The retCode.
       */
      @java.lang.Override
      public int getRetCode() {
        return retCode_;
      }
      /**
       * <pre>
       * int32 ������
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @param value The retCode to set.
       * @return This builder for chaining.
       */
      public Builder setRetCode(int value) {
        bitField0_ |= 0x00000002;
        retCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * int32 ������
       * </pre>
       *
       * <code>optional int32 RetCode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetCode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        retCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object retDesc_ = "";
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return Whether the retDesc field is set.
       */
      public boolean hasRetDesc() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The retDesc.
       */
      public java.lang.String getRetDesc() {
        java.lang.Object ref = retDesc_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            retDesc_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return The bytes for retDesc.
       */
      public com.google.protobuf.ByteString
          getRetDescBytes() {
        java.lang.Object ref = retDesc_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          retDesc_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDesc(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRetDesc() {
        bitField0_ = (bitField0_ & ~0x00000004);
        retDesc_ = getDefaultInstance().getRetDesc();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string ������Ϣ
       * </pre>
       *
       * <code>optional string RetDesc = 3;</code>
       * @param value The bytes for retDesc to set.
       * @return This builder for chaining.
       */
      public Builder setRetDescBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        retDesc_ = value;
        onChanged();
        return this;
      }

      private long operateApplyID_ ;
      /**
       * <pre>
       * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 OperateApplyID = 4;</code>
       * @return Whether the operateApplyID field is set.
       */
      @java.lang.Override
      public boolean hasOperateApplyID() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 OperateApplyID = 4;</code>
       * @return The operateApplyID.
       */
      @java.lang.Override
      public long getOperateApplyID() {
        return operateApplyID_;
      }
      /**
       * <pre>
       * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 OperateApplyID = 4;</code>
       * @param value The operateApplyID to set.
       * @return This builder for chaining.
       */
      public Builder setOperateApplyID(long value) {
        bitField0_ |= 0x00000008;
        operateApplyID_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint64 ��������ID(603+Unix��ʱ���(10λ)+xxxxxx)
       * </pre>
       *
       * <code>optional uint64 OperateApplyID = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateApplyID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        operateApplyID_ = 0L;
        onChanged();
        return this;
      }

      private int operateType_ ;
      /**
       * <pre>
       * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @return Whether the operateType field is set.
       */
      @java.lang.Override
      public boolean hasOperateType() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @return The operateType.
       */
      @java.lang.Override
      public int getOperateType() {
        return operateType_;
      }
      /**
       * <pre>
       * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @param value The operateType to set.
       * @return This builder for chaining.
       */
      public Builder setOperateType(int value) {
        bitField0_ |= 0x00000010;
        operateType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ��������-1:�Ǽ�2:ȷ��3���ܾ�4������
       * </pre>
       *
       * <code>optional uint32 OperateType = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        operateType_ = 0;
        onChanged();
        return this;
      }

      private int operateSrc_ ;
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 6;</code>
       * @return Whether the operateSrc field is set.
       */
      @java.lang.Override
      public boolean hasOperateSrc() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 6;</code>
       * @return The operateSrc.
       */
      @java.lang.Override
      public int getOperateSrc() {
        return operateSrc_;
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 6;</code>
       * @param value The operateSrc to set.
       * @return This builder for chaining.
       */
      public Builder setOperateSrc(int value) {
        bitField0_ |= 0x00000020;
        operateSrc_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * uint32 ������Դ-1:�����2:�ն�
       * </pre>
       *
       * <code>optional uint32 OperateSrc = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperateSrc() {
        bitField0_ = (bitField0_ & ~0x00000020);
        operateSrc_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object clientTicket_ = "";
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return Whether the clientTicket field is set.
       */
      public boolean hasClientTicket() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return The clientTicket.
       */
      public java.lang.String getClientTicket() {
        java.lang.Object ref = clientTicket_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientTicket_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return The bytes for clientTicket.
       */
      public com.google.protobuf.ByteString
          getClientTicketBytes() {
        java.lang.Object ref = clientTicket_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientTicket_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @param value The clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicket(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        clientTicket_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientTicket() {
        bitField0_ = (bitField0_ & ~0x00000040);
        clientTicket_ = getDefaultInstance().getClientTicket();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * string �ͻ�����ˮ��
       * </pre>
       *
       * <code>optional string ClientTicket = 7;</code>
       * @param value The bytes for clientTicket to set.
       * @return This builder for chaining.
       */
      public Builder setClientTicketBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        clientTicket_ = value;
        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:ErmcpMI1.ContractOperateApplyRsp)
    }

    // @@protoc_insertion_point(class_scope:ErmcpMI1.ContractOperateApplyRsp)
    private static final ErmcpMI1.ContractOperateApplyRsp DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ErmcpMI1.ContractOperateApplyRsp();
    }

    public static ErmcpMI1.ContractOperateApplyRsp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public ErmcpMI1.ContractOperateApplyRsp getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ErmcpMI1_HedgePlanInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ErmcpMI1_HedgePlanInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ErmcpMI1_HedgePlanOperateReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ErmcpMI1_HedgePlanOperateReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ErmcpMI1_HedgePlanOperateRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ErmcpMI1_HedgePlanOperateRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ErmcpMI1_SpotContractInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ErmcpMI1_SpotContractInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ErmcpMI1_SpotContractOperateReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ErmcpMI1_SpotContractOperateReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ErmcpMI1_SpotContractOperateRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ErmcpMI1_SpotContractOperateRsp_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ErmcpMI1_ContractOperateApplyInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ErmcpMI1_ContractOperateApplyInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ErmcpMI1_ContractOperateApplyReq_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ErmcpMI1_ContractOperateApplyReq_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ErmcpMI1_ContractOperateApplyRsp_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ErmcpMI1_ContractOperateApplyRsp_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\016ErmcpMI1.proto\022\010ErmcpMI1\032\014Common.proto" +
      "\032\017PublicMI1.proto\"\343\001\n\rHedgePlanInfo\022\023\n\013H" +
      "edgePlanNo\030\001 \001(\t\022\024\n\014ContractType\030\002 \001(\005\022\022" +
      "\n\nAreaUserID\030\003 \001(\r\022\027\n\017DeliveryGoodsID\030\004 " +
      "\001(\r\022\024\n\014WrStandardID\030\005 \001(\r\022\023\n\013ProductType" +
      "\030\006 \001(\r\022\025\n\rSpotGoodsDesc\030\007 \001(\t\022\017\n\007PlanQty" +
      "\030\010 \001(\001\022\025\n\rConvertFactor\030\t \001(\001\022\020\n\010PlanTim" +
      "e\030\n \001(\t\"\316\001\n\023HedgePlanOperateReq\022\034\n\006Heade" +
      "r\030\001 \001(\0132\014.MessageHead\022\023\n\013HedgePlanID\030\002 \001" +
      "(\004\022\023\n\013OperateType\030\003 \001(\r\022\022\n\nOperateSrc\030\004 " +
      "\001(\r\022\016\n\006UserID\030\005 \001(\004\022\016\n\006Remark\030\006 \001(\t\022\024\n\014C" +
      "lientTicket\030\007 \001(\t\022%\n\004Info\030\010 \001(\0132\027.ErmcpM" +
      "I1.HedgePlanInfo\"\251\001\n\023HedgePlanOperateRsp" +
      "\022\034\n\006Header\030\001 \001(\0132\014.MessageHead\022\017\n\007RetCod" +
      "e\030\002 \001(\005\022\017\n\007RetDesc\030\003 \001(\t\022\023\n\013HedgePlanID\030" +
      "\004 \001(\004\022\023\n\013OperateType\030\005 \001(\r\022\022\n\nOperateSrc" +
      "\030\006 \001(\r\022\024\n\014ClientTicket\030\007 \001(\t\"\245\005\n\020SpotCon" +
      "tractInfo\022\022\n\nContractNo\030\001 \001(\t\022\024\n\014Contrac" +
      "tType\030\002 \001(\005\022\016\n\006UserID\030\003 \001(\r\022\021\n\tBuyUserID" +
      "\030\004 \001(\r\022\022\n\nSellUserID\030\005 \001(\r\022\020\n\010SignDate\030\006" +
      " \001(\t\022\032\n\022ContractAttachment\030\007 \001(\014\022\026\n\016Cont" +
      "ractMargin\030\010 \001(\001\022\027\n\017DeliveryGoodsID\030\t \001(" +
      "\r\022\024\n\014WrStandardID\030\n \001(\r\022\017\n\007BrandID\030\013 \001(\t" +
      "\022\023\n\013ProductType\030\014 \001(\r\022\025\n\rConvertFactor\030\r" +
      " \001(\001\022\025\n\rSpotGoodsDesc\030\016 \001(\t\022\021\n\tPriceType" +
      "\030\017 \001(\r\022\013\n\003Qty\030\020 \001(\001\022\r\n\005Price\030\021 \001(\001\022\016\n\006Am" +
      "ount\030\022 \001(\001\022\031\n\021DeliveryStartDate\030\023 \001(\t\022\027\n" +
      "\017DeliveryEndDate\030\024 \001(\t\022\017\n\007GoodsID\030\025 \001(\r\022" +
      "\021\n\tPriceMove\030\026 \001(\001\022\021\n\tStartDate\030\027 \001(\t\022\017\n" +
      "\007EndDate\030\030 \001(\t\022\021\n\tPointDesc\030\031 \001(\t\022\024\n\014Del" +
      "iveryDesc\030\032 \001(\t\022\021\n\tMerUserID\030\033 \001(\r\022\023\n\013Tr" +
      "adeUserID\030\034 \001(\r\022\021\n\tPricedQty\030\035 \001(\001\022\024\n\014Pr" +
      "icedAmount\030\036 \001(\001\022\030\n\020SpotGoodsModelID\030\037 \001" +
      "(\r\022\030\n\020SpotGoodsBrandID\030  \001(\r\"\327\001\n\026SpotCon" +
      "tractOperateReq\022\034\n\006Header\030\001 \001(\0132\014.Messag" +
      "eHead\022\026\n\016SpotContractID\030\002 \001(\004\022\023\n\013Operate" +
      "Type\030\003 \001(\r\022\022\n\nOperateSrc\030\004 \001(\r\022\016\n\006UserID" +
      "\030\005 \001(\004\022\016\n\006Remark\030\006 \001(\t\022\024\n\014ClientTicket\030\007" +
      " \001(\t\022(\n\004Info\030\010 \001(\0132\032.ErmcpMI1.SpotContra" +
      "ctInfo\"\257\001\n\026SpotContractOperateRsp\022\034\n\006Hea" +
      "der\030\001 \001(\0132\014.MessageHead\022\017\n\007RetCode\030\002 \001(\005" +
      "\022\017\n\007RetDesc\030\003 \001(\t\022\026\n\016SpotContractID\030\004 \001(" +
      "\004\022\023\n\013OperateType\030\005 \001(\r\022\022\n\nOperateSrc\030\006 \001" +
      "(\r\022\024\n\014ClientTicket\030\007 \001(\t\"n\n\030ContractOper" +
      "ateApplyInfo\022\030\n\020OperateApplyType\030\001 \001(\r\022\021" +
      "\n\tRelatedID\030\002 \001(\004\022\022\n\nDetailJson\030\003 \001(\014\022\021\n" +
      "\tAttachUrl\030\004 \001(\014\"\340\001\n\027ContractOperateAppl" +
      "yReq\022\034\n\006Header\030\001 \001(\0132\014.MessageHead\022\026\n\016Op" +
      "erateApplyID\030\002 \001(\004\022\023\n\013OperateType\030\003 \001(\r\022" +
      "\022\n\nOperateSrc\030\004 \001(\r\022\016\n\006UserID\030\005 \001(\004\022\016\n\006R" +
      "emark\030\006 \001(\t\022\024\n\014ClientTicket\030\007 \001(\t\0220\n\004Inf" +
      "o\030\010 \001(\0132\".ErmcpMI1.ContractOperateApplyI" +
      "nfo\"\260\001\n\027ContractOperateApplyRsp\022\034\n\006Heade" +
      "r\030\001 \001(\0132\014.MessageHead\022\017\n\007RetCode\030\002 \001(\005\022\017" +
      "\n\007RetDesc\030\003 \001(\t\022\026\n\016OperateApplyID\030\004 \001(\004\022" +
      "\023\n\013OperateType\030\005 \001(\r\022\022\n\nOperateSrc\030\006 \001(\r" +
      "\022\024\n\014ClientTicket\030\007 \001(\tB0\n\026com.muchinfo.m" +
      "tp.protoZ\026com.muchinfo.mtp.proto"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          cn.muchinfo.rma.protobuf.protoclasses.Common.getDescriptor(),
          cn.muchinfo.rma.protobuf.protoclasses.PublicMI1.getDescriptor(),
        });
    internal_static_ErmcpMI1_HedgePlanInfo_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_ErmcpMI1_HedgePlanInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ErmcpMI1_HedgePlanInfo_descriptor,
        new java.lang.String[] { "HedgePlanNo", "ContractType", "AreaUserID", "DeliveryGoodsID", "WrStandardID", "ProductType", "SpotGoodsDesc", "PlanQty", "ConvertFactor", "PlanTime", });
    internal_static_ErmcpMI1_HedgePlanOperateReq_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_ErmcpMI1_HedgePlanOperateReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ErmcpMI1_HedgePlanOperateReq_descriptor,
        new java.lang.String[] { "Header", "HedgePlanID", "OperateType", "OperateSrc", "UserID", "Remark", "ClientTicket", "Info", });
    internal_static_ErmcpMI1_HedgePlanOperateRsp_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_ErmcpMI1_HedgePlanOperateRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ErmcpMI1_HedgePlanOperateRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "HedgePlanID", "OperateType", "OperateSrc", "ClientTicket", });
    internal_static_ErmcpMI1_SpotContractInfo_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_ErmcpMI1_SpotContractInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ErmcpMI1_SpotContractInfo_descriptor,
        new java.lang.String[] { "ContractNo", "ContractType", "UserID", "BuyUserID", "SellUserID", "SignDate", "ContractAttachment", "ContractMargin", "DeliveryGoodsID", "WrStandardID", "BrandID", "ProductType", "ConvertFactor", "SpotGoodsDesc", "PriceType", "Qty", "Price", "Amount", "DeliveryStartDate", "DeliveryEndDate", "GoodsID", "PriceMove", "StartDate", "EndDate", "PointDesc", "DeliveryDesc", "MerUserID", "TradeUserID", "PricedQty", "PricedAmount", "SpotGoodsModelID", "SpotGoodsBrandID", });
    internal_static_ErmcpMI1_SpotContractOperateReq_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_ErmcpMI1_SpotContractOperateReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ErmcpMI1_SpotContractOperateReq_descriptor,
        new java.lang.String[] { "Header", "SpotContractID", "OperateType", "OperateSrc", "UserID", "Remark", "ClientTicket", "Info", });
    internal_static_ErmcpMI1_SpotContractOperateRsp_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_ErmcpMI1_SpotContractOperateRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ErmcpMI1_SpotContractOperateRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "SpotContractID", "OperateType", "OperateSrc", "ClientTicket", });
    internal_static_ErmcpMI1_ContractOperateApplyInfo_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_ErmcpMI1_ContractOperateApplyInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ErmcpMI1_ContractOperateApplyInfo_descriptor,
        new java.lang.String[] { "OperateApplyType", "RelatedID", "DetailJson", "AttachUrl", });
    internal_static_ErmcpMI1_ContractOperateApplyReq_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_ErmcpMI1_ContractOperateApplyReq_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ErmcpMI1_ContractOperateApplyReq_descriptor,
        new java.lang.String[] { "Header", "OperateApplyID", "OperateType", "OperateSrc", "UserID", "Remark", "ClientTicket", "Info", });
    internal_static_ErmcpMI1_ContractOperateApplyRsp_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_ErmcpMI1_ContractOperateApplyRsp_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ErmcpMI1_ContractOperateApplyRsp_descriptor,
        new java.lang.String[] { "Header", "RetCode", "RetDesc", "OperateApplyID", "OperateType", "OperateSrc", "ClientTicket", });
    cn.muchinfo.rma.protobuf.protoclasses.Common.getDescriptor();
    cn.muchinfo.rma.protobuf.protoclasses.PublicMI1.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
