// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: OrderState.proto
// Protobuf Java Version: 4.29.3

package com.ib.client.protobuf;

public final class OrderStateProto {
  private OrderStateProto() {}
  static {
    com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
      com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
      /* major= */ 4,
      /* minor= */ 29,
      /* patch= */ 3,
      /* suffix= */ "",
      OrderStateProto.class.getName());
  }
  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 OrderStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:protobuf.OrderState)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string status = 1;</code>
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * <code>optional string status = 1;</code>
     * @return The status.
     */
    java.lang.String getStatus();
    /**
     * <code>optional string status = 1;</code>
     * @return The bytes for status.
     */
    com.google.protobuf.ByteString
        getStatusBytes();

    /**
     * <code>optional double initMarginBefore = 2;</code>
     * @return Whether the initMarginBefore field is set.
     */
    boolean hasInitMarginBefore();
    /**
     * <code>optional double initMarginBefore = 2;</code>
     * @return The initMarginBefore.
     */
    double getInitMarginBefore();

    /**
     * <code>optional double maintMarginBefore = 3;</code>
     * @return Whether the maintMarginBefore field is set.
     */
    boolean hasMaintMarginBefore();
    /**
     * <code>optional double maintMarginBefore = 3;</code>
     * @return The maintMarginBefore.
     */
    double getMaintMarginBefore();

    /**
     * <code>optional double equityWithLoanBefore = 4;</code>
     * @return Whether the equityWithLoanBefore field is set.
     */
    boolean hasEquityWithLoanBefore();
    /**
     * <code>optional double equityWithLoanBefore = 4;</code>
     * @return The equityWithLoanBefore.
     */
    double getEquityWithLoanBefore();

    /**
     * <code>optional double initMarginChange = 5;</code>
     * @return Whether the initMarginChange field is set.
     */
    boolean hasInitMarginChange();
    /**
     * <code>optional double initMarginChange = 5;</code>
     * @return The initMarginChange.
     */
    double getInitMarginChange();

    /**
     * <code>optional double maintMarginChange = 6;</code>
     * @return Whether the maintMarginChange field is set.
     */
    boolean hasMaintMarginChange();
    /**
     * <code>optional double maintMarginChange = 6;</code>
     * @return The maintMarginChange.
     */
    double getMaintMarginChange();

    /**
     * <code>optional double equityWithLoanChange = 7;</code>
     * @return Whether the equityWithLoanChange field is set.
     */
    boolean hasEquityWithLoanChange();
    /**
     * <code>optional double equityWithLoanChange = 7;</code>
     * @return The equityWithLoanChange.
     */
    double getEquityWithLoanChange();

    /**
     * <code>optional double initMarginAfter = 8;</code>
     * @return Whether the initMarginAfter field is set.
     */
    boolean hasInitMarginAfter();
    /**
     * <code>optional double initMarginAfter = 8;</code>
     * @return The initMarginAfter.
     */
    double getInitMarginAfter();

    /**
     * <code>optional double maintMarginAfter = 9;</code>
     * @return Whether the maintMarginAfter field is set.
     */
    boolean hasMaintMarginAfter();
    /**
     * <code>optional double maintMarginAfter = 9;</code>
     * @return The maintMarginAfter.
     */
    double getMaintMarginAfter();

    /**
     * <code>optional double equityWithLoanAfter = 10;</code>
     * @return Whether the equityWithLoanAfter field is set.
     */
    boolean hasEquityWithLoanAfter();
    /**
     * <code>optional double equityWithLoanAfter = 10;</code>
     * @return The equityWithLoanAfter.
     */
    double getEquityWithLoanAfter();

    /**
     * <code>optional double commissionAndFees = 11;</code>
     * @return Whether the commissionAndFees field is set.
     */
    boolean hasCommissionAndFees();
    /**
     * <code>optional double commissionAndFees = 11;</code>
     * @return The commissionAndFees.
     */
    double getCommissionAndFees();

    /**
     * <code>optional double minCommissionAndFees = 12;</code>
     * @return Whether the minCommissionAndFees field is set.
     */
    boolean hasMinCommissionAndFees();
    /**
     * <code>optional double minCommissionAndFees = 12;</code>
     * @return The minCommissionAndFees.
     */
    double getMinCommissionAndFees();

    /**
     * <code>optional double maxCommissionAndFees = 13;</code>
     * @return Whether the maxCommissionAndFees field is set.
     */
    boolean hasMaxCommissionAndFees();
    /**
     * <code>optional double maxCommissionAndFees = 13;</code>
     * @return The maxCommissionAndFees.
     */
    double getMaxCommissionAndFees();

    /**
     * <code>optional string commissionAndFeesCurrency = 14;</code>
     * @return Whether the commissionAndFeesCurrency field is set.
     */
    boolean hasCommissionAndFeesCurrency();
    /**
     * <code>optional string commissionAndFeesCurrency = 14;</code>
     * @return The commissionAndFeesCurrency.
     */
    java.lang.String getCommissionAndFeesCurrency();
    /**
     * <code>optional string commissionAndFeesCurrency = 14;</code>
     * @return The bytes for commissionAndFeesCurrency.
     */
    com.google.protobuf.ByteString
        getCommissionAndFeesCurrencyBytes();

    /**
     * <code>optional string marginCurrency = 15;</code>
     * @return Whether the marginCurrency field is set.
     */
    boolean hasMarginCurrency();
    /**
     * <code>optional string marginCurrency = 15;</code>
     * @return The marginCurrency.
     */
    java.lang.String getMarginCurrency();
    /**
     * <code>optional string marginCurrency = 15;</code>
     * @return The bytes for marginCurrency.
     */
    com.google.protobuf.ByteString
        getMarginCurrencyBytes();

    /**
     * <code>optional double initMarginBeforeOutsideRTH = 16;</code>
     * @return Whether the initMarginBeforeOutsideRTH field is set.
     */
    boolean hasInitMarginBeforeOutsideRTH();
    /**
     * <code>optional double initMarginBeforeOutsideRTH = 16;</code>
     * @return The initMarginBeforeOutsideRTH.
     */
    double getInitMarginBeforeOutsideRTH();

    /**
     * <code>optional double maintMarginBeforeOutsideRTH = 17;</code>
     * @return Whether the maintMarginBeforeOutsideRTH field is set.
     */
    boolean hasMaintMarginBeforeOutsideRTH();
    /**
     * <code>optional double maintMarginBeforeOutsideRTH = 17;</code>
     * @return The maintMarginBeforeOutsideRTH.
     */
    double getMaintMarginBeforeOutsideRTH();

    /**
     * <code>optional double equityWithLoanBeforeOutsideRTH = 18;</code>
     * @return Whether the equityWithLoanBeforeOutsideRTH field is set.
     */
    boolean hasEquityWithLoanBeforeOutsideRTH();
    /**
     * <code>optional double equityWithLoanBeforeOutsideRTH = 18;</code>
     * @return The equityWithLoanBeforeOutsideRTH.
     */
    double getEquityWithLoanBeforeOutsideRTH();

    /**
     * <code>optional double initMarginChangeOutsideRTH = 19;</code>
     * @return Whether the initMarginChangeOutsideRTH field is set.
     */
    boolean hasInitMarginChangeOutsideRTH();
    /**
     * <code>optional double initMarginChangeOutsideRTH = 19;</code>
     * @return The initMarginChangeOutsideRTH.
     */
    double getInitMarginChangeOutsideRTH();

    /**
     * <code>optional double maintMarginChangeOutsideRTH = 20;</code>
     * @return Whether the maintMarginChangeOutsideRTH field is set.
     */
    boolean hasMaintMarginChangeOutsideRTH();
    /**
     * <code>optional double maintMarginChangeOutsideRTH = 20;</code>
     * @return The maintMarginChangeOutsideRTH.
     */
    double getMaintMarginChangeOutsideRTH();

    /**
     * <code>optional double equityWithLoanChangeOutsideRTH = 21;</code>
     * @return Whether the equityWithLoanChangeOutsideRTH field is set.
     */
    boolean hasEquityWithLoanChangeOutsideRTH();
    /**
     * <code>optional double equityWithLoanChangeOutsideRTH = 21;</code>
     * @return The equityWithLoanChangeOutsideRTH.
     */
    double getEquityWithLoanChangeOutsideRTH();

    /**
     * <code>optional double initMarginAfterOutsideRTH = 22;</code>
     * @return Whether the initMarginAfterOutsideRTH field is set.
     */
    boolean hasInitMarginAfterOutsideRTH();
    /**
     * <code>optional double initMarginAfterOutsideRTH = 22;</code>
     * @return The initMarginAfterOutsideRTH.
     */
    double getInitMarginAfterOutsideRTH();

    /**
     * <code>optional double maintMarginAfterOutsideRTH = 23;</code>
     * @return Whether the maintMarginAfterOutsideRTH field is set.
     */
    boolean hasMaintMarginAfterOutsideRTH();
    /**
     * <code>optional double maintMarginAfterOutsideRTH = 23;</code>
     * @return The maintMarginAfterOutsideRTH.
     */
    double getMaintMarginAfterOutsideRTH();

    /**
     * <code>optional double equityWithLoanAfterOutsideRTH = 24;</code>
     * @return Whether the equityWithLoanAfterOutsideRTH field is set.
     */
    boolean hasEquityWithLoanAfterOutsideRTH();
    /**
     * <code>optional double equityWithLoanAfterOutsideRTH = 24;</code>
     * @return The equityWithLoanAfterOutsideRTH.
     */
    double getEquityWithLoanAfterOutsideRTH();

    /**
     * <code>optional string suggestedSize = 25;</code>
     * @return Whether the suggestedSize field is set.
     */
    boolean hasSuggestedSize();
    /**
     * <code>optional string suggestedSize = 25;</code>
     * @return The suggestedSize.
     */
    java.lang.String getSuggestedSize();
    /**
     * <code>optional string suggestedSize = 25;</code>
     * @return The bytes for suggestedSize.
     */
    com.google.protobuf.ByteString
        getSuggestedSizeBytes();

    /**
     * <code>optional string rejectReason = 26;</code>
     * @return Whether the rejectReason field is set.
     */
    boolean hasRejectReason();
    /**
     * <code>optional string rejectReason = 26;</code>
     * @return The rejectReason.
     */
    java.lang.String getRejectReason();
    /**
     * <code>optional string rejectReason = 26;</code>
     * @return The bytes for rejectReason.
     */
    com.google.protobuf.ByteString
        getRejectReasonBytes();

    /**
     * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
     */
    java.util.List<com.ib.client.protobuf.OrderAllocationProto.OrderAllocation> 
        getOrderAllocationsList();
    /**
     * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
     */
    com.ib.client.protobuf.OrderAllocationProto.OrderAllocation getOrderAllocations(int index);
    /**
     * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
     */
    int getOrderAllocationsCount();
    /**
     * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
     */
    java.util.List<? extends com.ib.client.protobuf.OrderAllocationProto.OrderAllocationOrBuilder> 
        getOrderAllocationsOrBuilderList();
    /**
     * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
     */
    com.ib.client.protobuf.OrderAllocationProto.OrderAllocationOrBuilder getOrderAllocationsOrBuilder(
        int index);

    /**
     * <code>optional string warningText = 28;</code>
     * @return Whether the warningText field is set.
     */
    boolean hasWarningText();
    /**
     * <code>optional string warningText = 28;</code>
     * @return The warningText.
     */
    java.lang.String getWarningText();
    /**
     * <code>optional string warningText = 28;</code>
     * @return The bytes for warningText.
     */
    com.google.protobuf.ByteString
        getWarningTextBytes();

    /**
     * <code>optional string completedTime = 29;</code>
     * @return Whether the completedTime field is set.
     */
    boolean hasCompletedTime();
    /**
     * <code>optional string completedTime = 29;</code>
     * @return The completedTime.
     */
    java.lang.String getCompletedTime();
    /**
     * <code>optional string completedTime = 29;</code>
     * @return The bytes for completedTime.
     */
    com.google.protobuf.ByteString
        getCompletedTimeBytes();

    /**
     * <code>optional string completedStatus = 30;</code>
     * @return Whether the completedStatus field is set.
     */
    boolean hasCompletedStatus();
    /**
     * <code>optional string completedStatus = 30;</code>
     * @return The completedStatus.
     */
    java.lang.String getCompletedStatus();
    /**
     * <code>optional string completedStatus = 30;</code>
     * @return The bytes for completedStatus.
     */
    com.google.protobuf.ByteString
        getCompletedStatusBytes();
  }
  /**
   * Protobuf type {@code protobuf.OrderState}
   */
  public static final class OrderState extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:protobuf.OrderState)
      OrderStateOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 29,
        /* patch= */ 3,
        /* suffix= */ "",
        OrderState.class.getName());
    }
    // Use OrderState.newBuilder() to construct.
    private OrderState(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private OrderState() {
      status_ = "";
      commissionAndFeesCurrency_ = "";
      marginCurrency_ = "";
      suggestedSize_ = "";
      rejectReason_ = "";
      orderAllocations_ = java.util.Collections.emptyList();
      warningText_ = "";
      completedTime_ = "";
      completedStatus_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.ib.client.protobuf.OrderStateProto.internal_static_protobuf_OrderState_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ib.client.protobuf.OrderStateProto.internal_static_protobuf_OrderState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.ib.client.protobuf.OrderStateProto.OrderState.class, com.ib.client.protobuf.OrderStateProto.OrderState.Builder.class);
    }

    private int bitField0_;
    public static final int STATUS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object status_ = "";
    /**
     * <code>optional string status = 1;</code>
     * @return Whether the status field is set.
     */
    @java.lang.Override
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string status = 1;</code>
     * @return The status.
     */
    @java.lang.Override
    public java.lang.String getStatus() {
      java.lang.Object ref = status_;
      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();
        status_ = s;
        return s;
      }
    }
    /**
     * <code>optional string status = 1;</code>
     * @return The bytes for status.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getStatusBytes() {
      java.lang.Object ref = status_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        status_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INITMARGINBEFORE_FIELD_NUMBER = 2;
    private double initMarginBefore_ = 0D;
    /**
     * <code>optional double initMarginBefore = 2;</code>
     * @return Whether the initMarginBefore field is set.
     */
    @java.lang.Override
    public boolean hasInitMarginBefore() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional double initMarginBefore = 2;</code>
     * @return The initMarginBefore.
     */
    @java.lang.Override
    public double getInitMarginBefore() {
      return initMarginBefore_;
    }

    public static final int MAINTMARGINBEFORE_FIELD_NUMBER = 3;
    private double maintMarginBefore_ = 0D;
    /**
     * <code>optional double maintMarginBefore = 3;</code>
     * @return Whether the maintMarginBefore field is set.
     */
    @java.lang.Override
    public boolean hasMaintMarginBefore() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional double maintMarginBefore = 3;</code>
     * @return The maintMarginBefore.
     */
    @java.lang.Override
    public double getMaintMarginBefore() {
      return maintMarginBefore_;
    }

    public static final int EQUITYWITHLOANBEFORE_FIELD_NUMBER = 4;
    private double equityWithLoanBefore_ = 0D;
    /**
     * <code>optional double equityWithLoanBefore = 4;</code>
     * @return Whether the equityWithLoanBefore field is set.
     */
    @java.lang.Override
    public boolean hasEquityWithLoanBefore() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional double equityWithLoanBefore = 4;</code>
     * @return The equityWithLoanBefore.
     */
    @java.lang.Override
    public double getEquityWithLoanBefore() {
      return equityWithLoanBefore_;
    }

    public static final int INITMARGINCHANGE_FIELD_NUMBER = 5;
    private double initMarginChange_ = 0D;
    /**
     * <code>optional double initMarginChange = 5;</code>
     * @return Whether the initMarginChange field is set.
     */
    @java.lang.Override
    public boolean hasInitMarginChange() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional double initMarginChange = 5;</code>
     * @return The initMarginChange.
     */
    @java.lang.Override
    public double getInitMarginChange() {
      return initMarginChange_;
    }

    public static final int MAINTMARGINCHANGE_FIELD_NUMBER = 6;
    private double maintMarginChange_ = 0D;
    /**
     * <code>optional double maintMarginChange = 6;</code>
     * @return Whether the maintMarginChange field is set.
     */
    @java.lang.Override
    public boolean hasMaintMarginChange() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional double maintMarginChange = 6;</code>
     * @return The maintMarginChange.
     */
    @java.lang.Override
    public double getMaintMarginChange() {
      return maintMarginChange_;
    }

    public static final int EQUITYWITHLOANCHANGE_FIELD_NUMBER = 7;
    private double equityWithLoanChange_ = 0D;
    /**
     * <code>optional double equityWithLoanChange = 7;</code>
     * @return Whether the equityWithLoanChange field is set.
     */
    @java.lang.Override
    public boolean hasEquityWithLoanChange() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional double equityWithLoanChange = 7;</code>
     * @return The equityWithLoanChange.
     */
    @java.lang.Override
    public double getEquityWithLoanChange() {
      return equityWithLoanChange_;
    }

    public static final int INITMARGINAFTER_FIELD_NUMBER = 8;
    private double initMarginAfter_ = 0D;
    /**
     * <code>optional double initMarginAfter = 8;</code>
     * @return Whether the initMarginAfter field is set.
     */
    @java.lang.Override
    public boolean hasInitMarginAfter() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional double initMarginAfter = 8;</code>
     * @return The initMarginAfter.
     */
    @java.lang.Override
    public double getInitMarginAfter() {
      return initMarginAfter_;
    }

    public static final int MAINTMARGINAFTER_FIELD_NUMBER = 9;
    private double maintMarginAfter_ = 0D;
    /**
     * <code>optional double maintMarginAfter = 9;</code>
     * @return Whether the maintMarginAfter field is set.
     */
    @java.lang.Override
    public boolean hasMaintMarginAfter() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional double maintMarginAfter = 9;</code>
     * @return The maintMarginAfter.
     */
    @java.lang.Override
    public double getMaintMarginAfter() {
      return maintMarginAfter_;
    }

    public static final int EQUITYWITHLOANAFTER_FIELD_NUMBER = 10;
    private double equityWithLoanAfter_ = 0D;
    /**
     * <code>optional double equityWithLoanAfter = 10;</code>
     * @return Whether the equityWithLoanAfter field is set.
     */
    @java.lang.Override
    public boolean hasEquityWithLoanAfter() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional double equityWithLoanAfter = 10;</code>
     * @return The equityWithLoanAfter.
     */
    @java.lang.Override
    public double getEquityWithLoanAfter() {
      return equityWithLoanAfter_;
    }

    public static final int COMMISSIONANDFEES_FIELD_NUMBER = 11;
    private double commissionAndFees_ = 0D;
    /**
     * <code>optional double commissionAndFees = 11;</code>
     * @return Whether the commissionAndFees field is set.
     */
    @java.lang.Override
    public boolean hasCommissionAndFees() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional double commissionAndFees = 11;</code>
     * @return The commissionAndFees.
     */
    @java.lang.Override
    public double getCommissionAndFees() {
      return commissionAndFees_;
    }

    public static final int MINCOMMISSIONANDFEES_FIELD_NUMBER = 12;
    private double minCommissionAndFees_ = 0D;
    /**
     * <code>optional double minCommissionAndFees = 12;</code>
     * @return Whether the minCommissionAndFees field is set.
     */
    @java.lang.Override
    public boolean hasMinCommissionAndFees() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <code>optional double minCommissionAndFees = 12;</code>
     * @return The minCommissionAndFees.
     */
    @java.lang.Override
    public double getMinCommissionAndFees() {
      return minCommissionAndFees_;
    }

    public static final int MAXCOMMISSIONANDFEES_FIELD_NUMBER = 13;
    private double maxCommissionAndFees_ = 0D;
    /**
     * <code>optional double maxCommissionAndFees = 13;</code>
     * @return Whether the maxCommissionAndFees field is set.
     */
    @java.lang.Override
    public boolean hasMaxCommissionAndFees() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional double maxCommissionAndFees = 13;</code>
     * @return The maxCommissionAndFees.
     */
    @java.lang.Override
    public double getMaxCommissionAndFees() {
      return maxCommissionAndFees_;
    }

    public static final int COMMISSIONANDFEESCURRENCY_FIELD_NUMBER = 14;
    @SuppressWarnings("serial")
    private volatile java.lang.Object commissionAndFeesCurrency_ = "";
    /**
     * <code>optional string commissionAndFeesCurrency = 14;</code>
     * @return Whether the commissionAndFeesCurrency field is set.
     */
    @java.lang.Override
    public boolean hasCommissionAndFeesCurrency() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional string commissionAndFeesCurrency = 14;</code>
     * @return The commissionAndFeesCurrency.
     */
    @java.lang.Override
    public java.lang.String getCommissionAndFeesCurrency() {
      java.lang.Object ref = commissionAndFeesCurrency_;
      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();
        commissionAndFeesCurrency_ = s;
        return s;
      }
    }
    /**
     * <code>optional string commissionAndFeesCurrency = 14;</code>
     * @return The bytes for commissionAndFeesCurrency.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCommissionAndFeesCurrencyBytes() {
      java.lang.Object ref = commissionAndFeesCurrency_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        commissionAndFeesCurrency_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MARGINCURRENCY_FIELD_NUMBER = 15;
    @SuppressWarnings("serial")
    private volatile java.lang.Object marginCurrency_ = "";
    /**
     * <code>optional string marginCurrency = 15;</code>
     * @return Whether the marginCurrency field is set.
     */
    @java.lang.Override
    public boolean hasMarginCurrency() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <code>optional string marginCurrency = 15;</code>
     * @return The marginCurrency.
     */
    @java.lang.Override
    public java.lang.String getMarginCurrency() {
      java.lang.Object ref = marginCurrency_;
      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();
        marginCurrency_ = s;
        return s;
      }
    }
    /**
     * <code>optional string marginCurrency = 15;</code>
     * @return The bytes for marginCurrency.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMarginCurrencyBytes() {
      java.lang.Object ref = marginCurrency_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        marginCurrency_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INITMARGINBEFOREOUTSIDERTH_FIELD_NUMBER = 16;
    private double initMarginBeforeOutsideRTH_ = 0D;
    /**
     * <code>optional double initMarginBeforeOutsideRTH = 16;</code>
     * @return Whether the initMarginBeforeOutsideRTH field is set.
     */
    @java.lang.Override
    public boolean hasInitMarginBeforeOutsideRTH() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <code>optional double initMarginBeforeOutsideRTH = 16;</code>
     * @return The initMarginBeforeOutsideRTH.
     */
    @java.lang.Override
    public double getInitMarginBeforeOutsideRTH() {
      return initMarginBeforeOutsideRTH_;
    }

    public static final int MAINTMARGINBEFOREOUTSIDERTH_FIELD_NUMBER = 17;
    private double maintMarginBeforeOutsideRTH_ = 0D;
    /**
     * <code>optional double maintMarginBeforeOutsideRTH = 17;</code>
     * @return Whether the maintMarginBeforeOutsideRTH field is set.
     */
    @java.lang.Override
    public boolean hasMaintMarginBeforeOutsideRTH() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <code>optional double maintMarginBeforeOutsideRTH = 17;</code>
     * @return The maintMarginBeforeOutsideRTH.
     */
    @java.lang.Override
    public double getMaintMarginBeforeOutsideRTH() {
      return maintMarginBeforeOutsideRTH_;
    }

    public static final int EQUITYWITHLOANBEFOREOUTSIDERTH_FIELD_NUMBER = 18;
    private double equityWithLoanBeforeOutsideRTH_ = 0D;
    /**
     * <code>optional double equityWithLoanBeforeOutsideRTH = 18;</code>
     * @return Whether the equityWithLoanBeforeOutsideRTH field is set.
     */
    @java.lang.Override
    public boolean hasEquityWithLoanBeforeOutsideRTH() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <code>optional double equityWithLoanBeforeOutsideRTH = 18;</code>
     * @return The equityWithLoanBeforeOutsideRTH.
     */
    @java.lang.Override
    public double getEquityWithLoanBeforeOutsideRTH() {
      return equityWithLoanBeforeOutsideRTH_;
    }

    public static final int INITMARGINCHANGEOUTSIDERTH_FIELD_NUMBER = 19;
    private double initMarginChangeOutsideRTH_ = 0D;
    /**
     * <code>optional double initMarginChangeOutsideRTH = 19;</code>
     * @return Whether the initMarginChangeOutsideRTH field is set.
     */
    @java.lang.Override
    public boolean hasInitMarginChangeOutsideRTH() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <code>optional double initMarginChangeOutsideRTH = 19;</code>
     * @return The initMarginChangeOutsideRTH.
     */
    @java.lang.Override
    public double getInitMarginChangeOutsideRTH() {
      return initMarginChangeOutsideRTH_;
    }

    public static final int MAINTMARGINCHANGEOUTSIDERTH_FIELD_NUMBER = 20;
    private double maintMarginChangeOutsideRTH_ = 0D;
    /**
     * <code>optional double maintMarginChangeOutsideRTH = 20;</code>
     * @return Whether the maintMarginChangeOutsideRTH field is set.
     */
    @java.lang.Override
    public boolean hasMaintMarginChangeOutsideRTH() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <code>optional double maintMarginChangeOutsideRTH = 20;</code>
     * @return The maintMarginChangeOutsideRTH.
     */
    @java.lang.Override
    public double getMaintMarginChangeOutsideRTH() {
      return maintMarginChangeOutsideRTH_;
    }

    public static final int EQUITYWITHLOANCHANGEOUTSIDERTH_FIELD_NUMBER = 21;
    private double equityWithLoanChangeOutsideRTH_ = 0D;
    /**
     * <code>optional double equityWithLoanChangeOutsideRTH = 21;</code>
     * @return Whether the equityWithLoanChangeOutsideRTH field is set.
     */
    @java.lang.Override
    public boolean hasEquityWithLoanChangeOutsideRTH() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * <code>optional double equityWithLoanChangeOutsideRTH = 21;</code>
     * @return The equityWithLoanChangeOutsideRTH.
     */
    @java.lang.Override
    public double getEquityWithLoanChangeOutsideRTH() {
      return equityWithLoanChangeOutsideRTH_;
    }

    public static final int INITMARGINAFTEROUTSIDERTH_FIELD_NUMBER = 22;
    private double initMarginAfterOutsideRTH_ = 0D;
    /**
     * <code>optional double initMarginAfterOutsideRTH = 22;</code>
     * @return Whether the initMarginAfterOutsideRTH field is set.
     */
    @java.lang.Override
    public boolean hasInitMarginAfterOutsideRTH() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * <code>optional double initMarginAfterOutsideRTH = 22;</code>
     * @return The initMarginAfterOutsideRTH.
     */
    @java.lang.Override
    public double getInitMarginAfterOutsideRTH() {
      return initMarginAfterOutsideRTH_;
    }

    public static final int MAINTMARGINAFTEROUTSIDERTH_FIELD_NUMBER = 23;
    private double maintMarginAfterOutsideRTH_ = 0D;
    /**
     * <code>optional double maintMarginAfterOutsideRTH = 23;</code>
     * @return Whether the maintMarginAfterOutsideRTH field is set.
     */
    @java.lang.Override
    public boolean hasMaintMarginAfterOutsideRTH() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * <code>optional double maintMarginAfterOutsideRTH = 23;</code>
     * @return The maintMarginAfterOutsideRTH.
     */
    @java.lang.Override
    public double getMaintMarginAfterOutsideRTH() {
      return maintMarginAfterOutsideRTH_;
    }

    public static final int EQUITYWITHLOANAFTEROUTSIDERTH_FIELD_NUMBER = 24;
    private double equityWithLoanAfterOutsideRTH_ = 0D;
    /**
     * <code>optional double equityWithLoanAfterOutsideRTH = 24;</code>
     * @return Whether the equityWithLoanAfterOutsideRTH field is set.
     */
    @java.lang.Override
    public boolean hasEquityWithLoanAfterOutsideRTH() {
      return ((bitField0_ & 0x00800000) != 0);
    }
    /**
     * <code>optional double equityWithLoanAfterOutsideRTH = 24;</code>
     * @return The equityWithLoanAfterOutsideRTH.
     */
    @java.lang.Override
    public double getEquityWithLoanAfterOutsideRTH() {
      return equityWithLoanAfterOutsideRTH_;
    }

    public static final int SUGGESTEDSIZE_FIELD_NUMBER = 25;
    @SuppressWarnings("serial")
    private volatile java.lang.Object suggestedSize_ = "";
    /**
     * <code>optional string suggestedSize = 25;</code>
     * @return Whether the suggestedSize field is set.
     */
    @java.lang.Override
    public boolean hasSuggestedSize() {
      return ((bitField0_ & 0x01000000) != 0);
    }
    /**
     * <code>optional string suggestedSize = 25;</code>
     * @return The suggestedSize.
     */
    @java.lang.Override
    public java.lang.String getSuggestedSize() {
      java.lang.Object ref = suggestedSize_;
      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();
        suggestedSize_ = s;
        return s;
      }
    }
    /**
     * <code>optional string suggestedSize = 25;</code>
     * @return The bytes for suggestedSize.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSuggestedSizeBytes() {
      java.lang.Object ref = suggestedSize_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        suggestedSize_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REJECTREASON_FIELD_NUMBER = 26;
    @SuppressWarnings("serial")
    private volatile java.lang.Object rejectReason_ = "";
    /**
     * <code>optional string rejectReason = 26;</code>
     * @return Whether the rejectReason field is set.
     */
    @java.lang.Override
    public boolean hasRejectReason() {
      return ((bitField0_ & 0x02000000) != 0);
    }
    /**
     * <code>optional string rejectReason = 26;</code>
     * @return The rejectReason.
     */
    @java.lang.Override
    public java.lang.String getRejectReason() {
      java.lang.Object ref = rejectReason_;
      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();
        rejectReason_ = s;
        return s;
      }
    }
    /**
     * <code>optional string rejectReason = 26;</code>
     * @return The bytes for rejectReason.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRejectReasonBytes() {
      java.lang.Object ref = rejectReason_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        rejectReason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ORDERALLOCATIONS_FIELD_NUMBER = 27;
    @SuppressWarnings("serial")
    private java.util.List<com.ib.client.protobuf.OrderAllocationProto.OrderAllocation> orderAllocations_;
    /**
     * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
     */
    @java.lang.Override
    public java.util.List<com.ib.client.protobuf.OrderAllocationProto.OrderAllocation> getOrderAllocationsList() {
      return orderAllocations_;
    }
    /**
     * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.ib.client.protobuf.OrderAllocationProto.OrderAllocationOrBuilder> 
        getOrderAllocationsOrBuilderList() {
      return orderAllocations_;
    }
    /**
     * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
     */
    @java.lang.Override
    public int getOrderAllocationsCount() {
      return orderAllocations_.size();
    }
    /**
     * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
     */
    @java.lang.Override
    public com.ib.client.protobuf.OrderAllocationProto.OrderAllocation getOrderAllocations(int index) {
      return orderAllocations_.get(index);
    }
    /**
     * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
     */
    @java.lang.Override
    public com.ib.client.protobuf.OrderAllocationProto.OrderAllocationOrBuilder getOrderAllocationsOrBuilder(
        int index) {
      return orderAllocations_.get(index);
    }

    public static final int WARNINGTEXT_FIELD_NUMBER = 28;
    @SuppressWarnings("serial")
    private volatile java.lang.Object warningText_ = "";
    /**
     * <code>optional string warningText = 28;</code>
     * @return Whether the warningText field is set.
     */
    @java.lang.Override
    public boolean hasWarningText() {
      return ((bitField0_ & 0x04000000) != 0);
    }
    /**
     * <code>optional string warningText = 28;</code>
     * @return The warningText.
     */
    @java.lang.Override
    public java.lang.String getWarningText() {
      java.lang.Object ref = warningText_;
      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();
        warningText_ = s;
        return s;
      }
    }
    /**
     * <code>optional string warningText = 28;</code>
     * @return The bytes for warningText.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getWarningTextBytes() {
      java.lang.Object ref = warningText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        warningText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COMPLETEDTIME_FIELD_NUMBER = 29;
    @SuppressWarnings("serial")
    private volatile java.lang.Object completedTime_ = "";
    /**
     * <code>optional string completedTime = 29;</code>
     * @return Whether the completedTime field is set.
     */
    @java.lang.Override
    public boolean hasCompletedTime() {
      return ((bitField0_ & 0x08000000) != 0);
    }
    /**
     * <code>optional string completedTime = 29;</code>
     * @return The completedTime.
     */
    @java.lang.Override
    public java.lang.String getCompletedTime() {
      java.lang.Object ref = completedTime_;
      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();
        completedTime_ = s;
        return s;
      }
    }
    /**
     * <code>optional string completedTime = 29;</code>
     * @return The bytes for completedTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCompletedTimeBytes() {
      java.lang.Object ref = completedTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        completedTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COMPLETEDSTATUS_FIELD_NUMBER = 30;
    @SuppressWarnings("serial")
    private volatile java.lang.Object completedStatus_ = "";
    /**
     * <code>optional string completedStatus = 30;</code>
     * @return Whether the completedStatus field is set.
     */
    @java.lang.Override
    public boolean hasCompletedStatus() {
      return ((bitField0_ & 0x10000000) != 0);
    }
    /**
     * <code>optional string completedStatus = 30;</code>
     * @return The completedStatus.
     */
    @java.lang.Override
    public java.lang.String getCompletedStatus() {
      java.lang.Object ref = completedStatus_;
      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();
        completedStatus_ = s;
        return s;
      }
    }
    /**
     * <code>optional string completedStatus = 30;</code>
     * @return The bytes for completedStatus.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCompletedStatusBytes() {
      java.lang.Object ref = completedStatus_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        completedStatus_ = 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.GeneratedMessage.writeString(output, 1, status_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeDouble(2, initMarginBefore_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeDouble(3, maintMarginBefore_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeDouble(4, equityWithLoanBefore_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeDouble(5, initMarginChange_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeDouble(6, maintMarginChange_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeDouble(7, equityWithLoanChange_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeDouble(8, initMarginAfter_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeDouble(9, maintMarginAfter_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeDouble(10, equityWithLoanAfter_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeDouble(11, commissionAndFees_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeDouble(12, minCommissionAndFees_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeDouble(13, maxCommissionAndFees_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 14, commissionAndFeesCurrency_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 15, marginCurrency_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeDouble(16, initMarginBeforeOutsideRTH_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        output.writeDouble(17, maintMarginBeforeOutsideRTH_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeDouble(18, equityWithLoanBeforeOutsideRTH_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        output.writeDouble(19, initMarginChangeOutsideRTH_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        output.writeDouble(20, maintMarginChangeOutsideRTH_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        output.writeDouble(21, equityWithLoanChangeOutsideRTH_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        output.writeDouble(22, initMarginAfterOutsideRTH_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        output.writeDouble(23, maintMarginAfterOutsideRTH_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        output.writeDouble(24, equityWithLoanAfterOutsideRTH_);
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 25, suggestedSize_);
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 26, rejectReason_);
      }
      for (int i = 0; i < orderAllocations_.size(); i++) {
        output.writeMessage(27, orderAllocations_.get(i));
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 28, warningText_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 29, completedTime_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 30, completedStatus_);
      }
      getUnknownFields().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.GeneratedMessage.computeStringSize(1, status_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, initMarginBefore_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(3, maintMarginBefore_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(4, equityWithLoanBefore_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(5, initMarginChange_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(6, maintMarginChange_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(7, equityWithLoanChange_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(8, initMarginAfter_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(9, maintMarginAfter_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(10, equityWithLoanAfter_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(11, commissionAndFees_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(12, minCommissionAndFees_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(13, maxCommissionAndFees_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(14, commissionAndFeesCurrency_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(15, marginCurrency_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(16, initMarginBeforeOutsideRTH_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(17, maintMarginBeforeOutsideRTH_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(18, equityWithLoanBeforeOutsideRTH_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(19, initMarginChangeOutsideRTH_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(20, maintMarginChangeOutsideRTH_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(21, equityWithLoanChangeOutsideRTH_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(22, initMarginAfterOutsideRTH_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(23, maintMarginAfterOutsideRTH_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(24, equityWithLoanAfterOutsideRTH_);
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(25, suggestedSize_);
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(26, rejectReason_);
      }
      for (int i = 0; i < orderAllocations_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(27, orderAllocations_.get(i));
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(28, warningText_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(29, completedTime_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(30, completedStatus_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.ib.client.protobuf.OrderStateProto.OrderState)) {
        return super.equals(obj);
      }
      com.ib.client.protobuf.OrderStateProto.OrderState other = (com.ib.client.protobuf.OrderStateProto.OrderState) obj;

      if (hasStatus() != other.hasStatus()) return false;
      if (hasStatus()) {
        if (!getStatus()
            .equals(other.getStatus())) return false;
      }
      if (hasInitMarginBefore() != other.hasInitMarginBefore()) return false;
      if (hasInitMarginBefore()) {
        if (java.lang.Double.doubleToLongBits(getInitMarginBefore())
            != java.lang.Double.doubleToLongBits(
                other.getInitMarginBefore())) return false;
      }
      if (hasMaintMarginBefore() != other.hasMaintMarginBefore()) return false;
      if (hasMaintMarginBefore()) {
        if (java.lang.Double.doubleToLongBits(getMaintMarginBefore())
            != java.lang.Double.doubleToLongBits(
                other.getMaintMarginBefore())) return false;
      }
      if (hasEquityWithLoanBefore() != other.hasEquityWithLoanBefore()) return false;
      if (hasEquityWithLoanBefore()) {
        if (java.lang.Double.doubleToLongBits(getEquityWithLoanBefore())
            != java.lang.Double.doubleToLongBits(
                other.getEquityWithLoanBefore())) return false;
      }
      if (hasInitMarginChange() != other.hasInitMarginChange()) return false;
      if (hasInitMarginChange()) {
        if (java.lang.Double.doubleToLongBits(getInitMarginChange())
            != java.lang.Double.doubleToLongBits(
                other.getInitMarginChange())) return false;
      }
      if (hasMaintMarginChange() != other.hasMaintMarginChange()) return false;
      if (hasMaintMarginChange()) {
        if (java.lang.Double.doubleToLongBits(getMaintMarginChange())
            != java.lang.Double.doubleToLongBits(
                other.getMaintMarginChange())) return false;
      }
      if (hasEquityWithLoanChange() != other.hasEquityWithLoanChange()) return false;
      if (hasEquityWithLoanChange()) {
        if (java.lang.Double.doubleToLongBits(getEquityWithLoanChange())
            != java.lang.Double.doubleToLongBits(
                other.getEquityWithLoanChange())) return false;
      }
      if (hasInitMarginAfter() != other.hasInitMarginAfter()) return false;
      if (hasInitMarginAfter()) {
        if (java.lang.Double.doubleToLongBits(getInitMarginAfter())
            != java.lang.Double.doubleToLongBits(
                other.getInitMarginAfter())) return false;
      }
      if (hasMaintMarginAfter() != other.hasMaintMarginAfter()) return false;
      if (hasMaintMarginAfter()) {
        if (java.lang.Double.doubleToLongBits(getMaintMarginAfter())
            != java.lang.Double.doubleToLongBits(
                other.getMaintMarginAfter())) return false;
      }
      if (hasEquityWithLoanAfter() != other.hasEquityWithLoanAfter()) return false;
      if (hasEquityWithLoanAfter()) {
        if (java.lang.Double.doubleToLongBits(getEquityWithLoanAfter())
            != java.lang.Double.doubleToLongBits(
                other.getEquityWithLoanAfter())) return false;
      }
      if (hasCommissionAndFees() != other.hasCommissionAndFees()) return false;
      if (hasCommissionAndFees()) {
        if (java.lang.Double.doubleToLongBits(getCommissionAndFees())
            != java.lang.Double.doubleToLongBits(
                other.getCommissionAndFees())) return false;
      }
      if (hasMinCommissionAndFees() != other.hasMinCommissionAndFees()) return false;
      if (hasMinCommissionAndFees()) {
        if (java.lang.Double.doubleToLongBits(getMinCommissionAndFees())
            != java.lang.Double.doubleToLongBits(
                other.getMinCommissionAndFees())) return false;
      }
      if (hasMaxCommissionAndFees() != other.hasMaxCommissionAndFees()) return false;
      if (hasMaxCommissionAndFees()) {
        if (java.lang.Double.doubleToLongBits(getMaxCommissionAndFees())
            != java.lang.Double.doubleToLongBits(
                other.getMaxCommissionAndFees())) return false;
      }
      if (hasCommissionAndFeesCurrency() != other.hasCommissionAndFeesCurrency()) return false;
      if (hasCommissionAndFeesCurrency()) {
        if (!getCommissionAndFeesCurrency()
            .equals(other.getCommissionAndFeesCurrency())) return false;
      }
      if (hasMarginCurrency() != other.hasMarginCurrency()) return false;
      if (hasMarginCurrency()) {
        if (!getMarginCurrency()
            .equals(other.getMarginCurrency())) return false;
      }
      if (hasInitMarginBeforeOutsideRTH() != other.hasInitMarginBeforeOutsideRTH()) return false;
      if (hasInitMarginBeforeOutsideRTH()) {
        if (java.lang.Double.doubleToLongBits(getInitMarginBeforeOutsideRTH())
            != java.lang.Double.doubleToLongBits(
                other.getInitMarginBeforeOutsideRTH())) return false;
      }
      if (hasMaintMarginBeforeOutsideRTH() != other.hasMaintMarginBeforeOutsideRTH()) return false;
      if (hasMaintMarginBeforeOutsideRTH()) {
        if (java.lang.Double.doubleToLongBits(getMaintMarginBeforeOutsideRTH())
            != java.lang.Double.doubleToLongBits(
                other.getMaintMarginBeforeOutsideRTH())) return false;
      }
      if (hasEquityWithLoanBeforeOutsideRTH() != other.hasEquityWithLoanBeforeOutsideRTH()) return false;
      if (hasEquityWithLoanBeforeOutsideRTH()) {
        if (java.lang.Double.doubleToLongBits(getEquityWithLoanBeforeOutsideRTH())
            != java.lang.Double.doubleToLongBits(
                other.getEquityWithLoanBeforeOutsideRTH())) return false;
      }
      if (hasInitMarginChangeOutsideRTH() != other.hasInitMarginChangeOutsideRTH()) return false;
      if (hasInitMarginChangeOutsideRTH()) {
        if (java.lang.Double.doubleToLongBits(getInitMarginChangeOutsideRTH())
            != java.lang.Double.doubleToLongBits(
                other.getInitMarginChangeOutsideRTH())) return false;
      }
      if (hasMaintMarginChangeOutsideRTH() != other.hasMaintMarginChangeOutsideRTH()) return false;
      if (hasMaintMarginChangeOutsideRTH()) {
        if (java.lang.Double.doubleToLongBits(getMaintMarginChangeOutsideRTH())
            != java.lang.Double.doubleToLongBits(
                other.getMaintMarginChangeOutsideRTH())) return false;
      }
      if (hasEquityWithLoanChangeOutsideRTH() != other.hasEquityWithLoanChangeOutsideRTH()) return false;
      if (hasEquityWithLoanChangeOutsideRTH()) {
        if (java.lang.Double.doubleToLongBits(getEquityWithLoanChangeOutsideRTH())
            != java.lang.Double.doubleToLongBits(
                other.getEquityWithLoanChangeOutsideRTH())) return false;
      }
      if (hasInitMarginAfterOutsideRTH() != other.hasInitMarginAfterOutsideRTH()) return false;
      if (hasInitMarginAfterOutsideRTH()) {
        if (java.lang.Double.doubleToLongBits(getInitMarginAfterOutsideRTH())
            != java.lang.Double.doubleToLongBits(
                other.getInitMarginAfterOutsideRTH())) return false;
      }
      if (hasMaintMarginAfterOutsideRTH() != other.hasMaintMarginAfterOutsideRTH()) return false;
      if (hasMaintMarginAfterOutsideRTH()) {
        if (java.lang.Double.doubleToLongBits(getMaintMarginAfterOutsideRTH())
            != java.lang.Double.doubleToLongBits(
                other.getMaintMarginAfterOutsideRTH())) return false;
      }
      if (hasEquityWithLoanAfterOutsideRTH() != other.hasEquityWithLoanAfterOutsideRTH()) return false;
      if (hasEquityWithLoanAfterOutsideRTH()) {
        if (java.lang.Double.doubleToLongBits(getEquityWithLoanAfterOutsideRTH())
            != java.lang.Double.doubleToLongBits(
                other.getEquityWithLoanAfterOutsideRTH())) return false;
      }
      if (hasSuggestedSize() != other.hasSuggestedSize()) return false;
      if (hasSuggestedSize()) {
        if (!getSuggestedSize()
            .equals(other.getSuggestedSize())) return false;
      }
      if (hasRejectReason() != other.hasRejectReason()) return false;
      if (hasRejectReason()) {
        if (!getRejectReason()
            .equals(other.getRejectReason())) return false;
      }
      if (!getOrderAllocationsList()
          .equals(other.getOrderAllocationsList())) return false;
      if (hasWarningText() != other.hasWarningText()) return false;
      if (hasWarningText()) {
        if (!getWarningText()
            .equals(other.getWarningText())) return false;
      }
      if (hasCompletedTime() != other.hasCompletedTime()) return false;
      if (hasCompletedTime()) {
        if (!getCompletedTime()
            .equals(other.getCompletedTime())) return false;
      }
      if (hasCompletedStatus() != other.hasCompletedStatus()) return false;
      if (hasCompletedStatus()) {
        if (!getCompletedStatus()
            .equals(other.getCompletedStatus())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      if (hasInitMarginBefore()) {
        hash = (37 * hash) + INITMARGINBEFORE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getInitMarginBefore()));
      }
      if (hasMaintMarginBefore()) {
        hash = (37 * hash) + MAINTMARGINBEFORE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMaintMarginBefore()));
      }
      if (hasEquityWithLoanBefore()) {
        hash = (37 * hash) + EQUITYWITHLOANBEFORE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getEquityWithLoanBefore()));
      }
      if (hasInitMarginChange()) {
        hash = (37 * hash) + INITMARGINCHANGE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getInitMarginChange()));
      }
      if (hasMaintMarginChange()) {
        hash = (37 * hash) + MAINTMARGINCHANGE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMaintMarginChange()));
      }
      if (hasEquityWithLoanChange()) {
        hash = (37 * hash) + EQUITYWITHLOANCHANGE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getEquityWithLoanChange()));
      }
      if (hasInitMarginAfter()) {
        hash = (37 * hash) + INITMARGINAFTER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getInitMarginAfter()));
      }
      if (hasMaintMarginAfter()) {
        hash = (37 * hash) + MAINTMARGINAFTER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMaintMarginAfter()));
      }
      if (hasEquityWithLoanAfter()) {
        hash = (37 * hash) + EQUITYWITHLOANAFTER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getEquityWithLoanAfter()));
      }
      if (hasCommissionAndFees()) {
        hash = (37 * hash) + COMMISSIONANDFEES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getCommissionAndFees()));
      }
      if (hasMinCommissionAndFees()) {
        hash = (37 * hash) + MINCOMMISSIONANDFEES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMinCommissionAndFees()));
      }
      if (hasMaxCommissionAndFees()) {
        hash = (37 * hash) + MAXCOMMISSIONANDFEES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMaxCommissionAndFees()));
      }
      if (hasCommissionAndFeesCurrency()) {
        hash = (37 * hash) + COMMISSIONANDFEESCURRENCY_FIELD_NUMBER;
        hash = (53 * hash) + getCommissionAndFeesCurrency().hashCode();
      }
      if (hasMarginCurrency()) {
        hash = (37 * hash) + MARGINCURRENCY_FIELD_NUMBER;
        hash = (53 * hash) + getMarginCurrency().hashCode();
      }
      if (hasInitMarginBeforeOutsideRTH()) {
        hash = (37 * hash) + INITMARGINBEFOREOUTSIDERTH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getInitMarginBeforeOutsideRTH()));
      }
      if (hasMaintMarginBeforeOutsideRTH()) {
        hash = (37 * hash) + MAINTMARGINBEFOREOUTSIDERTH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMaintMarginBeforeOutsideRTH()));
      }
      if (hasEquityWithLoanBeforeOutsideRTH()) {
        hash = (37 * hash) + EQUITYWITHLOANBEFOREOUTSIDERTH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getEquityWithLoanBeforeOutsideRTH()));
      }
      if (hasInitMarginChangeOutsideRTH()) {
        hash = (37 * hash) + INITMARGINCHANGEOUTSIDERTH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getInitMarginChangeOutsideRTH()));
      }
      if (hasMaintMarginChangeOutsideRTH()) {
        hash = (37 * hash) + MAINTMARGINCHANGEOUTSIDERTH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMaintMarginChangeOutsideRTH()));
      }
      if (hasEquityWithLoanChangeOutsideRTH()) {
        hash = (37 * hash) + EQUITYWITHLOANCHANGEOUTSIDERTH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getEquityWithLoanChangeOutsideRTH()));
      }
      if (hasInitMarginAfterOutsideRTH()) {
        hash = (37 * hash) + INITMARGINAFTEROUTSIDERTH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getInitMarginAfterOutsideRTH()));
      }
      if (hasMaintMarginAfterOutsideRTH()) {
        hash = (37 * hash) + MAINTMARGINAFTEROUTSIDERTH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMaintMarginAfterOutsideRTH()));
      }
      if (hasEquityWithLoanAfterOutsideRTH()) {
        hash = (37 * hash) + EQUITYWITHLOANAFTEROUTSIDERTH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getEquityWithLoanAfterOutsideRTH()));
      }
      if (hasSuggestedSize()) {
        hash = (37 * hash) + SUGGESTEDSIZE_FIELD_NUMBER;
        hash = (53 * hash) + getSuggestedSize().hashCode();
      }
      if (hasRejectReason()) {
        hash = (37 * hash) + REJECTREASON_FIELD_NUMBER;
        hash = (53 * hash) + getRejectReason().hashCode();
      }
      if (getOrderAllocationsCount() > 0) {
        hash = (37 * hash) + ORDERALLOCATIONS_FIELD_NUMBER;
        hash = (53 * hash) + getOrderAllocationsList().hashCode();
      }
      if (hasWarningText()) {
        hash = (37 * hash) + WARNINGTEXT_FIELD_NUMBER;
        hash = (53 * hash) + getWarningText().hashCode();
      }
      if (hasCompletedTime()) {
        hash = (37 * hash) + COMPLETEDTIME_FIELD_NUMBER;
        hash = (53 * hash) + getCompletedTime().hashCode();
      }
      if (hasCompletedStatus()) {
        hash = (37 * hash) + COMPLETEDSTATUS_FIELD_NUMBER;
        hash = (53 * hash) + getCompletedStatus().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.ib.client.protobuf.OrderStateProto.OrderState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ib.client.protobuf.OrderStateProto.OrderState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ib.client.protobuf.OrderStateProto.OrderState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ib.client.protobuf.OrderStateProto.OrderState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ib.client.protobuf.OrderStateProto.OrderState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ib.client.protobuf.OrderStateProto.OrderState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ib.client.protobuf.OrderStateProto.OrderState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.ib.client.protobuf.OrderStateProto.OrderState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.ib.client.protobuf.OrderStateProto.OrderState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.ib.client.protobuf.OrderStateProto.OrderState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.ib.client.protobuf.OrderStateProto.OrderState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.ib.client.protobuf.OrderStateProto.OrderState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.ib.client.protobuf.OrderStateProto.OrderState 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.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code protobuf.OrderState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:protobuf.OrderState)
        com.ib.client.protobuf.OrderStateProto.OrderStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.ib.client.protobuf.OrderStateProto.internal_static_protobuf_OrderState_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ib.client.protobuf.OrderStateProto.internal_static_protobuf_OrderState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.ib.client.protobuf.OrderStateProto.OrderState.class, com.ib.client.protobuf.OrderStateProto.OrderState.Builder.class);
      }

      // Construct using com.ib.client.protobuf.OrderStateProto.OrderState.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        status_ = "";
        initMarginBefore_ = 0D;
        maintMarginBefore_ = 0D;
        equityWithLoanBefore_ = 0D;
        initMarginChange_ = 0D;
        maintMarginChange_ = 0D;
        equityWithLoanChange_ = 0D;
        initMarginAfter_ = 0D;
        maintMarginAfter_ = 0D;
        equityWithLoanAfter_ = 0D;
        commissionAndFees_ = 0D;
        minCommissionAndFees_ = 0D;
        maxCommissionAndFees_ = 0D;
        commissionAndFeesCurrency_ = "";
        marginCurrency_ = "";
        initMarginBeforeOutsideRTH_ = 0D;
        maintMarginBeforeOutsideRTH_ = 0D;
        equityWithLoanBeforeOutsideRTH_ = 0D;
        initMarginChangeOutsideRTH_ = 0D;
        maintMarginChangeOutsideRTH_ = 0D;
        equityWithLoanChangeOutsideRTH_ = 0D;
        initMarginAfterOutsideRTH_ = 0D;
        maintMarginAfterOutsideRTH_ = 0D;
        equityWithLoanAfterOutsideRTH_ = 0D;
        suggestedSize_ = "";
        rejectReason_ = "";
        if (orderAllocationsBuilder_ == null) {
          orderAllocations_ = java.util.Collections.emptyList();
        } else {
          orderAllocations_ = null;
          orderAllocationsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x04000000);
        warningText_ = "";
        completedTime_ = "";
        completedStatus_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ib.client.protobuf.OrderStateProto.internal_static_protobuf_OrderState_descriptor;
      }

      @java.lang.Override
      public com.ib.client.protobuf.OrderStateProto.OrderState getDefaultInstanceForType() {
        return com.ib.client.protobuf.OrderStateProto.OrderState.getDefaultInstance();
      }

      @java.lang.Override
      public com.ib.client.protobuf.OrderStateProto.OrderState build() {
        com.ib.client.protobuf.OrderStateProto.OrderState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.ib.client.protobuf.OrderStateProto.OrderState buildPartial() {
        com.ib.client.protobuf.OrderStateProto.OrderState result = new com.ib.client.protobuf.OrderStateProto.OrderState(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.ib.client.protobuf.OrderStateProto.OrderState result) {
        if (orderAllocationsBuilder_ == null) {
          if (((bitField0_ & 0x04000000) != 0)) {
            orderAllocations_ = java.util.Collections.unmodifiableList(orderAllocations_);
            bitField0_ = (bitField0_ & ~0x04000000);
          }
          result.orderAllocations_ = orderAllocations_;
        } else {
          result.orderAllocations_ = orderAllocationsBuilder_.build();
        }
      }

      private void buildPartial0(com.ib.client.protobuf.OrderStateProto.OrderState result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.status_ = status_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.initMarginBefore_ = initMarginBefore_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.maintMarginBefore_ = maintMarginBefore_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.equityWithLoanBefore_ = equityWithLoanBefore_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.initMarginChange_ = initMarginChange_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.maintMarginChange_ = maintMarginChange_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.equityWithLoanChange_ = equityWithLoanChange_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.initMarginAfter_ = initMarginAfter_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.maintMarginAfter_ = maintMarginAfter_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.equityWithLoanAfter_ = equityWithLoanAfter_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.commissionAndFees_ = commissionAndFees_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.minCommissionAndFees_ = minCommissionAndFees_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.maxCommissionAndFees_ = maxCommissionAndFees_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.commissionAndFeesCurrency_ = commissionAndFeesCurrency_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.marginCurrency_ = marginCurrency_;
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.initMarginBeforeOutsideRTH_ = initMarginBeforeOutsideRTH_;
          to_bitField0_ |= 0x00008000;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          result.maintMarginBeforeOutsideRTH_ = maintMarginBeforeOutsideRTH_;
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          result.equityWithLoanBeforeOutsideRTH_ = equityWithLoanBeforeOutsideRTH_;
          to_bitField0_ |= 0x00020000;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.initMarginChangeOutsideRTH_ = initMarginChangeOutsideRTH_;
          to_bitField0_ |= 0x00040000;
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.maintMarginChangeOutsideRTH_ = maintMarginChangeOutsideRTH_;
          to_bitField0_ |= 0x00080000;
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.equityWithLoanChangeOutsideRTH_ = equityWithLoanChangeOutsideRTH_;
          to_bitField0_ |= 0x00100000;
        }
        if (((from_bitField0_ & 0x00200000) != 0)) {
          result.initMarginAfterOutsideRTH_ = initMarginAfterOutsideRTH_;
          to_bitField0_ |= 0x00200000;
        }
        if (((from_bitField0_ & 0x00400000) != 0)) {
          result.maintMarginAfterOutsideRTH_ = maintMarginAfterOutsideRTH_;
          to_bitField0_ |= 0x00400000;
        }
        if (((from_bitField0_ & 0x00800000) != 0)) {
          result.equityWithLoanAfterOutsideRTH_ = equityWithLoanAfterOutsideRTH_;
          to_bitField0_ |= 0x00800000;
        }
        if (((from_bitField0_ & 0x01000000) != 0)) {
          result.suggestedSize_ = suggestedSize_;
          to_bitField0_ |= 0x01000000;
        }
        if (((from_bitField0_ & 0x02000000) != 0)) {
          result.rejectReason_ = rejectReason_;
          to_bitField0_ |= 0x02000000;
        }
        if (((from_bitField0_ & 0x08000000) != 0)) {
          result.warningText_ = warningText_;
          to_bitField0_ |= 0x04000000;
        }
        if (((from_bitField0_ & 0x10000000) != 0)) {
          result.completedTime_ = completedTime_;
          to_bitField0_ |= 0x08000000;
        }
        if (((from_bitField0_ & 0x20000000) != 0)) {
          result.completedStatus_ = completedStatus_;
          to_bitField0_ |= 0x10000000;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ib.client.protobuf.OrderStateProto.OrderState) {
          return mergeFrom((com.ib.client.protobuf.OrderStateProto.OrderState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.ib.client.protobuf.OrderStateProto.OrderState other) {
        if (other == com.ib.client.protobuf.OrderStateProto.OrderState.getDefaultInstance()) return this;
        if (other.hasStatus()) {
          status_ = other.status_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasInitMarginBefore()) {
          setInitMarginBefore(other.getInitMarginBefore());
        }
        if (other.hasMaintMarginBefore()) {
          setMaintMarginBefore(other.getMaintMarginBefore());
        }
        if (other.hasEquityWithLoanBefore()) {
          setEquityWithLoanBefore(other.getEquityWithLoanBefore());
        }
        if (other.hasInitMarginChange()) {
          setInitMarginChange(other.getInitMarginChange());
        }
        if (other.hasMaintMarginChange()) {
          setMaintMarginChange(other.getMaintMarginChange());
        }
        if (other.hasEquityWithLoanChange()) {
          setEquityWithLoanChange(other.getEquityWithLoanChange());
        }
        if (other.hasInitMarginAfter()) {
          setInitMarginAfter(other.getInitMarginAfter());
        }
        if (other.hasMaintMarginAfter()) {
          setMaintMarginAfter(other.getMaintMarginAfter());
        }
        if (other.hasEquityWithLoanAfter()) {
          setEquityWithLoanAfter(other.getEquityWithLoanAfter());
        }
        if (other.hasCommissionAndFees()) {
          setCommissionAndFees(other.getCommissionAndFees());
        }
        if (other.hasMinCommissionAndFees()) {
          setMinCommissionAndFees(other.getMinCommissionAndFees());
        }
        if (other.hasMaxCommissionAndFees()) {
          setMaxCommissionAndFees(other.getMaxCommissionAndFees());
        }
        if (other.hasCommissionAndFeesCurrency()) {
          commissionAndFeesCurrency_ = other.commissionAndFeesCurrency_;
          bitField0_ |= 0x00002000;
          onChanged();
        }
        if (other.hasMarginCurrency()) {
          marginCurrency_ = other.marginCurrency_;
          bitField0_ |= 0x00004000;
          onChanged();
        }
        if (other.hasInitMarginBeforeOutsideRTH()) {
          setInitMarginBeforeOutsideRTH(other.getInitMarginBeforeOutsideRTH());
        }
        if (other.hasMaintMarginBeforeOutsideRTH()) {
          setMaintMarginBeforeOutsideRTH(other.getMaintMarginBeforeOutsideRTH());
        }
        if (other.hasEquityWithLoanBeforeOutsideRTH()) {
          setEquityWithLoanBeforeOutsideRTH(other.getEquityWithLoanBeforeOutsideRTH());
        }
        if (other.hasInitMarginChangeOutsideRTH()) {
          setInitMarginChangeOutsideRTH(other.getInitMarginChangeOutsideRTH());
        }
        if (other.hasMaintMarginChangeOutsideRTH()) {
          setMaintMarginChangeOutsideRTH(other.getMaintMarginChangeOutsideRTH());
        }
        if (other.hasEquityWithLoanChangeOutsideRTH()) {
          setEquityWithLoanChangeOutsideRTH(other.getEquityWithLoanChangeOutsideRTH());
        }
        if (other.hasInitMarginAfterOutsideRTH()) {
          setInitMarginAfterOutsideRTH(other.getInitMarginAfterOutsideRTH());
        }
        if (other.hasMaintMarginAfterOutsideRTH()) {
          setMaintMarginAfterOutsideRTH(other.getMaintMarginAfterOutsideRTH());
        }
        if (other.hasEquityWithLoanAfterOutsideRTH()) {
          setEquityWithLoanAfterOutsideRTH(other.getEquityWithLoanAfterOutsideRTH());
        }
        if (other.hasSuggestedSize()) {
          suggestedSize_ = other.suggestedSize_;
          bitField0_ |= 0x01000000;
          onChanged();
        }
        if (other.hasRejectReason()) {
          rejectReason_ = other.rejectReason_;
          bitField0_ |= 0x02000000;
          onChanged();
        }
        if (orderAllocationsBuilder_ == null) {
          if (!other.orderAllocations_.isEmpty()) {
            if (orderAllocations_.isEmpty()) {
              orderAllocations_ = other.orderAllocations_;
              bitField0_ = (bitField0_ & ~0x04000000);
            } else {
              ensureOrderAllocationsIsMutable();
              orderAllocations_.addAll(other.orderAllocations_);
            }
            onChanged();
          }
        } else {
          if (!other.orderAllocations_.isEmpty()) {
            if (orderAllocationsBuilder_.isEmpty()) {
              orderAllocationsBuilder_.dispose();
              orderAllocationsBuilder_ = null;
              orderAllocations_ = other.orderAllocations_;
              bitField0_ = (bitField0_ & ~0x04000000);
              orderAllocationsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getOrderAllocationsFieldBuilder() : null;
            } else {
              orderAllocationsBuilder_.addAllMessages(other.orderAllocations_);
            }
          }
        }
        if (other.hasWarningText()) {
          warningText_ = other.warningText_;
          bitField0_ |= 0x08000000;
          onChanged();
        }
        if (other.hasCompletedTime()) {
          completedTime_ = other.completedTime_;
          bitField0_ |= 0x10000000;
          onChanged();
        }
        if (other.hasCompletedStatus()) {
          completedStatus_ = other.completedStatus_;
          bitField0_ |= 0x20000000;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        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 {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                status_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 17: {
                initMarginBefore_ = input.readDouble();
                bitField0_ |= 0x00000002;
                break;
              } // case 17
              case 25: {
                maintMarginBefore_ = input.readDouble();
                bitField0_ |= 0x00000004;
                break;
              } // case 25
              case 33: {
                equityWithLoanBefore_ = input.readDouble();
                bitField0_ |= 0x00000008;
                break;
              } // case 33
              case 41: {
                initMarginChange_ = input.readDouble();
                bitField0_ |= 0x00000010;
                break;
              } // case 41
              case 49: {
                maintMarginChange_ = input.readDouble();
                bitField0_ |= 0x00000020;
                break;
              } // case 49
              case 57: {
                equityWithLoanChange_ = input.readDouble();
                bitField0_ |= 0x00000040;
                break;
              } // case 57
              case 65: {
                initMarginAfter_ = input.readDouble();
                bitField0_ |= 0x00000080;
                break;
              } // case 65
              case 73: {
                maintMarginAfter_ = input.readDouble();
                bitField0_ |= 0x00000100;
                break;
              } // case 73
              case 81: {
                equityWithLoanAfter_ = input.readDouble();
                bitField0_ |= 0x00000200;
                break;
              } // case 81
              case 89: {
                commissionAndFees_ = input.readDouble();
                bitField0_ |= 0x00000400;
                break;
              } // case 89
              case 97: {
                minCommissionAndFees_ = input.readDouble();
                bitField0_ |= 0x00000800;
                break;
              } // case 97
              case 105: {
                maxCommissionAndFees_ = input.readDouble();
                bitField0_ |= 0x00001000;
                break;
              } // case 105
              case 114: {
                commissionAndFeesCurrency_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00002000;
                break;
              } // case 114
              case 122: {
                marginCurrency_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00004000;
                break;
              } // case 122
              case 129: {
                initMarginBeforeOutsideRTH_ = input.readDouble();
                bitField0_ |= 0x00008000;
                break;
              } // case 129
              case 137: {
                maintMarginBeforeOutsideRTH_ = input.readDouble();
                bitField0_ |= 0x00010000;
                break;
              } // case 137
              case 145: {
                equityWithLoanBeforeOutsideRTH_ = input.readDouble();
                bitField0_ |= 0x00020000;
                break;
              } // case 145
              case 153: {
                initMarginChangeOutsideRTH_ = input.readDouble();
                bitField0_ |= 0x00040000;
                break;
              } // case 153
              case 161: {
                maintMarginChangeOutsideRTH_ = input.readDouble();
                bitField0_ |= 0x00080000;
                break;
              } // case 161
              case 169: {
                equityWithLoanChangeOutsideRTH_ = input.readDouble();
                bitField0_ |= 0x00100000;
                break;
              } // case 169
              case 177: {
                initMarginAfterOutsideRTH_ = input.readDouble();
                bitField0_ |= 0x00200000;
                break;
              } // case 177
              case 185: {
                maintMarginAfterOutsideRTH_ = input.readDouble();
                bitField0_ |= 0x00400000;
                break;
              } // case 185
              case 193: {
                equityWithLoanAfterOutsideRTH_ = input.readDouble();
                bitField0_ |= 0x00800000;
                break;
              } // case 193
              case 202: {
                suggestedSize_ = input.readStringRequireUtf8();
                bitField0_ |= 0x01000000;
                break;
              } // case 202
              case 210: {
                rejectReason_ = input.readStringRequireUtf8();
                bitField0_ |= 0x02000000;
                break;
              } // case 210
              case 218: {
                com.ib.client.protobuf.OrderAllocationProto.OrderAllocation m =
                    input.readMessage(
                        com.ib.client.protobuf.OrderAllocationProto.OrderAllocation.parser(),
                        extensionRegistry);
                if (orderAllocationsBuilder_ == null) {
                  ensureOrderAllocationsIsMutable();
                  orderAllocations_.add(m);
                } else {
                  orderAllocationsBuilder_.addMessage(m);
                }
                break;
              } // case 218
              case 226: {
                warningText_ = input.readStringRequireUtf8();
                bitField0_ |= 0x08000000;
                break;
              } // case 226
              case 234: {
                completedTime_ = input.readStringRequireUtf8();
                bitField0_ |= 0x10000000;
                break;
              } // case 234
              case 242: {
                completedStatus_ = input.readStringRequireUtf8();
                bitField0_ |= 0x20000000;
                break;
              } // case 242
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object status_ = "";
      /**
       * <code>optional string status = 1;</code>
       * @return Whether the status field is set.
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string status = 1;</code>
       * @return The status.
       */
      public java.lang.String getStatus() {
        java.lang.Object ref = status_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          status_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string status = 1;</code>
       * @return The bytes for status.
       */
      public com.google.protobuf.ByteString
          getStatusBytes() {
        java.lang.Object ref = status_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          status_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string status = 1;</code>
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        status_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional string status = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        status_ = getDefaultInstance().getStatus();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>optional string status = 1;</code>
       * @param value The bytes for status to set.
       * @return This builder for chaining.
       */
      public Builder setStatusBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        status_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private double initMarginBefore_ ;
      /**
       * <code>optional double initMarginBefore = 2;</code>
       * @return Whether the initMarginBefore field is set.
       */
      @java.lang.Override
      public boolean hasInitMarginBefore() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional double initMarginBefore = 2;</code>
       * @return The initMarginBefore.
       */
      @java.lang.Override
      public double getInitMarginBefore() {
        return initMarginBefore_;
      }
      /**
       * <code>optional double initMarginBefore = 2;</code>
       * @param value The initMarginBefore to set.
       * @return This builder for chaining.
       */
      public Builder setInitMarginBefore(double value) {

        initMarginBefore_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional double initMarginBefore = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearInitMarginBefore() {
        bitField0_ = (bitField0_ & ~0x00000002);
        initMarginBefore_ = 0D;
        onChanged();
        return this;
      }

      private double maintMarginBefore_ ;
      /**
       * <code>optional double maintMarginBefore = 3;</code>
       * @return Whether the maintMarginBefore field is set.
       */
      @java.lang.Override
      public boolean hasMaintMarginBefore() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional double maintMarginBefore = 3;</code>
       * @return The maintMarginBefore.
       */
      @java.lang.Override
      public double getMaintMarginBefore() {
        return maintMarginBefore_;
      }
      /**
       * <code>optional double maintMarginBefore = 3;</code>
       * @param value The maintMarginBefore to set.
       * @return This builder for chaining.
       */
      public Builder setMaintMarginBefore(double value) {

        maintMarginBefore_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional double maintMarginBefore = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaintMarginBefore() {
        bitField0_ = (bitField0_ & ~0x00000004);
        maintMarginBefore_ = 0D;
        onChanged();
        return this;
      }

      private double equityWithLoanBefore_ ;
      /**
       * <code>optional double equityWithLoanBefore = 4;</code>
       * @return Whether the equityWithLoanBefore field is set.
       */
      @java.lang.Override
      public boolean hasEquityWithLoanBefore() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional double equityWithLoanBefore = 4;</code>
       * @return The equityWithLoanBefore.
       */
      @java.lang.Override
      public double getEquityWithLoanBefore() {
        return equityWithLoanBefore_;
      }
      /**
       * <code>optional double equityWithLoanBefore = 4;</code>
       * @param value The equityWithLoanBefore to set.
       * @return This builder for chaining.
       */
      public Builder setEquityWithLoanBefore(double value) {

        equityWithLoanBefore_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional double equityWithLoanBefore = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearEquityWithLoanBefore() {
        bitField0_ = (bitField0_ & ~0x00000008);
        equityWithLoanBefore_ = 0D;
        onChanged();
        return this;
      }

      private double initMarginChange_ ;
      /**
       * <code>optional double initMarginChange = 5;</code>
       * @return Whether the initMarginChange field is set.
       */
      @java.lang.Override
      public boolean hasInitMarginChange() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional double initMarginChange = 5;</code>
       * @return The initMarginChange.
       */
      @java.lang.Override
      public double getInitMarginChange() {
        return initMarginChange_;
      }
      /**
       * <code>optional double initMarginChange = 5;</code>
       * @param value The initMarginChange to set.
       * @return This builder for chaining.
       */
      public Builder setInitMarginChange(double value) {

        initMarginChange_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional double initMarginChange = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearInitMarginChange() {
        bitField0_ = (bitField0_ & ~0x00000010);
        initMarginChange_ = 0D;
        onChanged();
        return this;
      }

      private double maintMarginChange_ ;
      /**
       * <code>optional double maintMarginChange = 6;</code>
       * @return Whether the maintMarginChange field is set.
       */
      @java.lang.Override
      public boolean hasMaintMarginChange() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional double maintMarginChange = 6;</code>
       * @return The maintMarginChange.
       */
      @java.lang.Override
      public double getMaintMarginChange() {
        return maintMarginChange_;
      }
      /**
       * <code>optional double maintMarginChange = 6;</code>
       * @param value The maintMarginChange to set.
       * @return This builder for chaining.
       */
      public Builder setMaintMarginChange(double value) {

        maintMarginChange_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional double maintMarginChange = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaintMarginChange() {
        bitField0_ = (bitField0_ & ~0x00000020);
        maintMarginChange_ = 0D;
        onChanged();
        return this;
      }

      private double equityWithLoanChange_ ;
      /**
       * <code>optional double equityWithLoanChange = 7;</code>
       * @return Whether the equityWithLoanChange field is set.
       */
      @java.lang.Override
      public boolean hasEquityWithLoanChange() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional double equityWithLoanChange = 7;</code>
       * @return The equityWithLoanChange.
       */
      @java.lang.Override
      public double getEquityWithLoanChange() {
        return equityWithLoanChange_;
      }
      /**
       * <code>optional double equityWithLoanChange = 7;</code>
       * @param value The equityWithLoanChange to set.
       * @return This builder for chaining.
       */
      public Builder setEquityWithLoanChange(double value) {

        equityWithLoanChange_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional double equityWithLoanChange = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearEquityWithLoanChange() {
        bitField0_ = (bitField0_ & ~0x00000040);
        equityWithLoanChange_ = 0D;
        onChanged();
        return this;
      }

      private double initMarginAfter_ ;
      /**
       * <code>optional double initMarginAfter = 8;</code>
       * @return Whether the initMarginAfter field is set.
       */
      @java.lang.Override
      public boolean hasInitMarginAfter() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional double initMarginAfter = 8;</code>
       * @return The initMarginAfter.
       */
      @java.lang.Override
      public double getInitMarginAfter() {
        return initMarginAfter_;
      }
      /**
       * <code>optional double initMarginAfter = 8;</code>
       * @param value The initMarginAfter to set.
       * @return This builder for chaining.
       */
      public Builder setInitMarginAfter(double value) {

        initMarginAfter_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional double initMarginAfter = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearInitMarginAfter() {
        bitField0_ = (bitField0_ & ~0x00000080);
        initMarginAfter_ = 0D;
        onChanged();
        return this;
      }

      private double maintMarginAfter_ ;
      /**
       * <code>optional double maintMarginAfter = 9;</code>
       * @return Whether the maintMarginAfter field is set.
       */
      @java.lang.Override
      public boolean hasMaintMarginAfter() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional double maintMarginAfter = 9;</code>
       * @return The maintMarginAfter.
       */
      @java.lang.Override
      public double getMaintMarginAfter() {
        return maintMarginAfter_;
      }
      /**
       * <code>optional double maintMarginAfter = 9;</code>
       * @param value The maintMarginAfter to set.
       * @return This builder for chaining.
       */
      public Builder setMaintMarginAfter(double value) {

        maintMarginAfter_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional double maintMarginAfter = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaintMarginAfter() {
        bitField0_ = (bitField0_ & ~0x00000100);
        maintMarginAfter_ = 0D;
        onChanged();
        return this;
      }

      private double equityWithLoanAfter_ ;
      /**
       * <code>optional double equityWithLoanAfter = 10;</code>
       * @return Whether the equityWithLoanAfter field is set.
       */
      @java.lang.Override
      public boolean hasEquityWithLoanAfter() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>optional double equityWithLoanAfter = 10;</code>
       * @return The equityWithLoanAfter.
       */
      @java.lang.Override
      public double getEquityWithLoanAfter() {
        return equityWithLoanAfter_;
      }
      /**
       * <code>optional double equityWithLoanAfter = 10;</code>
       * @param value The equityWithLoanAfter to set.
       * @return This builder for chaining.
       */
      public Builder setEquityWithLoanAfter(double value) {

        equityWithLoanAfter_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional double equityWithLoanAfter = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearEquityWithLoanAfter() {
        bitField0_ = (bitField0_ & ~0x00000200);
        equityWithLoanAfter_ = 0D;
        onChanged();
        return this;
      }

      private double commissionAndFees_ ;
      /**
       * <code>optional double commissionAndFees = 11;</code>
       * @return Whether the commissionAndFees field is set.
       */
      @java.lang.Override
      public boolean hasCommissionAndFees() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <code>optional double commissionAndFees = 11;</code>
       * @return The commissionAndFees.
       */
      @java.lang.Override
      public double getCommissionAndFees() {
        return commissionAndFees_;
      }
      /**
       * <code>optional double commissionAndFees = 11;</code>
       * @param value The commissionAndFees to set.
       * @return This builder for chaining.
       */
      public Builder setCommissionAndFees(double value) {

        commissionAndFees_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional double commissionAndFees = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearCommissionAndFees() {
        bitField0_ = (bitField0_ & ~0x00000400);
        commissionAndFees_ = 0D;
        onChanged();
        return this;
      }

      private double minCommissionAndFees_ ;
      /**
       * <code>optional double minCommissionAndFees = 12;</code>
       * @return Whether the minCommissionAndFees field is set.
       */
      @java.lang.Override
      public boolean hasMinCommissionAndFees() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>optional double minCommissionAndFees = 12;</code>
       * @return The minCommissionAndFees.
       */
      @java.lang.Override
      public double getMinCommissionAndFees() {
        return minCommissionAndFees_;
      }
      /**
       * <code>optional double minCommissionAndFees = 12;</code>
       * @param value The minCommissionAndFees to set.
       * @return This builder for chaining.
       */
      public Builder setMinCommissionAndFees(double value) {

        minCommissionAndFees_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional double minCommissionAndFees = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearMinCommissionAndFees() {
        bitField0_ = (bitField0_ & ~0x00000800);
        minCommissionAndFees_ = 0D;
        onChanged();
        return this;
      }

      private double maxCommissionAndFees_ ;
      /**
       * <code>optional double maxCommissionAndFees = 13;</code>
       * @return Whether the maxCommissionAndFees field is set.
       */
      @java.lang.Override
      public boolean hasMaxCommissionAndFees() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <code>optional double maxCommissionAndFees = 13;</code>
       * @return The maxCommissionAndFees.
       */
      @java.lang.Override
      public double getMaxCommissionAndFees() {
        return maxCommissionAndFees_;
      }
      /**
       * <code>optional double maxCommissionAndFees = 13;</code>
       * @param value The maxCommissionAndFees to set.
       * @return This builder for chaining.
       */
      public Builder setMaxCommissionAndFees(double value) {

        maxCommissionAndFees_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double maxCommissionAndFees = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxCommissionAndFees() {
        bitField0_ = (bitField0_ & ~0x00001000);
        maxCommissionAndFees_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object commissionAndFeesCurrency_ = "";
      /**
       * <code>optional string commissionAndFeesCurrency = 14;</code>
       * @return Whether the commissionAndFeesCurrency field is set.
       */
      public boolean hasCommissionAndFeesCurrency() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <code>optional string commissionAndFeesCurrency = 14;</code>
       * @return The commissionAndFeesCurrency.
       */
      public java.lang.String getCommissionAndFeesCurrency() {
        java.lang.Object ref = commissionAndFeesCurrency_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          commissionAndFeesCurrency_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string commissionAndFeesCurrency = 14;</code>
       * @return The bytes for commissionAndFeesCurrency.
       */
      public com.google.protobuf.ByteString
          getCommissionAndFeesCurrencyBytes() {
        java.lang.Object ref = commissionAndFeesCurrency_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          commissionAndFeesCurrency_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string commissionAndFeesCurrency = 14;</code>
       * @param value The commissionAndFeesCurrency to set.
       * @return This builder for chaining.
       */
      public Builder setCommissionAndFeesCurrency(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        commissionAndFeesCurrency_ = value;
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string commissionAndFeesCurrency = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearCommissionAndFeesCurrency() {
        commissionAndFeesCurrency_ = getDefaultInstance().getCommissionAndFeesCurrency();
        bitField0_ = (bitField0_ & ~0x00002000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string commissionAndFeesCurrency = 14;</code>
       * @param value The bytes for commissionAndFeesCurrency to set.
       * @return This builder for chaining.
       */
      public Builder setCommissionAndFeesCurrencyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        commissionAndFeesCurrency_ = value;
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }

      private java.lang.Object marginCurrency_ = "";
      /**
       * <code>optional string marginCurrency = 15;</code>
       * @return Whether the marginCurrency field is set.
       */
      public boolean hasMarginCurrency() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <code>optional string marginCurrency = 15;</code>
       * @return The marginCurrency.
       */
      public java.lang.String getMarginCurrency() {
        java.lang.Object ref = marginCurrency_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          marginCurrency_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string marginCurrency = 15;</code>
       * @return The bytes for marginCurrency.
       */
      public com.google.protobuf.ByteString
          getMarginCurrencyBytes() {
        java.lang.Object ref = marginCurrency_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          marginCurrency_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string marginCurrency = 15;</code>
       * @param value The marginCurrency to set.
       * @return This builder for chaining.
       */
      public Builder setMarginCurrency(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        marginCurrency_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string marginCurrency = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearMarginCurrency() {
        marginCurrency_ = getDefaultInstance().getMarginCurrency();
        bitField0_ = (bitField0_ & ~0x00004000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string marginCurrency = 15;</code>
       * @param value The bytes for marginCurrency to set.
       * @return This builder for chaining.
       */
      public Builder setMarginCurrencyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        marginCurrency_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }

      private double initMarginBeforeOutsideRTH_ ;
      /**
       * <code>optional double initMarginBeforeOutsideRTH = 16;</code>
       * @return Whether the initMarginBeforeOutsideRTH field is set.
       */
      @java.lang.Override
      public boolean hasInitMarginBeforeOutsideRTH() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <code>optional double initMarginBeforeOutsideRTH = 16;</code>
       * @return The initMarginBeforeOutsideRTH.
       */
      @java.lang.Override
      public double getInitMarginBeforeOutsideRTH() {
        return initMarginBeforeOutsideRTH_;
      }
      /**
       * <code>optional double initMarginBeforeOutsideRTH = 16;</code>
       * @param value The initMarginBeforeOutsideRTH to set.
       * @return This builder for chaining.
       */
      public Builder setInitMarginBeforeOutsideRTH(double value) {

        initMarginBeforeOutsideRTH_ = value;
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double initMarginBeforeOutsideRTH = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearInitMarginBeforeOutsideRTH() {
        bitField0_ = (bitField0_ & ~0x00008000);
        initMarginBeforeOutsideRTH_ = 0D;
        onChanged();
        return this;
      }

      private double maintMarginBeforeOutsideRTH_ ;
      /**
       * <code>optional double maintMarginBeforeOutsideRTH = 17;</code>
       * @return Whether the maintMarginBeforeOutsideRTH field is set.
       */
      @java.lang.Override
      public boolean hasMaintMarginBeforeOutsideRTH() {
        return ((bitField0_ & 0x00010000) != 0);
      }
      /**
       * <code>optional double maintMarginBeforeOutsideRTH = 17;</code>
       * @return The maintMarginBeforeOutsideRTH.
       */
      @java.lang.Override
      public double getMaintMarginBeforeOutsideRTH() {
        return maintMarginBeforeOutsideRTH_;
      }
      /**
       * <code>optional double maintMarginBeforeOutsideRTH = 17;</code>
       * @param value The maintMarginBeforeOutsideRTH to set.
       * @return This builder for chaining.
       */
      public Builder setMaintMarginBeforeOutsideRTH(double value) {

        maintMarginBeforeOutsideRTH_ = value;
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double maintMarginBeforeOutsideRTH = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaintMarginBeforeOutsideRTH() {
        bitField0_ = (bitField0_ & ~0x00010000);
        maintMarginBeforeOutsideRTH_ = 0D;
        onChanged();
        return this;
      }

      private double equityWithLoanBeforeOutsideRTH_ ;
      /**
       * <code>optional double equityWithLoanBeforeOutsideRTH = 18;</code>
       * @return Whether the equityWithLoanBeforeOutsideRTH field is set.
       */
      @java.lang.Override
      public boolean hasEquityWithLoanBeforeOutsideRTH() {
        return ((bitField0_ & 0x00020000) != 0);
      }
      /**
       * <code>optional double equityWithLoanBeforeOutsideRTH = 18;</code>
       * @return The equityWithLoanBeforeOutsideRTH.
       */
      @java.lang.Override
      public double getEquityWithLoanBeforeOutsideRTH() {
        return equityWithLoanBeforeOutsideRTH_;
      }
      /**
       * <code>optional double equityWithLoanBeforeOutsideRTH = 18;</code>
       * @param value The equityWithLoanBeforeOutsideRTH to set.
       * @return This builder for chaining.
       */
      public Builder setEquityWithLoanBeforeOutsideRTH(double value) {

        equityWithLoanBeforeOutsideRTH_ = value;
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double equityWithLoanBeforeOutsideRTH = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearEquityWithLoanBeforeOutsideRTH() {
        bitField0_ = (bitField0_ & ~0x00020000);
        equityWithLoanBeforeOutsideRTH_ = 0D;
        onChanged();
        return this;
      }

      private double initMarginChangeOutsideRTH_ ;
      /**
       * <code>optional double initMarginChangeOutsideRTH = 19;</code>
       * @return Whether the initMarginChangeOutsideRTH field is set.
       */
      @java.lang.Override
      public boolean hasInitMarginChangeOutsideRTH() {
        return ((bitField0_ & 0x00040000) != 0);
      }
      /**
       * <code>optional double initMarginChangeOutsideRTH = 19;</code>
       * @return The initMarginChangeOutsideRTH.
       */
      @java.lang.Override
      public double getInitMarginChangeOutsideRTH() {
        return initMarginChangeOutsideRTH_;
      }
      /**
       * <code>optional double initMarginChangeOutsideRTH = 19;</code>
       * @param value The initMarginChangeOutsideRTH to set.
       * @return This builder for chaining.
       */
      public Builder setInitMarginChangeOutsideRTH(double value) {

        initMarginChangeOutsideRTH_ = value;
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double initMarginChangeOutsideRTH = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearInitMarginChangeOutsideRTH() {
        bitField0_ = (bitField0_ & ~0x00040000);
        initMarginChangeOutsideRTH_ = 0D;
        onChanged();
        return this;
      }

      private double maintMarginChangeOutsideRTH_ ;
      /**
       * <code>optional double maintMarginChangeOutsideRTH = 20;</code>
       * @return Whether the maintMarginChangeOutsideRTH field is set.
       */
      @java.lang.Override
      public boolean hasMaintMarginChangeOutsideRTH() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <code>optional double maintMarginChangeOutsideRTH = 20;</code>
       * @return The maintMarginChangeOutsideRTH.
       */
      @java.lang.Override
      public double getMaintMarginChangeOutsideRTH() {
        return maintMarginChangeOutsideRTH_;
      }
      /**
       * <code>optional double maintMarginChangeOutsideRTH = 20;</code>
       * @param value The maintMarginChangeOutsideRTH to set.
       * @return This builder for chaining.
       */
      public Builder setMaintMarginChangeOutsideRTH(double value) {

        maintMarginChangeOutsideRTH_ = value;
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double maintMarginChangeOutsideRTH = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaintMarginChangeOutsideRTH() {
        bitField0_ = (bitField0_ & ~0x00080000);
        maintMarginChangeOutsideRTH_ = 0D;
        onChanged();
        return this;
      }

      private double equityWithLoanChangeOutsideRTH_ ;
      /**
       * <code>optional double equityWithLoanChangeOutsideRTH = 21;</code>
       * @return Whether the equityWithLoanChangeOutsideRTH field is set.
       */
      @java.lang.Override
      public boolean hasEquityWithLoanChangeOutsideRTH() {
        return ((bitField0_ & 0x00100000) != 0);
      }
      /**
       * <code>optional double equityWithLoanChangeOutsideRTH = 21;</code>
       * @return The equityWithLoanChangeOutsideRTH.
       */
      @java.lang.Override
      public double getEquityWithLoanChangeOutsideRTH() {
        return equityWithLoanChangeOutsideRTH_;
      }
      /**
       * <code>optional double equityWithLoanChangeOutsideRTH = 21;</code>
       * @param value The equityWithLoanChangeOutsideRTH to set.
       * @return This builder for chaining.
       */
      public Builder setEquityWithLoanChangeOutsideRTH(double value) {

        equityWithLoanChangeOutsideRTH_ = value;
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double equityWithLoanChangeOutsideRTH = 21;</code>
       * @return This builder for chaining.
       */
      public Builder clearEquityWithLoanChangeOutsideRTH() {
        bitField0_ = (bitField0_ & ~0x00100000);
        equityWithLoanChangeOutsideRTH_ = 0D;
        onChanged();
        return this;
      }

      private double initMarginAfterOutsideRTH_ ;
      /**
       * <code>optional double initMarginAfterOutsideRTH = 22;</code>
       * @return Whether the initMarginAfterOutsideRTH field is set.
       */
      @java.lang.Override
      public boolean hasInitMarginAfterOutsideRTH() {
        return ((bitField0_ & 0x00200000) != 0);
      }
      /**
       * <code>optional double initMarginAfterOutsideRTH = 22;</code>
       * @return The initMarginAfterOutsideRTH.
       */
      @java.lang.Override
      public double getInitMarginAfterOutsideRTH() {
        return initMarginAfterOutsideRTH_;
      }
      /**
       * <code>optional double initMarginAfterOutsideRTH = 22;</code>
       * @param value The initMarginAfterOutsideRTH to set.
       * @return This builder for chaining.
       */
      public Builder setInitMarginAfterOutsideRTH(double value) {

        initMarginAfterOutsideRTH_ = value;
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double initMarginAfterOutsideRTH = 22;</code>
       * @return This builder for chaining.
       */
      public Builder clearInitMarginAfterOutsideRTH() {
        bitField0_ = (bitField0_ & ~0x00200000);
        initMarginAfterOutsideRTH_ = 0D;
        onChanged();
        return this;
      }

      private double maintMarginAfterOutsideRTH_ ;
      /**
       * <code>optional double maintMarginAfterOutsideRTH = 23;</code>
       * @return Whether the maintMarginAfterOutsideRTH field is set.
       */
      @java.lang.Override
      public boolean hasMaintMarginAfterOutsideRTH() {
        return ((bitField0_ & 0x00400000) != 0);
      }
      /**
       * <code>optional double maintMarginAfterOutsideRTH = 23;</code>
       * @return The maintMarginAfterOutsideRTH.
       */
      @java.lang.Override
      public double getMaintMarginAfterOutsideRTH() {
        return maintMarginAfterOutsideRTH_;
      }
      /**
       * <code>optional double maintMarginAfterOutsideRTH = 23;</code>
       * @param value The maintMarginAfterOutsideRTH to set.
       * @return This builder for chaining.
       */
      public Builder setMaintMarginAfterOutsideRTH(double value) {

        maintMarginAfterOutsideRTH_ = value;
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double maintMarginAfterOutsideRTH = 23;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaintMarginAfterOutsideRTH() {
        bitField0_ = (bitField0_ & ~0x00400000);
        maintMarginAfterOutsideRTH_ = 0D;
        onChanged();
        return this;
      }

      private double equityWithLoanAfterOutsideRTH_ ;
      /**
       * <code>optional double equityWithLoanAfterOutsideRTH = 24;</code>
       * @return Whether the equityWithLoanAfterOutsideRTH field is set.
       */
      @java.lang.Override
      public boolean hasEquityWithLoanAfterOutsideRTH() {
        return ((bitField0_ & 0x00800000) != 0);
      }
      /**
       * <code>optional double equityWithLoanAfterOutsideRTH = 24;</code>
       * @return The equityWithLoanAfterOutsideRTH.
       */
      @java.lang.Override
      public double getEquityWithLoanAfterOutsideRTH() {
        return equityWithLoanAfterOutsideRTH_;
      }
      /**
       * <code>optional double equityWithLoanAfterOutsideRTH = 24;</code>
       * @param value The equityWithLoanAfterOutsideRTH to set.
       * @return This builder for chaining.
       */
      public Builder setEquityWithLoanAfterOutsideRTH(double value) {

        equityWithLoanAfterOutsideRTH_ = value;
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double equityWithLoanAfterOutsideRTH = 24;</code>
       * @return This builder for chaining.
       */
      public Builder clearEquityWithLoanAfterOutsideRTH() {
        bitField0_ = (bitField0_ & ~0x00800000);
        equityWithLoanAfterOutsideRTH_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object suggestedSize_ = "";
      /**
       * <code>optional string suggestedSize = 25;</code>
       * @return Whether the suggestedSize field is set.
       */
      public boolean hasSuggestedSize() {
        return ((bitField0_ & 0x01000000) != 0);
      }
      /**
       * <code>optional string suggestedSize = 25;</code>
       * @return The suggestedSize.
       */
      public java.lang.String getSuggestedSize() {
        java.lang.Object ref = suggestedSize_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          suggestedSize_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string suggestedSize = 25;</code>
       * @return The bytes for suggestedSize.
       */
      public com.google.protobuf.ByteString
          getSuggestedSizeBytes() {
        java.lang.Object ref = suggestedSize_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          suggestedSize_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string suggestedSize = 25;</code>
       * @param value The suggestedSize to set.
       * @return This builder for chaining.
       */
      public Builder setSuggestedSize(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        suggestedSize_ = value;
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string suggestedSize = 25;</code>
       * @return This builder for chaining.
       */
      public Builder clearSuggestedSize() {
        suggestedSize_ = getDefaultInstance().getSuggestedSize();
        bitField0_ = (bitField0_ & ~0x01000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string suggestedSize = 25;</code>
       * @param value The bytes for suggestedSize to set.
       * @return This builder for chaining.
       */
      public Builder setSuggestedSizeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        suggestedSize_ = value;
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }

      private java.lang.Object rejectReason_ = "";
      /**
       * <code>optional string rejectReason = 26;</code>
       * @return Whether the rejectReason field is set.
       */
      public boolean hasRejectReason() {
        return ((bitField0_ & 0x02000000) != 0);
      }
      /**
       * <code>optional string rejectReason = 26;</code>
       * @return The rejectReason.
       */
      public java.lang.String getRejectReason() {
        java.lang.Object ref = rejectReason_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          rejectReason_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string rejectReason = 26;</code>
       * @return The bytes for rejectReason.
       */
      public com.google.protobuf.ByteString
          getRejectReasonBytes() {
        java.lang.Object ref = rejectReason_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          rejectReason_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string rejectReason = 26;</code>
       * @param value The rejectReason to set.
       * @return This builder for chaining.
       */
      public Builder setRejectReason(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        rejectReason_ = value;
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string rejectReason = 26;</code>
       * @return This builder for chaining.
       */
      public Builder clearRejectReason() {
        rejectReason_ = getDefaultInstance().getRejectReason();
        bitField0_ = (bitField0_ & ~0x02000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string rejectReason = 26;</code>
       * @param value The bytes for rejectReason to set.
       * @return This builder for chaining.
       */
      public Builder setRejectReasonBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        rejectReason_ = value;
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }

      private java.util.List<com.ib.client.protobuf.OrderAllocationProto.OrderAllocation> orderAllocations_ =
        java.util.Collections.emptyList();
      private void ensureOrderAllocationsIsMutable() {
        if (!((bitField0_ & 0x04000000) != 0)) {
          orderAllocations_ = new java.util.ArrayList<com.ib.client.protobuf.OrderAllocationProto.OrderAllocation>(orderAllocations_);
          bitField0_ |= 0x04000000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.ib.client.protobuf.OrderAllocationProto.OrderAllocation, com.ib.client.protobuf.OrderAllocationProto.OrderAllocation.Builder, com.ib.client.protobuf.OrderAllocationProto.OrderAllocationOrBuilder> orderAllocationsBuilder_;

      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public java.util.List<com.ib.client.protobuf.OrderAllocationProto.OrderAllocation> getOrderAllocationsList() {
        if (orderAllocationsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(orderAllocations_);
        } else {
          return orderAllocationsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public int getOrderAllocationsCount() {
        if (orderAllocationsBuilder_ == null) {
          return orderAllocations_.size();
        } else {
          return orderAllocationsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public com.ib.client.protobuf.OrderAllocationProto.OrderAllocation getOrderAllocations(int index) {
        if (orderAllocationsBuilder_ == null) {
          return orderAllocations_.get(index);
        } else {
          return orderAllocationsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public Builder setOrderAllocations(
          int index, com.ib.client.protobuf.OrderAllocationProto.OrderAllocation value) {
        if (orderAllocationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOrderAllocationsIsMutable();
          orderAllocations_.set(index, value);
          onChanged();
        } else {
          orderAllocationsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public Builder setOrderAllocations(
          int index, com.ib.client.protobuf.OrderAllocationProto.OrderAllocation.Builder builderForValue) {
        if (orderAllocationsBuilder_ == null) {
          ensureOrderAllocationsIsMutable();
          orderAllocations_.set(index, builderForValue.build());
          onChanged();
        } else {
          orderAllocationsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public Builder addOrderAllocations(com.ib.client.protobuf.OrderAllocationProto.OrderAllocation value) {
        if (orderAllocationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOrderAllocationsIsMutable();
          orderAllocations_.add(value);
          onChanged();
        } else {
          orderAllocationsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public Builder addOrderAllocations(
          int index, com.ib.client.protobuf.OrderAllocationProto.OrderAllocation value) {
        if (orderAllocationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOrderAllocationsIsMutable();
          orderAllocations_.add(index, value);
          onChanged();
        } else {
          orderAllocationsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public Builder addOrderAllocations(
          com.ib.client.protobuf.OrderAllocationProto.OrderAllocation.Builder builderForValue) {
        if (orderAllocationsBuilder_ == null) {
          ensureOrderAllocationsIsMutable();
          orderAllocations_.add(builderForValue.build());
          onChanged();
        } else {
          orderAllocationsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public Builder addOrderAllocations(
          int index, com.ib.client.protobuf.OrderAllocationProto.OrderAllocation.Builder builderForValue) {
        if (orderAllocationsBuilder_ == null) {
          ensureOrderAllocationsIsMutable();
          orderAllocations_.add(index, builderForValue.build());
          onChanged();
        } else {
          orderAllocationsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public Builder addAllOrderAllocations(
          java.lang.Iterable<? extends com.ib.client.protobuf.OrderAllocationProto.OrderAllocation> values) {
        if (orderAllocationsBuilder_ == null) {
          ensureOrderAllocationsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, orderAllocations_);
          onChanged();
        } else {
          orderAllocationsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public Builder clearOrderAllocations() {
        if (orderAllocationsBuilder_ == null) {
          orderAllocations_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x04000000);
          onChanged();
        } else {
          orderAllocationsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public Builder removeOrderAllocations(int index) {
        if (orderAllocationsBuilder_ == null) {
          ensureOrderAllocationsIsMutable();
          orderAllocations_.remove(index);
          onChanged();
        } else {
          orderAllocationsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public com.ib.client.protobuf.OrderAllocationProto.OrderAllocation.Builder getOrderAllocationsBuilder(
          int index) {
        return getOrderAllocationsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public com.ib.client.protobuf.OrderAllocationProto.OrderAllocationOrBuilder getOrderAllocationsOrBuilder(
          int index) {
        if (orderAllocationsBuilder_ == null) {
          return orderAllocations_.get(index);  } else {
          return orderAllocationsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public java.util.List<? extends com.ib.client.protobuf.OrderAllocationProto.OrderAllocationOrBuilder> 
           getOrderAllocationsOrBuilderList() {
        if (orderAllocationsBuilder_ != null) {
          return orderAllocationsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(orderAllocations_);
        }
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public com.ib.client.protobuf.OrderAllocationProto.OrderAllocation.Builder addOrderAllocationsBuilder() {
        return getOrderAllocationsFieldBuilder().addBuilder(
            com.ib.client.protobuf.OrderAllocationProto.OrderAllocation.getDefaultInstance());
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public com.ib.client.protobuf.OrderAllocationProto.OrderAllocation.Builder addOrderAllocationsBuilder(
          int index) {
        return getOrderAllocationsFieldBuilder().addBuilder(
            index, com.ib.client.protobuf.OrderAllocationProto.OrderAllocation.getDefaultInstance());
      }
      /**
       * <code>repeated .protobuf.OrderAllocation orderAllocations = 27;</code>
       */
      public java.util.List<com.ib.client.protobuf.OrderAllocationProto.OrderAllocation.Builder> 
           getOrderAllocationsBuilderList() {
        return getOrderAllocationsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.ib.client.protobuf.OrderAllocationProto.OrderAllocation, com.ib.client.protobuf.OrderAllocationProto.OrderAllocation.Builder, com.ib.client.protobuf.OrderAllocationProto.OrderAllocationOrBuilder> 
          getOrderAllocationsFieldBuilder() {
        if (orderAllocationsBuilder_ == null) {
          orderAllocationsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.ib.client.protobuf.OrderAllocationProto.OrderAllocation, com.ib.client.protobuf.OrderAllocationProto.OrderAllocation.Builder, com.ib.client.protobuf.OrderAllocationProto.OrderAllocationOrBuilder>(
                  orderAllocations_,
                  ((bitField0_ & 0x04000000) != 0),
                  getParentForChildren(),
                  isClean());
          orderAllocations_ = null;
        }
        return orderAllocationsBuilder_;
      }

      private java.lang.Object warningText_ = "";
      /**
       * <code>optional string warningText = 28;</code>
       * @return Whether the warningText field is set.
       */
      public boolean hasWarningText() {
        return ((bitField0_ & 0x08000000) != 0);
      }
      /**
       * <code>optional string warningText = 28;</code>
       * @return The warningText.
       */
      public java.lang.String getWarningText() {
        java.lang.Object ref = warningText_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          warningText_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string warningText = 28;</code>
       * @return The bytes for warningText.
       */
      public com.google.protobuf.ByteString
          getWarningTextBytes() {
        java.lang.Object ref = warningText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          warningText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string warningText = 28;</code>
       * @param value The warningText to set.
       * @return This builder for chaining.
       */
      public Builder setWarningText(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        warningText_ = value;
        bitField0_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string warningText = 28;</code>
       * @return This builder for chaining.
       */
      public Builder clearWarningText() {
        warningText_ = getDefaultInstance().getWarningText();
        bitField0_ = (bitField0_ & ~0x08000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string warningText = 28;</code>
       * @param value The bytes for warningText to set.
       * @return This builder for chaining.
       */
      public Builder setWarningTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        warningText_ = value;
        bitField0_ |= 0x08000000;
        onChanged();
        return this;
      }

      private java.lang.Object completedTime_ = "";
      /**
       * <code>optional string completedTime = 29;</code>
       * @return Whether the completedTime field is set.
       */
      public boolean hasCompletedTime() {
        return ((bitField0_ & 0x10000000) != 0);
      }
      /**
       * <code>optional string completedTime = 29;</code>
       * @return The completedTime.
       */
      public java.lang.String getCompletedTime() {
        java.lang.Object ref = completedTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          completedTime_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string completedTime = 29;</code>
       * @return The bytes for completedTime.
       */
      public com.google.protobuf.ByteString
          getCompletedTimeBytes() {
        java.lang.Object ref = completedTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          completedTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string completedTime = 29;</code>
       * @param value The completedTime to set.
       * @return This builder for chaining.
       */
      public Builder setCompletedTime(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        completedTime_ = value;
        bitField0_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string completedTime = 29;</code>
       * @return This builder for chaining.
       */
      public Builder clearCompletedTime() {
        completedTime_ = getDefaultInstance().getCompletedTime();
        bitField0_ = (bitField0_ & ~0x10000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string completedTime = 29;</code>
       * @param value The bytes for completedTime to set.
       * @return This builder for chaining.
       */
      public Builder setCompletedTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        completedTime_ = value;
        bitField0_ |= 0x10000000;
        onChanged();
        return this;
      }

      private java.lang.Object completedStatus_ = "";
      /**
       * <code>optional string completedStatus = 30;</code>
       * @return Whether the completedStatus field is set.
       */
      public boolean hasCompletedStatus() {
        return ((bitField0_ & 0x20000000) != 0);
      }
      /**
       * <code>optional string completedStatus = 30;</code>
       * @return The completedStatus.
       */
      public java.lang.String getCompletedStatus() {
        java.lang.Object ref = completedStatus_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          completedStatus_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string completedStatus = 30;</code>
       * @return The bytes for completedStatus.
       */
      public com.google.protobuf.ByteString
          getCompletedStatusBytes() {
        java.lang.Object ref = completedStatus_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          completedStatus_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string completedStatus = 30;</code>
       * @param value The completedStatus to set.
       * @return This builder for chaining.
       */
      public Builder setCompletedStatus(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        completedStatus_ = value;
        bitField0_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string completedStatus = 30;</code>
       * @return This builder for chaining.
       */
      public Builder clearCompletedStatus() {
        completedStatus_ = getDefaultInstance().getCompletedStatus();
        bitField0_ = (bitField0_ & ~0x20000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string completedStatus = 30;</code>
       * @param value The bytes for completedStatus to set.
       * @return This builder for chaining.
       */
      public Builder setCompletedStatusBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        completedStatus_ = value;
        bitField0_ |= 0x20000000;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:protobuf.OrderState)
    }

    // @@protoc_insertion_point(class_scope:protobuf.OrderState)
    private static final com.ib.client.protobuf.OrderStateProto.OrderState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.ib.client.protobuf.OrderStateProto.OrderState();
    }

    public static com.ib.client.protobuf.OrderStateProto.OrderState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<OrderState>
        PARSER = new com.google.protobuf.AbstractParser<OrderState>() {
      @java.lang.Override
      public OrderState parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public com.ib.client.protobuf.OrderStateProto.OrderState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_protobuf_OrderState_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_protobuf_OrderState_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\020OrderState.proto\022\010protobuf\032\025OrderAlloc" +
      "ation.proto\"\365\r\n\nOrderState\022\023\n\006status\030\001 \001" +
      "(\tH\000\210\001\001\022\035\n\020initMarginBefore\030\002 \001(\001H\001\210\001\001\022\036" +
      "\n\021maintMarginBefore\030\003 \001(\001H\002\210\001\001\022!\n\024equity" +
      "WithLoanBefore\030\004 \001(\001H\003\210\001\001\022\035\n\020initMarginC" +
      "hange\030\005 \001(\001H\004\210\001\001\022\036\n\021maintMarginChange\030\006 " +
      "\001(\001H\005\210\001\001\022!\n\024equityWithLoanChange\030\007 \001(\001H\006" +
      "\210\001\001\022\034\n\017initMarginAfter\030\010 \001(\001H\007\210\001\001\022\035\n\020mai" +
      "ntMarginAfter\030\t \001(\001H\010\210\001\001\022 \n\023equityWithLo" +
      "anAfter\030\n \001(\001H\t\210\001\001\022\036\n\021commissionAndFees\030" +
      "\013 \001(\001H\n\210\001\001\022!\n\024minCommissionAndFees\030\014 \001(\001" +
      "H\013\210\001\001\022!\n\024maxCommissionAndFees\030\r \001(\001H\014\210\001\001" +
      "\022&\n\031commissionAndFeesCurrency\030\016 \001(\tH\r\210\001\001" +
      "\022\033\n\016marginCurrency\030\017 \001(\tH\016\210\001\001\022\'\n\032initMar" +
      "ginBeforeOutsideRTH\030\020 \001(\001H\017\210\001\001\022(\n\033maintM" +
      "arginBeforeOutsideRTH\030\021 \001(\001H\020\210\001\001\022+\n\036equi" +
      "tyWithLoanBeforeOutsideRTH\030\022 \001(\001H\021\210\001\001\022\'\n" +
      "\032initMarginChangeOutsideRTH\030\023 \001(\001H\022\210\001\001\022(" +
      "\n\033maintMarginChangeOutsideRTH\030\024 \001(\001H\023\210\001\001" +
      "\022+\n\036equityWithLoanChangeOutsideRTH\030\025 \001(\001" +
      "H\024\210\001\001\022&\n\031initMarginAfterOutsideRTH\030\026 \001(\001" +
      "H\025\210\001\001\022\'\n\032maintMarginAfterOutsideRTH\030\027 \001(" +
      "\001H\026\210\001\001\022*\n\035equityWithLoanAfterOutsideRTH\030" +
      "\030 \001(\001H\027\210\001\001\022\032\n\rsuggestedSize\030\031 \001(\tH\030\210\001\001\022\031" +
      "\n\014rejectReason\030\032 \001(\tH\031\210\001\001\0223\n\020orderAlloca" +
      "tions\030\033 \003(\0132\031.protobuf.OrderAllocation\022\030" +
      "\n\013warningText\030\034 \001(\tH\032\210\001\001\022\032\n\rcompletedTim" +
      "e\030\035 \001(\tH\033\210\001\001\022\034\n\017completedStatus\030\036 \001(\tH\034\210" +
      "\001\001B\t\n\007_statusB\023\n\021_initMarginBeforeB\024\n\022_m" +
      "aintMarginBeforeB\027\n\025_equityWithLoanBefor" +
      "eB\023\n\021_initMarginChangeB\024\n\022_maintMarginCh" +
      "angeB\027\n\025_equityWithLoanChangeB\022\n\020_initMa" +
      "rginAfterB\023\n\021_maintMarginAfterB\026\n\024_equit" +
      "yWithLoanAfterB\024\n\022_commissionAndFeesB\027\n\025" +
      "_minCommissionAndFeesB\027\n\025_maxCommissionA" +
      "ndFeesB\034\n\032_commissionAndFeesCurrencyB\021\n\017" +
      "_marginCurrencyB\035\n\033_initMarginBeforeOuts" +
      "ideRTHB\036\n\034_maintMarginBeforeOutsideRTHB!" +
      "\n\037_equityWithLoanBeforeOutsideRTHB\035\n\033_in" +
      "itMarginChangeOutsideRTHB\036\n\034_maintMargin" +
      "ChangeOutsideRTHB!\n\037_equityWithLoanChang" +
      "eOutsideRTHB\034\n\032_initMarginAfterOutsideRT" +
      "HB\035\n\033_maintMarginAfterOutsideRTHB \n\036_equ" +
      "ityWithLoanAfterOutsideRTHB\020\n\016_suggested" +
      "SizeB\017\n\r_rejectReasonB\016\n\014_warningTextB\020\n" +
      "\016_completedTimeB\022\n\020_completedStatusB:\n\026c" +
      "om.ib.client.protobufB\017OrderStateProto\252\002" +
      "\016IBApi.protobufb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.ib.client.protobuf.OrderAllocationProto.getDescriptor(),
        });
    internal_static_protobuf_OrderState_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_protobuf_OrderState_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_protobuf_OrderState_descriptor,
        new java.lang.String[] { "Status", "InitMarginBefore", "MaintMarginBefore", "EquityWithLoanBefore", "InitMarginChange", "MaintMarginChange", "EquityWithLoanChange", "InitMarginAfter", "MaintMarginAfter", "EquityWithLoanAfter", "CommissionAndFees", "MinCommissionAndFees", "MaxCommissionAndFees", "CommissionAndFeesCurrency", "MarginCurrency", "InitMarginBeforeOutsideRTH", "MaintMarginBeforeOutsideRTH", "EquityWithLoanBeforeOutsideRTH", "InitMarginChangeOutsideRTH", "MaintMarginChangeOutsideRTH", "EquityWithLoanChangeOutsideRTH", "InitMarginAfterOutsideRTH", "MaintMarginAfterOutsideRTH", "EquityWithLoanAfterOutsideRTH", "SuggestedSize", "RejectReason", "OrderAllocations", "WarningText", "CompletedTime", "CompletedStatus", });
    descriptor.resolveAllFeaturesImmutable();
    com.ib.client.protobuf.OrderAllocationProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
